promptgarten 🌱
🌍 DE

扩展与集成 · MCP

GitHub MCP Server

官方31.389

由 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(仓库操作)、issuespull_requestsactions(CI/CD)、code_security(代码及密钥扫描),此外还有 dependabotdiscussionsgistsprojectsorgsusersnotificationslabels。未特别指定时默认启用 contextreposissuespull_requestsusers。可通过 --toolsets 标志或环境变量 GITHUB_TOOLSETS 控制启用范围;单个工具可通过 GITHUB_TOOLS 开启。--read-only 标志会禁用所有写操作工具——适合只需分析、不应做任何修改的场景。

这样一来,智能体就能分流处理 issue、创建和审查 pull request、检查 CI 运行结果,并跨仓库搜索代码——由 GitHub 官方提供厂商支持,而非社区自行拼凑的方案。

🔧 SETUP

  1. 最简单的方式(远程):在 MCP 客户端中将托管服务器配置为 HTTP 服务器:`{"servers": {"github": {"type": "http", "url": "https://api.githubcopilot.com/mcp/"}}}`——随后在浏览器中通过 OAuth 登录
  2. 也可用个人访问令牌代替 OAuth:额外配置请求头 `"Authorization": "Bearer <PAT>"`
  3. 本地运行而非远程:`docker run -i --rm -e GITHUB_PERSONAL_ACCESS_TOKEN=<your-token> ghcr.io/github/github-mcp-server`
  4. 按需限制工具集,例如 `--toolsets repos,issues,pull_requests,actions`,或通过环境变量 `GITHUB_TOOLSETS="repos,issues,pull_requests"`
  5. 对于纯分析任务,设置 `--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。

来源