{"id":29895266,"url":"https://github.com/marckrenn/rtfmbro-mcp","last_synced_at":"2026-01-16T12:42:47.595Z","repository":{"id":297097745,"uuid":"995642394","full_name":"marckrenn/rtfmbro-mcp","owner":"marckrenn","description":"rtfmbro provides always-up-to-date, version-specific package documentation as context for coding agents. An alternative to context7","archived":false,"fork":false,"pushed_at":"2025-06-19T14:52:37.000Z","size":18,"stargazers_count":37,"open_issues_count":1,"forks_count":1,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-08-01T07:41:40.174Z","etag":null,"topics":["agent","agentic-ai","claude","context7","docs","documentation","mcp","mcp-server"],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/marckrenn.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-06-03T19:52:08.000Z","updated_at":"2025-07-25T16:22:07.000Z","dependencies_parsed_at":"2025-06-04T05:13:42.976Z","dependency_job_id":"b62fb7c4-38aa-453f-aca2-a30813acdf2a","html_url":"https://github.com/marckrenn/rtfmbro-mcp","commit_stats":null,"previous_names":["marckrenn/rtfmbro-mcp"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/marckrenn/rtfmbro-mcp","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marckrenn%2Frtfmbro-mcp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marckrenn%2Frtfmbro-mcp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marckrenn%2Frtfmbro-mcp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marckrenn%2Frtfmbro-mcp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/marckrenn","download_url":"https://codeload.github.com/marckrenn/rtfmbro-mcp/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marckrenn%2Frtfmbro-mcp/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28478726,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-16T11:59:17.896Z","status":"ssl_error","status_checked_at":"2026-01-16T11:55:55.838Z","response_time":107,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["agent","agentic-ai","claude","context7","docs","documentation","mcp","mcp-server"],"created_at":"2025-08-01T07:01:22.900Z","updated_at":"2026-01-16T12:42:47.578Z","avatar_url":"https://github.com/marckrenn.png","language":null,"funding_links":[],"categories":["miscellaneous"],"sub_categories":[],"readme":"# rtfmbro-mcp\n\n\u003e rtfmbro provides always-up-to-date, version-specific package documentation as context for coding agents. An alternative to [context7](https://github.com/upstash/context7).\n\nhttps://github.com/user-attachments/assets/dbe0b3b4-a42c-4e91-8bcd-a94d430ef0b8\n\nDemonstration of rtfmbro in use, fetching a specific version (3.1.1) of Flask's [readme](https://github.com/pallets/flask/blob/3.1.1/README.md) and [docs](https://github.com/pallets/flask/tree/3.1.1/docs).\n\n## Overview\n\nrtfmbro is a Model Context Protocol (MCP) server that provides real-time, version-aware documentation fetching for packages across multiple ecosystems. It bridges the gap between AI agents and accurate, up-to-date package documentation by fetching docs directly from GitHub repositories at the exact version your project uses.\n\n## Supported Ecosystems\n\n| Ecosystem | Registry | Status |\n|-----------|----------|--------|\n| **Python** | PyPI | ✅ Full Support |\n| **Node.js** | npm | ✅ Full Support |\n| **Swift** | SPM | 🚧 Alpha |\n| **GitHub** | Direct | ⚠️ Fallback |\n\n## Why rtfmbro?\n\n### The Problem\n- **Stale Documentation**: AI models often rely on outdated training data about packages\n- **Missing Context**: Source code in `node_modules` etc. lacks high-level documentation, browsing it is usually token-consuming and inefficient\n- **Version Mismatches**: Generic documentation doesn't match your specific package version, especially for legacy projects or brand new packages\n\n### The Solution\nrtfmbro tries to solve these issues by:\n\n1. **Version-Precise Fetching**: Retrieves documentation from the exact git tag/commit that matches your lockfile\n2. **Comprehensive Coverage**: Extracts all documentation files (`.md`, `.mdx`, `.txt`, `.rst`, `.html`) from the repository\n3. **Intelligent Caching**: SHA-based currency checking ensures docs stay fresh without unnecessary re-fetching\n4. **Agent Integration**: Seamlessly integrates with AI coding assistants via the Model Context Protocol\n5. **Great DX**: Zero seting up for developers, just add the server to your MCP configuration, instructions and start fetching docs\n\n### MCP Tools\n\nThe server exposes four primary tools to AI agents:\n\n| Tool | Purpose | Parameters | Returns |\n|------|---------|------------|---------|\n| `get_readme` | Fetches and returns the README file for a specific package version | `package`, `version`, `ecosystem` | README content as string |\n| `get_documentation_tree` | Generates a comprehensive folder structure of all documentation files | `package`, `version`, `ecosystem` | Tree structure as string |\n| `read_files` | Reads specific documentation files with optional line range slicing | `package`, `version`, `ecosystem`, `requests[]` | Dictionary mapping paths to content |\n| `search_github_repositories` | Searches for GitHub repositories using the GitHub Search API | `query`, `sort`, `order`, `per_page` | Formatted repository search results |\n\n## Installation \u0026 Setup\n\n### Quick Start\n\n#### Claude Code\n\n```bash\nclaude mcp add-json rtfmbro '{ \"type\": \"http\",  \"url\": \"https://rtfmbro.smolosoft.dev/mcp/\" }'\n```\n\n#### Claude Desktop / VS Code / etc.\n\nAdd the remote server to your MCP configuration:\n\n```json\n{\n  \"rtfmbro\": {\n    \"type\": \"http\", \n    \"url\": \"https://rtfmbro.smolosoft.dev/mcp/\"\n  }\n}\n```\n\n#### Cursor\n\n[![Install MCP Server](https://cursor.com/deeplink/mcp-install-dark.svg)](https://cursor.com/install-mcp?name=rtfmbro\u0026config=eyJ0eXBlIjoiaHR0cCIsInVybCI6Imh0dHBzOi8vcnRmbWJyby5zbW9sb3NvZnQuZGV2L21jcC8ifQ%3D%3D)\n\n### Agent Integration\n\nTo truly integrate rtfmbro with your AI coding agent of choice, copy the appropriate meta-instruction file to your project:\n\n- **GitHub Copilot**: Copy [`.github/copilot-instructions.md`](.github/copilot-instructions.md) to your project\n- **Claude Code**: Copy [`CLAUDE.md`](CLAUDE.md) to your project root\n- **Cursor**: Copy [`.cursor/rules`](.cursor/rules) to your project root\n- **Other agents**: Adapt the instructions from either file above to your agent's format\n\n## How It Works\n\n### Documentation Workflow\n\n1. **Registry Lookup**: Queries the package registry (PyPI, npm, etc.) for metadata\n2. **GitHub Discovery**: Extracts the GitHub repository URL from package metadata\n3. **Version Resolution**: Fetches available git tags and matches them against your semantic version\n4. **Smart Fetching**: Clones the repository at the exact matched tag/commit\n5. **Content Filtering**: Extracts only documentation files, removing source code and build artifacts\n6. **Caching \u0026 Currency**: Stores results with SHA-based currency checking for efficient re-access\n\n### Caching Strategy\n\n- **SHA-Based Validation**: Compares current repository commit SHA with cached version\n- **Automatic Invalidation**: Re-fetches documentation when new commits are detected\n- **Persistent Storage**: Maintains local cache to avoid redundant GitHub API calls\n- **Metadata Preservation**: Stores documentation tree structure for fast browsing\n\n## Prerequisites\n\n- Package must be published to a supported registry (PyPI, npm)\n- Package metadata must contain a valid GitHub repository link\n- Repository must use git tags for version management\n- Documentation files must be present in the repository (not just generated sites)\n\n## Roadmap\n\n### Near Term\n- [x] **Ecosystem independent fallback**: Implement a fallback mechanism for unsupported ecosystems\n- [ ] **Provide rtfmbro source code**: Open source the server codebase\n- [ ] **Public docker image**: Create a public Docker image for easy deployment\n- [ ] **Private repo support**: Allow authenticated access to private repositories\n- [ ] **Add Tests**: Implement unit and integration tests for core functionality\n- [ ] **Enhanced Python Support**: Include pydocs and docstring extraction\n- [ ] **Search Capabilities**: Search across documentation corpus\n\n### Future Ecosystems / Languages / Registries\n- [ ] **Rust** ([crates.io](https://crates.io/))\n- [ ] **Go** ([pkg.go.dev](https://pkg.go.dev/))\n- [ ] **Java/Kotlin** ([Maven Central](https://central.sonatype.com/))\n- [ ] **C#/.NET** ([NuGet](https://www.nuget.org/))\n- [ ] **Ruby** ([RubyGems](https://rubygems.org/))\n\n### Source code hosting and repository support:\n- [x] **GitHub**: Support for GitHub repositories\n- [ ] **Gitlab**: Support for GitLab repositories\n- [ ] **Bitbucket**: Support for Bitbucket repositories\n- [ ] **Launchpad**: Support for Launchpad repositories\n\n## Known Issues\n\n- Some packages may have documentation in separate standalone repos\n- Large repositories may take a bit of time to clone and process initially\n\n## Similar / Additive Projects\n\n- **[mcp-package-docs](https://github.com/sammcj/mcp-package-docs)**: Another MCP server for package documentation, focusing on documentation extraction, LSP servers, etc. May be a great supplement to rtfmbro.\n- **[rust-docs-mcp-server](https://github.com/Govcraft/rust-docs-mcp-server)**: MCP server for Rust documentation, focused on Rust-specific features and documentation formats.\n- **[mcp-ragdocs](https://github.com/qpd-v/mcp-ragdocs)**: MCP server for RAG (Retrieval-Augmented Generation) documentation, aimed at improving the documentation experience for AI models.\n- **[godoc-mcp](https://github.com/mrjoshuak/godoc-mcp)**: MCP server for Go documentation, providing access to Go package documentation via the Model Context Protocol.\n- **[context7](https://github.com/upstash/context7)**: Alternative to rtfmbro\n\n### Differences between **context7** and **rtfmbro**\n|Aspect|context7|rtfmbro|\n|------|--------|-------|\n| **Actuality** | Scrapes documentation ahead-of-time at intransparent intervals or upon user trigger. As of writing, the \"latest\" Next.js docs are already 2 days old.| Fetches documentation just-in-time, ensuring it's always up-to-date. |\n| **Version-specific docs** | Theoretically allows scraping older versions (useful for legacy or longtime projects), but the process is complicated, limiting practical availability effectively to latest versions. | Fetches older documentation just-in-time, and always remains current, identical to latest docs. |\n| **Search strategy** | Uses either A) optionally token-limited RAG search to filter/preprocess docs which can be hit-or-miss, or B) dumps all content into LLM's context, resulting in excessive token-use. | Employs agentic discovery ([as used by Claude Code itself](https://x.com/pashmerepat/status/1926717705660375463)) |\n| **Developer Experience** | Requires explicitly mention of context7 in every prompt. | Operates via defined rules/instructions, auto-selecting appropriate package name/version from lock file (\"set and forget\"). |\n| **Support** | Language/ecosystem independent. | Currently language/ecosystem-specific; planned additional languages/ecosystems and language-independent fallback mechanism soon. |\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmarckrenn%2Frtfmbro-mcp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmarckrenn%2Frtfmbro-mcp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmarckrenn%2Frtfmbro-mcp/lists"}