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 评审能力互补,按场景选。
延伸阅读
- 本章其余小节:4.2 Serena、4.3 DBHub
- 相关书籍:DeepSeek Harness 完全使用指南
- 姊妹篇:《DeepSeek Harness 必装的 skill 推荐》
