GitHub
你是否曾经希望AI能够直接操作你的GitHub仓库,创建Issue、合并PR、搜索代码,甚至自动审查代码?今天要介绍的开源项目GitHub MCP服务器,正是为了实现这个目标而设计的。它由模型上下文协议官方团队开发,深度集成GitHub API,支持代码仓库管理、自动化审查等智能操作。
重要通知:该项目的开发已移至GitHub官方仓库 https://github.com/github/github-mcp-server。本文基于原版介绍,建议使用新版。
项目基本信息
| 信息项 | 详情 |
|---|---|
| 项目名称 | GitHub |
| GitHub地址 | https://github.com/modelcontextprotocol/servers/tree/main/src/github |
| 项目描述 | 深度集成GitHub API接口,支持代码仓库管理、自动化审查等智能操作。开发者可通过标准化协议快速对接GitHub生态,实现CI/CD流程智能化升级,提升研发效能。 |
| 作者 | modelcontextprotocol |
| 开源协议 | MIT License |
| 开源状态 | 公开状态 |
| Languages | TypeScript, JavaScript |
| 支持平台 | Windows / macOS / Linux |
| 最后更新 | 2026-04-23 |
一、项目介绍
GitHub MCP服务器是MCP官方提供的GitHub集成工具,让AI能够通过标准化协议与GitHub交互。它支持文件操作、仓库管理、搜索功能等,涵盖了GitHub API的核心能力。
这个服务器提供了20+个MCP工具,覆盖以下功能领域:
- 文件操作:创建/更新文件、批量推送文件、获取文件内容
- 仓库管理:创建仓库、分叉仓库、创建分支
- Issue管理:创建、更新、列出、添加评论
- PR管理:创建、合并、获取详情、列出、添加评论、创建审查
- 搜索功能:搜索代码、搜索Issues/PRs、搜索用户、搜索仓库
- 提交管理:列出提交记录
二、核心优势
功能全面
提供了20+个MCP工具,覆盖了GitHub开发流程的各个环节。
自动分支创建
在创建/更新文件或推送更改时,如果分支不存在,则会自动创建,简化工作流程。
批量操作
支持单文件和多文件操作,可以在单个提交中推送多个文件。
高级搜索
支持GitHub的高级搜索语法,可以按语言、仓库、路径、扩展名等搜索代码,按标签、作者、状态等搜索Issues/PRs。
完整的PR工作流
支持创建、审查、合并PR,获取PR的文件变更、状态检查、评论和审查信息。
官方维护
由MCP官方团队维护,与MCP协议同步更新,稳定可靠。
三、适用场景
AI辅助开发
让AI帮你创建Issue、提交代码、创建PR、审查代码,自动化开发流程。
CI/CD集成
在CI/CD流程中集成GitHub MCP,实现自动化的代码提交、PR创建和合并。
代码搜索与分析
AI可以利用高级搜索功能,快速定位特定代码模式、查找示例代码。
项目管理自动化
AI可以根据团队需求,自动创建Issue、分配任务、更新状态。
四、安装教程
系统要求
| 工具 | 用途 | 下载/安装方式 |
|---|---|---|
| Node.js | JavaScript运行环境 | [https://nodejs.org/] (版本要求:18.0 或以上) |
| GitHub个人访问令牌 | 认证 | [https://github.com/settings/tokens] |
| MCP客户端 | 如Claude Desktop、Cursor等 | 根据客户端官网下载 |
安装步骤
第一步:创建GitHub个人访问令牌
- 前往GitHub Settings -> Developer settings -> Personal access tokens -> Tokens (classic)
- 点击"Generate new token (classic)"
- 选择
repo权限(对私有仓库的完全控制权限) - 如果只处理公共仓库,只选择
public_repo权限即可 - 复制生成的令牌
第二步:配置MCP客户端
对于Claude Desktop:
找到配置文件:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
使用NPX(推荐):
{
"mcpServers": {
"github": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "你的令牌"
}
}
}
}使用Docker:
{
"mcpServers": {
"github": {
"command": "docker",
"args": ["run", "-i", "--rm", "-e", "GITHUB_PERSONAL_ACCESS_TOKEN", "mcp/github"],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "你的令牌"
}
}
}
}对于VS Code:
在用户设置(JSON)中添加:
{
"mcp": {
"servers": {
"github": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "你的令牌"
}
}
}
}
}第三步:重启客户端
保存配置后,重启Claude Desktop或Cursor。
五、使用示例
配置完成后,你就可以在MCP客户端中使用自然语言来操作GitHub了。
示例1:创建或更新文件
用户指令:“在my-repo仓库的main分支上创建一个README.md文件”
AI会调用create_or_update_file工具:
{
"owner": "username",
"repo": "my-repo",
"path": "README.md",
"content": "# My Project\n\nThis is a description.",
"message": "Initial commit",
"branch": "main"
}示例2:批量推送文件
用户指令:“一次性推送src目录下的所有文件”
AI会调用push_files工具:
{
"owner": "username",
"repo": "my-repo",
"branch": "main",
"files": [
{"path": "src/index.js", "content": "console.log('hello');"},
{"path": "src/utils.js", "content": "export const add = (a,b) => a+b;"}
],
"message": "Add source files"
}示例3:创建Issue
用户指令:“在my-repo中创建一个标题为‘Bug: 登录页面崩溃’的Issue”
AI会调用create_issue工具:
{
"owner": "username",
"repo": "my-repo",
"title": "Bug: 登录页面崩溃",
"body": "详细描述...",
"labels": ["bug", "high-priority"]
}示例4:创建PR
用户指令:“从feature分支向main分支创建一个PR,标题为‘添加用户认证功能’”
AI会调用create_pull_request工具:
{
"owner": "username",
"repo": "my-repo",
"title": "添加用户认证功能",
"head": "feature",
"base": "main",
"body": "实现了JWT认证"
}示例5:搜索代码
用户指令:“搜索使用React Hooks的代码示例”
AI会调用search_code工具:
{
"q": "useState language:javascript"
}示例6:创建PR审查
用户指令:“批准PR #123”
AI会调用create_pull_request_review工具:
{
"owner": "username",
"repo": "my-repo",
"pull_number": 123,
"event": "APPROVE",
"body": "代码质量很好,可以合并"
}示例7:合并PR
用户指令:“使用squash方式合并PR #123”
AI会调用merge_pull_request工具:
{
"owner": "username",
"repo": "my-repo",
"pull_number": 123,
"merge_method": "squash"
}示例8:搜索语法示例
代码搜索:
q: "import express" language:typescript path:src/q: "useState" repo:facebook/react
Issues搜索:
q: "memory leak" is:issue is:open label:bugq: "security" author:username
用户搜索:
q: "fullstack developer" location:London followers:>100
六、常见问题
问题1:提示“Bad credentials”
解决方案:
- 确认GitHub个人访问令牌正确且未过期
- 检查令牌是否有
repo或public_repo权限 - 重新生成令牌后重试
问题2:创建文件时分支不存在
解决方案:服务器会自动创建分支,无需手动创建。如果失败,确认有创建分支的权限。
问题3:搜索功能返回结果有限
解决方案:
- 使用更精确的搜索语法
- 注意GitHub搜索的限制(最多1000个结果)
- 使用分页参数
per_page和page
问题4:Docker方式无法连接
解决方案:
- 确认Docker已安装并运行
- 检查网络配置
- 尝试NPX方式作为替代
问题5:PR审查时无法添加行内评论
解决方案:使用comments参数,每个评论包含path、position和body。
七、总结
GitHub MCP服务器是MCP生态中最全面的代码托管平台集成工具。它提供了20+个工具,覆盖了从代码提交到PR合并的完整开发流程。
这个项目的最大价值在于:
- 功能全面:覆盖文件操作、仓库管理、Issue、PR、搜索等核心功能
- 官方维护:由MCP官方团队维护,稳定可靠
- 智能操作:自动分支创建、批量操作等简化工作流程
- 高级搜索:支持GitHub强大的搜索语法
- CI/CD就绪:可集成到自动化开发流程中
如果你是GitHub用户,并且希望用AI来辅助开发,GitHub MCP服务器是必备工具。 建议使用GitHub官方新版:https://github.com/github/github-mcp-server
作为开发者,这个工具让我的工作流自动化了。
建议迁移到GitHub官方新版,功能更完善。
已经加星,这个项目让GitHub与AI完美结合。
MIT协议开源,可以自由使用。
和GitLab MCP相比,GitHub这个功能更丰富。