用途
read-github 用于以更可靠的方式读取 GitHub 仓库的文档与代码。它不采用直接抓取网页的方式,而是通过 gitmcp.io 的 MCP 服务访问仓库内容。资料称这种方式优于网页搜索,原因之一是它支持对文档进行语义搜索,而不仅是关键词匹配。
主要能力
该技能围绕 gitmcp.io 提供以下能力:
- URL 转换:将 GitHub 地址转换为 gitmcp.io 地址。
- github.com/owner/repo → gitmcp.io/owner/repo
- 示例:https://github.com/karpathy/llm-council → https://gitmcp.io/karpathy/llm-council
- 获取文档:拉取仓库的完整文档文件(如 README、docs 等)。
- 文档语义搜索:在仓库文档内进行语义搜索。
- 代码搜索:通过 GitHub Search API 进行精确匹配的代码搜索,返回匹配的文件。
- 抓取引用 URL:获取文档中提到的 URL 内容,并遵守 robots.txt。
- 直接工具调用:直接调用任意 MCP 工具。
使用方式
该技能通过 scripts/gitmcp.py 脚本提供命令行访问。
列出可用工具:
python3 scripts/gitmcp.py list-tools owner/repo
获取文档(拉取完整文档文件,如 README、docs 等):
python3 scripts/gitmcp.py fetch-docs owner/repo
在文档中语义搜索:
python3 scripts/gitmcp.py search-docs owner/repo "query"
搜索代码(使用 GitHub Search API,精确匹配):
python3 scripts/gitmcp.py search-code owner/repo "function_name"
抓取文档中引用的 URL:
python3 scripts/gitmcp.py fetch-url owner/repo "https://example.com/doc"
直接调用任意 MCP 工具:
python3 scripts/gitmcp.py call owner/repo tool_name '{"arg": "value"}'
工具命名规则
工具名会以仓库名(下划线形式)动态加前缀,例如:
- karpathy/llm-council → fetch_llm_council_documentation
- facebook/react → fetch_react_documentation
- my-org/my-repo → fetch_my_repo_documentation
可用的 MCP 工具
对任意仓库,以下工具可用:
- fetch_{repo}_documentation:获取整个文档。回答一般性问题时应首先调用。
- search_{repo}_documentation:在文档内进行语义搜索。用于具体查询。
- search_{repo}_code:通过 GitHub API 搜索代码(精确匹配),返回匹配的文件。
- fetch_generic_url_content:抓取文档中引用的任意 URL,遵守 robots.txt。
推荐工作流
当拿到一个 GitHub 仓库时:
- 先获取文档,以理解项目。
- 针对用法或功能的具体问题,使用 search-docs。
- 查找实现或特定函数时,使用 search-code。
- 需要获取文档中提到的外部引用时,使用 fetch-url。
适用场景
- 需要快速理解某个 GitHub 仓库的整体情况。
- 需要就仓库的用法或功能提出具体问题。
- 需要定位仓库中的实现或特定函数。
- 需要获取文档中引用的外部链接内容。
限制
资料未提供关于收费、价格、平台支持范围、性能效果或额外使用步骤的信息,这些内容暂未提供。