4.1 GitHub:官方服务器能做什么

它是什么

github/github-mcp-server,约 33831 star,Go 语言。GitHub 官方维护。

在 2026 年 3 月搜索量榜单排第 3(约 69k/月),仅次于 Playwright 和 Figma。这说明对工程团队而言,“让 agent 直接操作 GitHub”是高频刚需。

一个重要的版本提醒

旧的 @modelcontextprotocol/server-github 已移至 servers-archived 仓库,不再维护。2026 年还在按老教程装那个 npm 包,等于用一个废弃实现。

正确做法是用 GitHub 官方这个 Go 版本。第一方的 PostgreSQL / Slack / SQLite 等服务器也早已整体迁到归档仓库,新手最容易踩这个过时坑。

它能做什么

按官方描述,它覆盖:

领域 能力
仓库 读仓库与代码
Issue 创建、查询、更新
PR 创建、评审、合并
代码安全 代码安全分析
工作流 GitHub Actions 自动化

也就是说,从“读代码”到“提 PR”到“看 CI”整条链路都能走。对工程团队,这等于把日常 GitHub 操作变成 agent 可调用的工具。

安装与配置

Go 实现,两种装法。

方式一:Docker(推荐,隔离好):

- insert:
    - id: github
      name: '@deepseek-ai/dsh-mcp-client'
      config:
        serverName: github
        transport: stdio
        command: docker
        args:
          - "run"
          - "-i"
          - "--rm"
          - "-e"
          - "GITHUB_PERSONAL_ACCESS_TOKEN"
          - "ghcr.io/github/github-mcp-server"
        env:
          GITHUB_PERSONAL_ACCESS_TOKEN: !!js process.env.GITHUB_PERSONAL_ACCESS_TOKEN
        cwd: !!js process.cwd()

方式二:go install:

go install github.com/github/github-mcp-server/cmd/github-mcp-server@latest
        command: github-mcp-server
        env:
          GITHUB_PERSONAL_ACCESS_TOKEN: !!js process.env.GITHUB_PERSONAL_ACCESS_TOKEN

注意令牌的写法:从环境读,写进 config.env,不写明文。 别把 PAT 直接写进 YAML——配置文件一旦被提交或同步,密钥就泄露了。

令牌权限的最小化原则

GitHub 令牌权限范围直接决定 agent 能干什么。按用途给:

用途 建议权限
只读代码与 issue 仅 public repo 读权限
创建 issue / PR 加对应仓库写权限
触发工作流 加 workflow 权限
任何情况 不给 admin、不给 delete_repo

最后一条是红线。agent 不需要删仓库的权限,给了就是纯风险。宁可在需要时临时升级令牌,也不要常驻一个高权限令牌。

典型用法

代码考古:

用 github 服务器搜索本仓库里所有调用 deprecatedApi 的位置,
按文件列出,标注每个文件的最近修改时间。

Issue 分诊:

用 github 服务器列出最近 20 个未分类 issue,
按是否含复现步骤、是否含版本号分两组,
给每组写一句处理建议。只读,不要修改任何 issue。

PR 准备:

用 github 服务器对比 main 与当前分支的差异,
生成本次 PR 的标题与描述草稿,先给我看不要提交。

CI 巡检:

用 github 服务器列出最近三次 workflow 运行,
标注失败的那次、失败 job 与关键日志行。

与 dsh 自带 GitHub 能力的分工

DeepSeek Harness 有 GitHub 评审会话能力(见《完全使用指南》GitHub 评审会话)。分工:

场景 推荐
评审 PR、走 dsh 的评审流程 dsh 自带
需要细粒度调用 GitHub API GitHub MCP
跨工具复用 GitHub MCP

一句话:dsh 自带擅长“按它的流程评审”,GitHub MCP 擅长“按你的需要任意调 API”。

排错

现象 原因
401 / 403 令牌失效或权限不足
看不到私有仓库 令牌没给对应 repo 权限
工具能列但调用失败 网络无法达 GitHub,或组织启用了 SSO 限制

小结

  • GitHub 官方 MCP(Go,约 33.8k star)取代了已归档的 npm 老包。
  • 覆盖仓库、issue、PR、代码安全、工作流。
  • 令牌权限最小化,绝不给 admin / delete_repo。
  • 与 dsh 自带 GitHub 评审能力互补,按场景选。

延伸阅读