mcpField
R
rtfmbro-mcp

rtfmbro-mcp

远程服务
github.com/marckrenn开发工具9271 周前更新
代码仓库

关于 rtfmbro-mcp

rtfmbro-mcp 是一个 MCP 服务,为编码 Agent 提供与项目锁定版本一致的软件包文档。它直接从 GitHub 仓库按版本标签获取文档,适合需要准确、最新 API 文档的开发者。项目定位为 context7 的替代方案。

主要功能

  1. 01按 lockfile 中的确切版本获取文档
  2. 02支持 PyPI 与 npm 生态,Swift 为 Alpha
  3. 03基于提交 SHA 的缓存有效性检查
  4. 04提供 README、文档目录与文件读取工具
  5. 05可通过远程 HTTP 服务接入

适用场景

  1. 01让编码 Agent 查阅项目所用旧版本库的 API 文档
  2. 02避免模型依赖过时训练数据编写代码
  3. 03减少浏览 node_modules 等源码时的 token 消耗

MCP 相关

该项目是 MCP 服务,向 MCP 客户端提供 get_readme、get_documentation_tree、read_files 和 search_github_repositories 四个工具。

配置

远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。

服务地址https://rtfmbro.smolosoft.dev/mcp/
一键复制安装命令
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。

工具

详细介绍

rtfmbro-mcp

rtfmbro 为编码 Agent 提供始终最新、特定版本的包文档作为上下文。它是 context7 的替代方案。

https://github.com/user-attachments/assets/dbe0b3b4-a42c-4e91-8bcd-a94d430ef0b8

rtfmbro 使用演示:获取 Flask 特定版本(3.1.1)的 README 和 文档。

概述

rtfmbro 是一个模型上下文协议(MCP)服务,可实时获取多个生态系统中软件包的文档,并感知版本。它通过直接从 GitHub 仓库获取与你的项目所用版本完全一致的文档,弥合 AI Agent 与准确、最新的软件包文档之间的差距。

支持的生态系统

生态系统注册表状态
PythonPyPI✅ 完全支持
Node.jsnpm✅ 完全支持
SwiftSPM🚧 Alpha
GitHubDirect⚠️ 后备方案

为什么选择 rtfmbro?

问题所在
  • 文档过时:AI 模型通常依赖过时的包训练数据
  • 缺少上下文:node_modules 等目录中的源代码缺少高层次文档,浏览这些代码通常会消耗大量令牌,效率低下
  • 版本不匹配:通用文档与特定的软件包版本不匹配,尤其是旧项目或全新软件包
解决方案

rtfmbro 通过以下方式尝试解决这些问题:

  1. 精准获取版本:从与你的锁定文件匹配的确切 Git 标签/提交中检索文档
  2. 全面覆盖:从仓库中提取所有文档文件(.md、.mdx、.txt、.rst、.html)
  3. 智能缓存:基于 SHA 的时效性检查确保文档保持最新,避免不必要的重新获取
  4. Agent 集成:通过模型上下文协议与 AI 编码助手无缝集成
  5. 出色的开发体验:开发者无需进行任何设置,只需将服务添加到 MCP 配置和指令中,即可开始获取文档
MCP 工具

此服务向 AI Agent 提供四种主要工具:

工具用途参数返回值
get_readme获取并返回特定软件包版本的 README 文件package、version、ecosystemREADME 内容字符串
get_documentation_tree生成包含所有文档文件的完整文件夹结构package、version、ecosystem树结构字符串
read_files读取指定文档文件,可选按行范围切片package、version、ecosystem、requests[]将路径映射到内容的字典
search_github_repositories使用 GitHub Search API 搜索 GitHub 仓库query、sort、order、per_page格式化的仓库搜索结果

安装与设置

快速开始
Claude Code
claude mcp add-json rtfmbro '{ "type": "http",  "url": "https://rtfmbro.smolosoft.dev/mcp/" }'
Claude Desktop / VS Code / 等

将远程服务添加到你的 MCP 配置中:

{
  "rtfmbro": {
    "type": "http", 
    "url": "https://rtfmbro.smolosoft.dev/mcp/"
  }
}
Cursor

安装 MCP 服务

Agent 集成

