返回市场
GitHub仓库探索器-mcp

GitHub仓库探索器-mcp

作者:juancgarza2 星标更新:2025-06-07

项目介绍

GitHub 仓库探索器 MCP

一个模型上下文协议(MCP)服务器,赋予 Claude Code 探索和理解任何 GitHub 仓库的能力。非常适合从现有的代码库中学习,理解实现模式,或者研究其他项目如何解决类似问题。

为什么使用这个?

你是否想知道 VS Code 如何实现其编辑器,React 如何处理状态管理,或者任何开源项目如何构建他们的代码?这个 MCP 服务器让 Claude Code 能够深入到任何公共仓库,帮助你理解和学习实际的实现。

特性

  • 🚀 即时仓库访问:克隆并探索任何公共 GitHub 仓库
  • 📁 导航代码库:浏览目录结构就像在本地环境一样
  • 📄 阅读源代码:检查任何文件的实现细节
  • 🔍 智能代码搜索:在整个项目中查找特定模式、函数或实现
  • 💡 通过示例学习:研究成功的项目是如何实现你想要构建的功能的
  • 🔒 安全探索:只读访问确保你只是在学习,而不是修改

使用场景

🎯 从热门项目中学习

// 探索 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" })

🔍 研究实现模式

  • 认证:查看 Supabase 如何处理认证流程
  • 状态管理:研究 Redux 或 Zustand 内部机制
  • API 设计:从 Stripe 的 SDK 模式中学习
  • 测试策略:探索 Jest 或 Vitest 代码库
  • 构建工具:了解 Vite 或 Webpack 的工作原理

安装

# 克隆此仓库
git clone https://github.com/yourusername/github-repo-explorer-mcp.git
cd github-repo-explorer-mcp

# 安装依赖
npm install

# 构建 TypeScript 文件
npm run build

在 Claude Code 中设置

1. 运行服务器

# 使用提供的 shell 脚本(推荐)
./run-github-mcp.sh

# 或者直接使用 npm 运行
npm run dev

2. 添加到 Claude Desktop

# 使用 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 会话中使用

API 参考

工具

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 编辑器的实现

// 克隆 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 学习认证模式

// 克隆 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 脚本

开发

前提条件

  • Node.js 16+
  • npm 或 yarn
  • TypeScript

从源码构建

# 安装依赖
npm install

# 开发模式运行
npm run dev

# 生产模式构建
npm run build

# 运行测试(如果有)
npm test

安全注意事项

  • 🔒 仅适用于公共 GitHub 仓库
  • 📁 文件访问限制在克隆的仓库目录内
  • 🛡️ 命令行命令正确转义以防止注入
  • 🚫 不存储或传输身份验证令牌
  • 📍 克隆的仓库默认存储在 ./repo 目录下

贡献

欢迎贡献!请随时提交 Pull Request。

许可证

MIT 许可证 - 详情见 LICENSE 文件