GitHub MCP服务器

一个自托管的GitHub MCP服务器,部署在Vercel项目中,作为Claude.ai的自定义连接器,无需在聊天中粘贴令牌。

  • by dev-olivers
  • TypeScript
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 dev-olivers/mcp-github-server

使用说明

mcp github服务器

您部署到自己的Vercel项目的自托管GitHub MCP(模型上下文协议)服务器。以自定义连接器连接到Claude.ai——不再在聊天中粘贴令牌。

为什么

Claude.ai为Supabase和Vercel提供MCP连接器。GitHub没有web界面。这填补了这一空白。

您的GitHub PAT位于Vercel环境变量中。MCP服务器在运行时读取它。Claude.ai作为自定义连接器连接到服务器。你再也不会在聊天中粘贴令牌了。

所得

克劳德可用的六个工具:

工具 说明
git_read 读取文件或列出目录
git_push 使用提交创建或更新文件
git_push_multi 以原子方式提交多个文件
git_log 最近提交历史
git_list_branches 列出所有分支
git_create_branch 从任何引用创建分支

设置(5分钟)

1.安装依赖项

在Vercel上现有的Next.js项目中:

npm install mcp-handler @octokit/rest zod

2.添加路线

复制 src/app/api/mcp/[transport]/route.ts 从这个仓库到你的项目,路径相同。

编辑 committer 对象在 git_push 和 git_push_multi 要使用您的git身份:

committer: {
  name: "your-github-username",
  email: "your-username@users.noreply.github.com",
},

3.公开路线

如果您的应用程序具有保护路由的身份验证中间件或代理,请添加 /api/mcp 指向公共/未经身份验证的路径。MCP传输处理自己的连接模型——它不需要你的应用程序的身份验证。

Next.js中间件示例:

// In your middleware or proxy config
const publicPaths = ["/api/mcp"];

4.将您的GitHub PAT添加到Vercel

在Vercel项目设置中→ 环境变量:

  • 密钥: GITHUB_PAT
  • 价值: 您的细粒度GitHub PAT,具有仓库访问权限
  • 环境: 制作、预览、开发

PAT永远不会触及你的代码。

5.部署

按下密码。Vercel部署。

6.连接到Claude.ai

设置→ 连接器→ 添加自定义连接器:

https://yourdomain.com/api/mcp/mcp

双重身 /mcp 是有意的——第一段是路由路径,第二段是MCP传输端点。

完成。Claude现在可以在PAT可以访问的所有存储库中读取、写入、分支和查看历史记录。

凭证轮换

当您需要旋转PAT时:

  1. 在GitHub上创建新的PAT
  2. 更新 GITHUB_PAT Vercel中的env变量
  3. 重新部署(或等待下一次部署)

没有代码更改。没有聊天曝光。没有仪式。

Supabase边缘函数

此模式也应适用于Supabase Edge Functions(Deno运行时),使用相同的 mcp-handler 该软件包尚未经过测试。核心方法是相同的——从环境变量中读取凭据,通过MCP公开工具,部署到现有的基础设施。

运作原理

服务器使用 mcp-handler 将MCP协议桥接到Next.js API路由,以及 @octokit/rest 用于GitHub API调用。每个工具都是一个精简的包装器:使用Zod验证输入,调用Octokit,返回结果。

服务器是无状态的。上面写着 GITHUB_PAT 从 process.env 在每一个请求。除了您现有的Vercel主机外,它不收取任何费用。

模式

这不仅仅是一个GitHub连接器,而是一种模式。任何带有API和SDK的服务都可以在100行以下成为MCP服务器:

  1. 安装 mcp-handler +服务的SDK
  2. 在以下位置创建包罗万象的路线 api/mcp/[transport]/route.ts
  3. 使用委托给SDK的Zod模式定义工具
  4. 将凭据存储为env var
  5. 部署和连接

许可证

麻省理工学院