一个模型上下文协议(MCP)服务器,赋予 Claude Code 探索和理解任何 GitHub 仓库的能力。非常适合从现有的代码库中学习,理解实现模式,或者研究其他项目如何解决类似问题。
你是否想知道 VS Code 如何实现其编辑器,React 如何处理状态管理,或者任何开源项目如何构建他们的代码?这个 MCP 服务器让 Claude Code 能够深入到任何公共仓库,帮助你理解和学习实际的实现。
// 探索 VS Code 如何实现其文本编辑器
await clone_repo({ url: "https://github.com/microsoft/vscode" })
await grep({ pattern: "TextEditor", path: "src" })
// 理解 React 的钩子实现
await clone_repo({ url: "https://github.com/facebook/react" })
await cat({ path: "packages/react/src/ReactHooks.js" })
// 研究 Next.js 路由架构
await clone_repo({ url: "https://github.com/vercel/next.js" })
await ls({ path: "packages/next/src/client/components" })
# 克隆此仓库
git clone https://github.com/yourusername/github-repo-explorer-mcp.git
cd github-repo-explorer-mcp
# 安装依赖
npm install
# 构建 TypeScript 文件
npm run build
# 使用提供的 shell 脚本(推荐)
./run-github-mcp.sh
# 或者直接使用 npm 运行
npm run dev
# 使用 Claude CLI 添加
claude mcp add github-repo /path/to/github-repo-explorer-mcp/run-github-mcp.sh
# 例如,如果你克隆到了你的 Projects 文件夹:
claude mcp add github-repo /Users/yourusername/Projects/github-repo-explorer-mcp/run-github-mcp.sh
# 该服务器现在可以在 Claude Code 会话中使用
clone_repo克隆 GitHub 仓库到本地文件系统。
{
url: string; // GitHub 仓库 URL
name?: string; // 可选的自定义目录名称
}
ls列出仓库中的文件和目录。
{
path?: string; // 可选的相对于仓库根目录的路径(默认为根目录)
}
cat从仓库中读取文件内容。
{
path: string; // 相对于仓库根目录的文件路径
}
grep在仓库文件中搜索模式。
{
pattern: string; // 搜索模式(支持正则表达式)
path?: string; // 可选的搜索路径
ignoreCase?: boolean; // 不区分大小写的搜索
}
repository_info - 显示当前仓库的 URL 和本地路径// 克隆 VS Code 仓库
await clone_repo({ url: "https://github.com/microsoft/vscode" })
// 查找编辑器的实现位置
await grep({ pattern: "class.*Editor", path: "src/vs/editor" })
// 探索 Monaco 编辑器结构
await ls({ path: "src/vs/editor/browser" })
// 阅读具体的实现
await cat({ path: "src/vs/editor/browser/editorBrowser.ts" })
// 克隆 Supabase 认证助手
await clone_repo({ url: "https://github.com/supabase/auth-helpers" })
// 查找 OAuth 实现
await grep({ pattern: "OAuth|oauth", ignoreCase: true })
// 研究认证客户端结构
await ls({ path: "packages/shared/src" })
// 查看 Vite 如何处理 HMR(热模块替换)
await clone_repo({ url: "https://github.com/vitejs/vite" })
await grep({ pattern: "hot.*update|hmr", path: "packages/vite/src", ignoreCase: true })
// 了解 Turbopack 的架构
await clone_repo({ url: "https://github.com/vercel/turbo" })
await ls({ path: "crates/turbopack-core/src" })
github-mcp-server/
├── src/
│ └── index.ts # 主服务器实现
├── build/ # 编译后的 JavaScript 输出
├── CLAUDE.md # Claude Code 指南
├── package.json # 项目依赖
├── tsconfig.json # TypeScript 配置
└── run-github-mcp.sh # 运行服务器的 shell 脚本
# 安装依赖
npm install
# 开发模式运行
npm run dev
# 生产模式构建
npm run build
# 运行测试(如果有)
npm test
./repo 目录下欢迎贡献!请随时提交 Pull Request。
MIT 许可证 - 详情见 LICENSE 文件