扩展与集成 · MCP
GitHub MCP Server
由 GitHub 官方维护的 MCP 服务器,覆盖仓库、拉取请求、issue、代码搜索与 CI/CD 洞察——支持远程或本地部署,并可通过 OAuth 登录。
GitHub MCP Server 让智能体直接连接 GitHub 平台——有两种运行方式。远程服务器由 GitHub 官方托管在 https://api.githubcopilot.com/mcp/,据 README 介绍是最简单的接入方式:可在浏览器中通过 OAuth 登录(令牌只保存在内存中),或者使用个人访问令牌(PAT),放入 Authorization: Bearer 请求头。如果想把一切保留在本地,可以用 PAT 或 OAuth 回调将服务器以 Docker 容器形式启动(ghcr.io/github/github-mcp-server),也可以通过 go build 自行从源码构建。
功能被划分为可单独启用/禁用的工具集:repos(仓库操作)、issues、pull_requests、actions(CI/CD)、code_security(代码及密钥扫描),此外还有 dependabot、discussions、gists、projects、orgs、users、notifications 和 labels。未特别指定时默认启用 context、repos、issues、pull_requests 和 users。可通过 --toolsets 标志或环境变量 GITHUB_TOOLSETS 控制启用范围;单个工具可通过 GITHUB_TOOLS 开启。--read-only 标志会禁用所有写操作工具——适合只需分析、不应做任何修改的场景。
这样一来,智能体就能分流处理 issue、创建和审查 pull request、检查 CI 运行结果,并跨仓库搜索代码——由 GitHub 官方提供厂商支持,而非社区自行拼凑的方案。
🔧 SETUP
- 最简单的方式(远程):在 MCP 客户端中将托管服务器配置为 HTTP 服务器:`{"servers": {"github": {"type": "http", "url": "https://api.githubcopilot.com/mcp/"}}}`——随后在浏览器中通过 OAuth 登录
- 也可用个人访问令牌代替 OAuth:额外配置请求头 `"Authorization": "Bearer <PAT>"`
- 本地运行而非远程:`docker run -i --rm -e GITHUB_PERSONAL_ACCESS_TOKEN=<your-token> ghcr.io/github/github-mcp-server`
- 按需限制工具集,例如 `--toolsets repos,issues,pull_requests,actions`,或通过环境变量 `GITHUB_TOOLSETS="repos,issues,pull_requests"`
- 对于纯分析任务,设置 `--read-only` 标志——写操作工具将被跳过
✅ 什么时候用?
直接在智能体中处理 PR 和 issue
「总结所有带 'bug' 标签的未关闭 issue,按优先级排序,并为最紧急的那个创建分支和草稿 PR」——全部通过官方 GitHub 工具完成,无需切换浏览器。
诊断 CI/CD 错误
通过 `actions` 工具集获取最近一次推送失败的工作流运行记录,分析日志,并直接让智能体提出修复方案。
⛔ 什么时候不该用?
工作目录中的本地 Git 操作
该服务器调用的是 GitHub API——本地尚未推送的提交、分支和差异对它是不可见的。
更好的选择: 本地 Git 操作应通过智能体的常规 Git CLI 完成;GitHub MCP Server 只用于平台侧操作(PR、issue、Actions)。
智能体本应只读,却获得了完整写权限
使用默认工具集和权限过宽的 PAT 时,智能体可以修改 issue、PR 等内容——超出所需的权限是不必要的风险。
更好的选择: 设置 `--read-only`,尽量精简工具集,并使用权限范围尽可能小的细粒度 PAT。
来源
- GitHub: github/github-mcp-server ↗ github.com
- Remote-Server-Doku (GitHub MCP) ↗ github.com
- Installations-Guides für alle MCP-Clients ↗ github.com
- GitHub Docs: Using the GitHub MCP Server ↗ docs.github.com