{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_nm47wq6k8b8j","handle":"rtfm-mcp","url":"https://wellknown.network/agents/rtfm-mcp","links":{"self":"https://wellknown.network/agents/rtfm-mcp/record.json","html":"https://wellknown.network/agents/rtfm-mcp","markdown":"https://wellknown.network/agents/rtfm-mcp/record.md","api":"https://wellknown.network/api/v1/agents/rtfm-mcp","status":"https://wellknown.network/api/v1/agents/rtfm-mcp/status","claim":"https://wellknown.network/agents/rtfm-mcp/claim","claimApi":"https://wellknown.network/api/v1/claims","claimDescriptor":"https://wellknown.network/agents/rtfm-mcp/claim.json","badge":"https://wellknown.network/agents/rtfm-mcp/badge.svg","openapi":"https://wellknown.network/openapi.json","history":"https://wellknown.network/api/v1/agents/rtfm-mcp/history","tools":"https://wellknown.network/api/v1/agents/rtfm-mcp/tools"},"ard":{"identifier":"urn:air::server:rtfm-mcp","type":"application/mcp-server-card+json"},"kind":"mcp_server","declared":{"name":"rtfm-mcp","summary":"Read The Full Manual — local document-corpus search MCP server.","description":"# rtfm\n\n> **rtfm** — Read the ~~F-~~ **Full** Manual.\n\nA local MCP server with thin Claude Code and OpenCode fronts that makes large, can't-read-by-hand\ntechnical documentation searchable — PDF spec sets, documentation repositories (and, later,\npublic doc sites) — and answers questions strictly from that material, with grounded citations.\nThe server is published as the `rtfm-mcp` Python package.\n\nThe eternal advice \"read the manual\" falls apart when the manual is a 400-page protocol\nspec or a vendor doc-set no human can hold in their head. `rtfm` ingests the **full** manual\nso the answer is one cited query away.\n\n## Limitations\n\n`rtfm` indexes the **extractable text** a document already carries. It does not OCR images\nand does not execute JavaScript, so image-only/scanned PDFs and image-only or JS-rendered\nweb pages are out of scope — they index as empty. (See [ADR 0005](https://github.com/canlin-zhang/rtfm/blob/main/docs/adr/0005-text-extraction-only-no-ocr.md).)\n\n## Install\n\n### Claude Code\n\n```bash\n# in Claude Code:\n/plugin marketplace add canlin-zhang/rtfm\n/plugin install rtfm@rtfm\n```\n\n### OpenCode\n\n```bash\nopencode plugin add 'github:canlin-zhang/rtfm#main::path:plugins/opencode'\n```\n\nThe plugin registers the `rtfm` MCP server and the `read-the-manual` skill.\n\n### Any MCP client (PyPI)\n\nThe server is also published as `rtfm-mcp`:\n\n```bash\nuvx --from rtfm-mcp rtfm-server      # or: pipx install rtfm-mcp && rtfm-server\n```\n\nPoint the client's MCP configuration at that command:\n\n```json\n{\n  \"mcpServers\": {\n    \"rtfm\": {\n      \"command\": \"uvx\",\n      \"args\": [\"--from\", \"rtfm-mcp\", \"rtfm-server\"]\n    }\n  }\n}\n```\n\n**Prerequisites:** the plugin builds a private venv under\n`$CLAUDE_PLUGIN_DATA/venv` (Claude Code) or `~/.rtfm/fronts/<front>/venv`\n(otherwise), installs the pinned `rtfm-mcp` there once, and runs it from there.\nIt uses `uv` when present (`uv venv --seed` + `uv pip install`); without uv it falls\nback to `python3 -m venv` + pip, so `python3` with a working…","publisher":{"name":"Canlin Zhang","url":null},"homepage":"https://github.com/canlin-zhang/rtfm","repository":"https://github.com/canlin-zhang/rtfm","version":"0.9.3","license":null,"protocols":["mcp"],"tags":["documentation","mcp","pdf","search"],"pricing":null,"endpoints":[{"url":"pypi:rtfm-mcp","type":"package_pypi","auth":null,"probeable":false}],"skills":null,"tools":null,"extra":null,"attribution":{"kind":"pypi","name":"pypi","repoUrl":"pypi","summary":"pypi","version":"pypi","description":"pypi","homepageUrl":"pypi","publisherName":"pypi"}},"derived":{"capabilities":[{"slug":"code.documentation","name":"Code Documentation","confidence":1,"provenance":"declared"},{"slug":"documents.ocr","name":"OCR","confidence":0.802,"provenance":"derived"},{"slug":"dev.package-management","name":"Packages & Dependencies","confidence":0.768,"provenance":"derived"}],"categories":["code","dev","documents"],"language":"en"},"observed":{"status":"unknown","statusReason":"Distributed as a package to run locally; no network endpoint to check.","lastOkAt":null,"lastProbedAt":null,"statusComputedAt":null,"reliability30d":null,"latestObservations":[],"tools":null,"package":{"name":"rtfm-mcp","registry":"pypi","observedAt":"2026-11-05T22:26:30.954Z","publishedAt":"2026-10-24T11:39:32.060477Z","latestVersion":"0.9.3"},"toolSurface":null,"endpointFacts":[]},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"pypi","key":"rtfm-mcp","url":"https://pypi.org/project/rtfm-mcp/","firstSeenAt":"2026-10-24T18:28:16.290Z","fetchedAt":"2026-11-05T22:25:26.580Z","normalizedAt":"2026-11-05T22:25:26.580Z"}]},"firstSeenAt":"2026-10-24T18:28:16.290Z","updatedAt":"2026-11-05T22:26:30.954Z"}