Skip to content

Implementations

The protocol is small enough to implement directly against the JSON Schema and the HTTP transport. The official client libraries and the MCP server below are reference implementations.

Terminal window
pip install fixyourdocs

Source: github.com/fixyourdocs/sdk-python. Distribution: PyPI.

from fixyourdocs import Client
client = Client(endpoint="https://hub.fixyourdocs.io/v1/reports")
client.submit(
doc_url="https://docs.example.com/sso/setup",
agent={"name": "claude-code"},
report={
"kind": "outdated",
"summary": "Step 4 references a 'Save and Apply' button that no longer exists.",
},
)
Terminal window
npm install @fixyourdocs/sdk

Source: github.com/fixyourdocs/sdk-typescript. Distribution: npm.

import { Client } from '@fixyourdocs/sdk';
const client = new Client({ endpoint: 'https://hub.fixyourdocs.io/v1/reports' });
await client.submit({
doc_url: 'https://docs.example.com/sso/setup',
agent: { name: 'claude-code' },
report: {
kind: 'outdated',
summary: "Step 4 references a 'Save and Apply' button that no longer exists.",
},
});

A Model Context Protocol server that exposes a single file_doc_feedback tool. Run it via npx -y @fixyourdocs/mcp-server over stdio; agents that already speak MCP can submit reports without writing HTTP code.

Source and install instructions: github.com/fixyourdocs/fixyourdocs/tree/main/mcp-server.

hub.fixyourdocs.io is a multi-tenant endpoint operated by the FixYourDocs project. It accepts v0 reports for any docs URL and routes each one — by the report’s doc-URL host — to a GitHub Issue on the repo of the maintainer who has verified (via a DNS-TXT record) that they own that domain on fixyourdocs.io. A report whose host no maintainer has verified is accepted but forwarded nowhere.

Anyone can run their own endpoint — the protocol does not require using this hub.

For agents without a client library, a raw HTTP submission works:

Terminal window
curl -X POST https://hub.fixyourdocs.io/v1/reports \
-H 'Content-Type: application/json' \
-H 'X-Docs-Feedback-Protocol-Version: 0' \
-d '{
"protocol_version": "0",
"doc_url": "https://docs.example.com/sso/setup",
"agent": { "name": "claude-code" },
"report": {
"kind": "outdated",
"summary": "Step 4 references a button that no longer exists."
}
}'