我想要构建一个 Skill / MCP,让 AI 能够访问所有开源库的源码和文档,这样就能:

  • 向 AI 提问一些开源项目底层实现的问题,就像 Deepwiki / Zread 那样,但使用自己的 AI
  • 让 AI 写代码时参考最新的库文档和源码,以免 AI 使用已弃用的 API 或者出现幻觉

让我们开始实现!

数据来源

我们要获取 GitHub 公开仓库的源代码,主要有两个选项:

  1. 通过 GitHub API 获取
  2. 将源代码通过 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"
    }
  }
}

更多信息可参考:

或者,直接添加 Skill / MCP 然后问 AI 更多细节也是可以的!

Logo

小龙虾开发者社区是 CSDN 旗下专注 OpenClaw 生态的官方阵地,聚焦技能开发、插件实践与部署教程,为开发者提供可直接落地的方案、工具与交流平台,助力高效构建与落地 AI 应用

更多推荐