About FixYourDocs
FixYourDocs is an MCP server for submitting structured reports about broken, incorrect, outdated, missing, or unclear documentation. It sends reports to the FixYourDocs hub, which can forward them as GitHub Issues when a documentation owner has installed the integration.
Key features
- 01Submit structured documentation feedback
- 02Validate report fields before submission
- 03Deduplicate repeated submissions
- 04Override the hub URL
- 05No telemetry or background network calls
Use cases
- 01Report an outdated documentation page
- 02Submit a correction for unclear instructions
- 03Send feedback about missing documentation
MCP support
The server exposes the `file_doc_feedback` tool to MCP clients over stdio. Calling it submits a report to the FixYourDocs hub; eligible reports may be forwarded to a GitHub Issue.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
npx -y @fixyourdocs/mcp-serverFIXYOURDOCS_HUB_URLOverride the hub base URL. Defaults to https://hub.fixyourdocs.io.Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.
Tools
1Saved tool list · updated 2w ago
| Parameter | Type | Required | Description |
|---|---|---|---|
| agent | object | Yes | Identity of the agent filing the report. |
| agent.name | string | Yes | Lowercase kebab-case agent identifier, e.g. "claude-code", "cursor", "codex". Matches /^[a-z0-9]([a-z0-9-]*[a-z0-9])?$/. |
| agent.vendor | string | No | Optional vendor / publisher, e.g. "Anthropic". |
| agent.version | string | No | Optional agent version string, e.g. "0.6.2". |
| report | object | Yes | The report body itself. |
| report.kind | enum | Yes | One of the six v0 report kinds.broken | incorrect | outdated | missing | unclear | other |
| report.details | string | No | Optional longer description, ideally with expected vs. observed. |
| report.summary | string | Yes | One-line description of the problem (≤ 280 chars). |
| report.suggested_fix | string | No | Optional concrete suggestion for fixing the doc. |
| doc_url | string | Yes | URL of the doc page that produced the problem (HTTPS, ≤ 2048 chars). |
Details
From the project README@fixyourdocs/mcp-server
Model Context Protocol (MCP) server that exposes a single tool —
file_doc_feedback — so any MCP client (Claude Desktop, Cursor, Codex,
Gemini CLI, …) can file a structured documentation-feedback report to
the FixYourDocs hub at hub.fixyourdocs.io when it encounters
docs that are broken, incorrect, outdated, missing, unclear, or
otherwise unhelpful.
Reports are forwarded to a GitHub Issue on the doc owner's repository when they have a FixYourDocs integration installed. No phone-home, no telemetry — the server only contacts the hub when an agent explicitly calls the tool.
- Docs: docs.fixyourdocs.io/mcp/
- Spec: Docs Feedback Protocol v0
- SDK:
@fixyourdocs/sdk - Issues / contributions: https://github.com/fixyourdocs/fixyourdocs
Install
The server is designed to be run via npx, so you typically don't
install it directly — your MCP client launches it on demand:
npx -y @fixyourdocs/mcp-server
It speaks the standard MCP stdio transport. There is nothing to configure unless you want to point at a different hub (see Environment variables below).
Client configuration
Each MCP client has its own config file, but the shape is the same: a
named server entry with command + args.
Claude Desktop
Edit ~/Library/Application Support/Claude/claude_desktop_config.json
(macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": {
"fixyourdocs": {
"command": "npx",
"args": ["-y", "@fixyourdocs/mcp-server"]
}
}
}
Restart Claude Desktop. The file_doc_feedback tool should appear in
the tool list.
Cursor
Edit ~/.cursor/mcp.json (or your workspace's .cursor/mcp.json):
{
"mcpServers": {
"fixyourdocs": {
"command": "npx",
"args": ["-y", "@fixyourdocs/mcp-server"]
}
}
}
Codex / OpenAI Codex CLI
Edit ~/.codex/config.toml:
[mcp_servers.fixyourdocs]
command = "npx"
args = ["-y", "@fixyourdocs/mcp-server"]
mcp-inspector (for verification)
npx @modelcontextprotocol/inspector npx -y @fixyourdocs/mcp-server
The inspector UI lists file_doc_feedback, accepts a fixture report,
and shows the { id } returned by the hub.
Tool: file_doc_feedback
Input
Mirrors the v0 spec's
Report envelope:
| Field | Type | Required | Notes |
|---|---|---|---|
doc_url | string | yes | URL of the doc page that produced the problem. Max 2048 chars. |
agent.name | string | yes | Lowercase kebab-case identifier, e.g. claude-code, cursor, codex. Max 64 chars. |
agent.version | string | no | Optional agent version string. |
agent.vendor | string | no | Optional vendor / publisher, e.g. Anthropic. |
report.kind | enum | yes | One of: broken, incorrect, outdated, missing, unclear, other. |
report.summary | string | yes | One-line description, ≤ 280 chars. |
report.details | string | no | Optional longer description. ≤ 8000 chars. |
report.suggested_fix | string | no | Optional concrete suggestion. ≤ 4000 chars. |
Output
{
"id": "01ABCDEF0123456789ABCDEFGH"
}
id is a ULID returned by the hub — an idempotency confirmation, not a
fetchable handle. Reports are write-only on the public API: there is no
retrieval endpoint, and report contents reach the doc owner only via the
hub's GitHub-issue forwarding.
Behaviour
- The server validates the input against the v0 lexical constraints
(URL parsing, agent-name pattern, summary length) before contacting
the hub. Validation errors are returned as MCP
isError: trueresults with a human-readable explanation. - On a
201 Created(new submission) or200 OK(idempotent duplicate), the tool returns{ id }regardless — agents don't need to distinguish, the hub will not double-file the issue. - On
429 rate_limited,5xx, or any network error, the tool surfaces the error verbatim. Clients should treat this as transient and retry with the same payload (the hub deduplicates on body content).
Environment variables
| Variable | Default | Purpose |
|---|---|---|
FIXYOURDOCS_HUB_URL | https://hub.fixyourdocs.io | Override the hub base URL. Useful for tests / self-host. |
Privacy
- No telemetry, no phone-home. The server makes outbound network calls only when an agent explicitly invokes the tool. There is no analytics call, no version-check ping, no diagnostic upload.
- The report payload contains only the fields the agent supplies (doc URL, agent identity, kind, summary, optional details and suggested fix). No process environment, file paths, or system identifiers are appended.
License
Apache-2.0. See LICENSE.
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.