构建一个 Skill / MCP,让 AI 能够访问所有开源库的源码和文档
·
我想要构建一个 Skill / MCP,让 AI 能够访问所有开源库的源码和文档,这样就能:
- 向 AI 提问一些开源项目底层实现的问题,就像 Deepwiki / Zread 那样,但使用自己的 AI
- 让 AI 写代码时参考最新的库文档和源码,以免 AI 使用已弃用的 API 或者出现幻觉
让我们开始实现!
数据来源
我们要获取 GitHub 公开仓库的源代码,主要有两个选项:
- 通过 GitHub API 获取
- 将源代码通过 git clone 至本地
我选择了后者,因为:
- 通过 GitHub Search API 搜索代码,比较慢且有严格的速率限制
- 通过 GitHub API 难以实现列出目录树这样的功能
- 首次 git clone 需要等待,但后续就能快速响应
减少数据量
我们不希望将整个仓库 clone 下来,那样就太慢了。我们可以使用 git partial clone 的方法:
git clone --depth 1 --filter=blob:limit=100k --no-checkout https://github.com/user/repo.git
--depth 1浅克隆,仅下载最新版本--filter=blob:limit=100k过滤掉 >100k 的文件,这能够减少 90% 的下载量--no-checkout不检出工作区,所有数据都在 .git 中,进一步减少空间占用
因为未检出工作区,所以所有读取操作都基于 git 实现:
- 列出文件:
git ls-tree -r HEAD --name-only - 读取文件:
git cat-file -p HEAD:src/main.js - 搜索代码:
git grep "function login" HEAD
关联文档
现在,我们已经实现读取源代码了,但我们还希望 AI 能够读取文档。如果文档在同一个仓库里,那倒是能够直接读取。但很多时候文档在一个单独的仓库里。
我使用了一个简单的方法识别:列出同组织的所有 repo,使用 doc 过滤名称,然后让 LLM 根据名称、描述判断有没有对应的文档库。一个 flash 级别的模型就能够胜任这个任务。现在 AI 让这类任务变得异常简单!
这样就关联了文档仓库,在 AI 访问主仓库时同时提供文档仓库就行了。
现在,这个工具已经基本构建完成了,将其封装成 Skill / MCP 的过程就不必多说了。
开始使用
我将这个工具部署到了我的服务器上,并提供开箱即用的 Skill 和 MCP。
对于 OpenCode, Codex, Cursor, Copilot 等 coding agent,只需要运行下面的命令添加 Skill:
npx skills add https://github.com/NitroRCr/gread --skill gread
对于 AI 对话应用等 MCP 客户端,可以通过 MCP 安装:
https://api.gread.dev/mcp
JSON 配置参考:
{
"mcpServers": {
"gread": {
"type": "streamableHttp",
"url": "https://api.gread.dev/mcp"
}
}
}
更多信息可参考:
- 网站主页:gread.dev
- 源代码:NitroRCr/gread
- 与现有工具对比
或者,直接添加 Skill / MCP 然后问 AI 更多细节也是可以的!
更多推荐



所有评论(0)