用途
github-mcp 是一个基于 GitHub REST API 构建的公开读写参考 MCP 服务器,用于演示在真实外部 SaaS API 上实现加固型读写 MCP 服务器的模式,包括环境变量门控的工具组、类型化错误与速率限制处理、可优雅降级的认证机制以及真实的测试套件。项目明确说明它不是 GitHub 官方 MCP 服务器,也不追求与官方 MCP 产品对等。
主要能力
- 提供读写两套工具组,工具组仅控制默认开启或关闭状态,不决定工具是否存在。
- 读工具组始终开启,无需认证即可使用,运行在 GitHub 未认证的 60 次/小时额度下。
- 写工具组(issue/PR 变更)默认关闭,需设置 GITHUB_MCP_ENABLE_WRITE=1 并提供 GITHUB_TOKEN 才能启用;组门控与令牌前置条件独立检查,且都在任何网络调用之前完成。
- 对速率限制和错误进行类型化处理;调用被禁用的写工具会返回结构化的 policy_refusal 错误,启用写组但缺少令牌会返回结构化的 auth_required 错误,不会静默无操作或崩溃。
- 提供诚实的 capabilities 表,每项能力声明都对应实现文件与验证测试。
使用方式
- 在 Python 3.12+ 环境执行 pip install -r requirements.txt。
- (可选)生成细粒度 PAT,范围涵盖需要读写权限的仓库(Issues 读写、Pull requests 读写、Contents 读即可满足 v1)。读工具无需任何令牌。
- 添加到 MCP 主机配置(例如 ~/.claude.json)。
- 如需为某次部署启用写工具,在该条目的 env 块中添加 "GITHUB_MCP_ENABLE_WRITE": "1",这是注册时的运维决策,不是代码变更。
项目以 stdio 方式在 ~/.claude.json 中注册为 github-mcp,使用系统 Python312,读组始终开启,写组在 env 中缺省即关闭。
适用场景
适合希望以具体可点击的链接展示“我会构建面向外部 API 的读写 MCP 服务器”的参考作品集场景,也适合需要在真实 GitHub API 上演示加固型读写 MCP 服务器模式的开发者。
限制
- 仅覆盖 REST v1,不支持 GraphQL API。
- 不支持 webhooks 或 GitHub App 认证,仅支持细粒度 PAT。
- 不提供 Actions/workflow-dispatch 工具,issue/PR CRUD 是 v1 的写操作范围。
- 未认证读取受 GitHub 自身限制为 60 次/小时(搜索为 10 次/分钟),持续未认证使用会出现 rate_limited 错误;设置 GITHUB_TOKEN(即使只读细粒度 PAT)可显著提升额度。
- get_file_content 超过 100KB 会截断,对非 UTF-8 文件会报告而非解码。
- 列表端点不支持超过单页的分页,limit(按端点设上限)是 v1 唯一的页大小控制。
- 未注册到 mcp-factory hub,以独立仓库形式分发(自带 pyproject,系统 Python312 安装)。
- 商业支持由 Jaimen Bell 维护。
缺失信息:未提供具体收费价格、支持平台列表或性能效果数据。