若要将 rtfmbro 真正集成到你选择的 AI 编码 Agent 中,请将相应的元指令文件复制到你的项目中:

  • GitHub Copilot:将 .github/copilot-instructions.md 复制到你的项目中
  • Claude Code:将 CLAUDE.md 复制到你的项目根目录
  • Cursor:将 .cursor/rules 复制到你的项目根目录
  • 其他 Agent:将上述任一文件中的指令改写为你的 Agent 所用的格式

工作原理

文档工作流
  1. 注册表查询:从软件包注册表(PyPI、npm 等)查询元数据
  2. GitHub 发现:从软件包元数据中提取 GitHub 仓库 URL
  3. 版本解析:获取可用的 Git 标签,并与语义化版本进行匹配
  4. 智能获取:在精确匹配的标签/提交处克隆仓库
  5. 内容筛选:仅提取文档文件,移除源代码和构建产物
  6. 缓存与时效性:存储结果,并通过基于 SHA 的时效性检查,实现高效的再次访问
缓存策略
  • 基于 SHA 的验证:将当前仓库提交 SHA 与缓存版本进行比较
  • 自动失效:检测到新提交时,重新获取文档
  • 持久化存储:维护本地缓存,避免重复调用 GitHub API
  • 保留元数据:存储文档树结构,以便快速浏览

先决条件

  • 软件包必须发布到受支持的注册表(PyPI、npm)
  • 软件包元数据必须包含有效的 GitHub 仓库链接
  • 仓库必须使用 git 标签进行版本管理
  • 仓库中必须包含文档文件(而非只有生成的网站)

路线图

近期计划
  • 独立于生态系统的回退机制:为不受支持的生态系统实现回退机制
  • 提供 rtfmbro 源代码:开源服务端代码库
  • 公开的 docker 镜像:创建公开的 Docker 镜像,以便轻松部署
  • 支持私有仓库:允许经过身份验证后访问私有仓库
  • 添加测试:为核心功能实现单元测试和集成测试
  • 增强 Python 支持:包含 pydocs 和 docstring 提取
  • 搜索功能:支持在文档语料库中搜索
未来支持的生态系统 / 语言 / 注册表
源代码托管与仓库支持:
  • GitHub:支持 GitHub 仓库
  • Gitlab:支持 GitLab 仓库
  • Bitbucket:支持 Bitbucket 仓库
  • Launchpad:支持 Launchpad 仓库

已知问题

  • 某些软件包的文档可能位于独立的仓库中
  • 大型仓库首次克隆和处理可能需要一些时间

类似 / 补充项目

  • mcp-package-docs:另一个用于软件包文档的 MCP 服务,侧重于文档提取、LSP 服务等。它可能是 rtfmbro 的绝佳补充。
  • rust-docs-mcp-server:用于 Rust 文档的 MCP 服务,专注于 Rust 特有功能和文档格式。
  • mcp-ragdocs:用于 RAG(检索增强生成)文档的 MCP 服务,旨在改善 AI 模型的文档使用体验。
  • godoc-mcp:用于 Go 文档的 MCP 服务,通过 Model Context Protocol 提供 Go 软件包文档的访问能力。
  • context7:rtfmbro 的替代方案
context7 与 rtfmbro 的区别
方面context7rtfmbro
时效性会按不透明的时间间隔或在用户触发时提前抓取文档。截至撰写本文时,最新的 Next.js 文档已经过时 2 天。按需即时抓取文档,确保文档始终是最新的。
特定版本的文档理论上支持抓取旧版本(适用于遗留项目或长期维护的项目),但流程较为复杂,实际上能用的基本只有最新版本。按需即时抓取旧版文档,同时始终保持最新,与最新文档一致。
搜索策略使用以下任一方式:A)可选的、受 token 限制的 RAG 搜索,用于筛选/预处理文档,但效果可能时好时坏;或 B)将所有内容都塞入大模型的上下文,导致 token 用量过高。采用 Agent 式发现机制(Claude Code 自身也采用此方式)。
开发者体验每次编写提示词时都必须明确提及 context7。通过预先定义的规则/指令运行,自动从锁定文件中选择适当的包名/版本(“设置后即可不管”)。
支持与语言/生态系统无关。目前针对特定语言/生态系统;计划很快支持更多语言/生态系统,并提供与语言无关的回退机制。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。