概述
GitHub MCP 允许 OpenClaw:
- 读取仓库内容和文件树
- 搜索 Issue 和 Pull Request
- 创建 Issue 和 PR(需写入权限)
- 列出提交和分支
先决条件
- 已安装并运行 OpenClaw
- GitHub 账号
- 具有正确权限范围的个人访问令牌 (PAT)
- Docker(用于 CLI 方法)或互联网连接(用于 SSE 方法)
第 1 步 — 创建个人访问令牌 (PAT)
- 前往 GitHub Settings → Developer settings → Personal access tokens
- 点击 "Generate new token (classic)"
- 选择权限范围:
repo— 完整的仓库访问权限read:org— 读取组织成员信息(如果使用组织仓库)
- 立即复制令牌(之后将无法查看)
第 2 步 — 选择配置方法
选项 A:CLI 服务器 (Docker)
最适合本地开发。在容器中运行,OpenClaw 退出时自动停止。
GitHub CLI 配置 json
{
"GitHub": {
"command": "docker",
"args": ["run", "-i", "--rm", "-e", "GITHUB_PERSONAL_ACCESS_TOKEN", "ghcr.io/github/github-mcp-server"],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "${GITHUB_TOKEN}"
}
}
} 重要: 将
GITHUB_TOKEN 存储为环境变量,不要以明文形式存储。
选项 B:SSE 服务器 (URL)
设置更简单,使用 GitHub Copilot 托管的 MCP 端点。
GitHub SSE 配置 json
{
"GitHub": {
"url": "https://api.githubcopilot.com/mcp/"
}
} 此方法需要订阅 GitHub Copilot 才能获得完整功能。
第 3 步 — 验证
- 运行
openclaw status— GitHub MCP 应显示为 "running" - 测试:“列出我最近的仓库”
- 测试:“在 owner/repo 中搜索标签为 bug 的 issue”
常见错误
| 错误 | 原因 | 修复方法 |
|---|---|---|
401 Unauthorized | PAT 无效或过期 | 重新生成令牌,检查有效期 |
403 Forbidden | 缺少权限范围 | 添加 repo 和 read:org 权限 |
Docker not found | Docker 未安装或未运行 | 安装 Docker Desktop,启动守护进程 |
Rate limit exceeded | API 调用过多 | 等待 1 小时或使用经过身份验证的请求 |
安全提示
- 尽可能使用细粒度 PAT(限制访问特定仓库)
- 切勿将令牌提交到版本控制系统
- 定期轮换令牌(建议每 90 天)
- 对于组织仓库,考虑使用专用的 Bot 账号
示例提示词
- “显示 owner/repo 的 README”
- “列出 owner/repo 中标签为 'enhancement' 的未结 issue”
- “在 owner/repo 中创建一个标题为 '修复登录错误' 的 issue”
- “显示 owner/repo 主分支上的最近提交”