GitHub MCP Server

GitHub MCP Server

GitHub 官方 MCP 服务器,支持远程托管与本地 Docker 运行

核心功能

github/github-mcp-server 是 GitHub 官方用 Go 编写的 MCP 服务器,把仓库、Issue、PR、Actions、代码扫描等能力封装成工具并按 toolsets 分组。既可直连 GitHub 托管的远程端点,也可用官方容器镜像本地运行,并提供只读模式。

功能亮点

工具集裁剪

用 GITHUB_TOOLSETS 只开启 repos、issues 等分组

双部署形态

既可连 GitHub 托管端点,也可用 ghcr.io 镜像离线自托管

只读与锁定

设置 GITHUB_READ_ONLY=1 可禁止写操作,降低误改仓库风险

远程 OAuth

VS Code 等客户端可 OAuth 登录,无需手工创建 PAT

适用场景

• 让助手读取仓库文件并提交 PR
• 批量检索与整理 Issue
• 查看 Actions 失败日志定位 CI 问题
• 拉取代码扫描与 Dependabot 告警
• 在 PR 评审中自动生成评论

安装配置

bash
# 方式一:GitHub 托管的远程端点(VS Code,OAuth)
{
  "servers": {
    "github": {
      "type": "http",
      "url": "https://api.githubcopilot.com/mcp/"
    }
  }
}

# 方式二:本地 Docker + PAT
docker run -i --rm -e GITHUB_PERSONAL_ACCESS_TOKEN=<your-token> ghcr.io/github/github-mcp-server

# 使用 mcpServers 键的客户端(args 与官方 README 一致)
{
  "mcpServers": {
    "github": {
      "command": "docker",
      "args": ["run", "-i", "--rm", "-e", "GITHUB_PERSONAL_ACCESS_TOKEN", "ghcr.io/github/github-mcp-server"],
      "env": {
        "GITHUB_PERSONAL_ACCESS_TOKEN": "<your-token>"
      }
    }
  }
}

# 只开部分工具集 / 只读
docker run -i --rm -e GITHUB_PERSONAL_ACCESS_TOKEN=<your-token> -e GITHUB_TOOLSETS="repos,issues,pull_requests,actions,code_security" ghcr.io/github/github-mcp-server
docker run -i --rm -e GITHUB_PERSONAL_ACCESS_TOKEN=<your-token> -e GITHUB_READ_ONLY=1 ghcr.io/github/github-mcp-server

# GitHub Enterprise Server / ghe.com:额外传入 -e GITHUB_HOST=https://<你的域名>

使用方法

bash
# 真实工具名(按 toolsets 分组)
repos:get_file_contents、create_or_update_file、push_files、create_branch、list_commits、search_code
issues:issue_read、issue_write、list_issues、search_issues、add_issue_comment
pull_requests:create_pull_request、pull_request_read、pull_request_review_write、merge_pull_request、update_pull_request
actions:actions_list、actions_run_trigger、get_job_logs
code_security:list_code_scanning_alerts、get_code_scanning_alert
context:get_me、get_teams、get_team_members

# 默认工具集:context、repos、issues、pull_requests、users;GITHUB_TOOLSETS=all 可全开

# 示例(自然语言驱动)
"用 pull_request_read 读取 owner/repo 的 PR #128 及其 diff,再用 add_comment_to_pending_review 逐条写评审意见,最后 pull_request_review_write 提交"

# 命令行检索有哪些工具
docker run -it --rm ghcr.io/github/github-mcp-server tool-search "issue" --max-results 5

关键指标

尚未核验对标产品,此处只列本工具自身指标,不做对比结论。

指标GitHub MCP Server
价格免费
开源
上手难度进阶

相关工具

优点

  • GitHub 官方维护,工具跟随自家 API 变化更新,非社区二次封装
  • GITHUB_TOOLSETS 与 GITHUB_TOOLS 可精确控制暴露的工具数量,避免上下文被上百个工具占满
  • 支持 GITHUB_READ_ONLY 与 GITHUB_LOCKDOWN_MODE,可以只读方式接入生产仓库
  • 远程端点无需本地安装,支持 OAuth 授权,省去手工管理 PAT
  • 可通过 GITHUB_HOST 连接 GitHub Enterprise Server 或 ghe.com 实例

缺点

  • 本地运行需自备 Docker,或用 Go 自行构建二进制,纯 npx 用户不适用
  • PAT 权限粒度粗,classic token 勾选 repo scope 后会覆盖账号下全部私有仓库
  • 工具总数上百,GITHUB_TOOLSETS=all 会显著挤占上下文,需要手动裁剪
  • copilot_spaces、github_support_docs_search 等工具集只在远程端点提供,本地 Docker 版没有
  • 开放写工具后存在被提示注入误改仓库的风险,官方建议配合只读或 lockdown 模式使用