GitHub差异提取器
从GitHub拉取请求中提取差异,允许用户检索和分析仓库中分支之间的更改。
服务介绍
GitHub 集成
GitHub MCP 服务器提供了从 Pull Request 中提取差异的功能。
可用工具
get_diff_pr
从 GitHub Pull Request 中检索差异内容。
参数:
owner:仓库所有者/组织名称repo:仓库名称pr_number:Pull Request 编号
返回:包含以下内容的对象:
content:包含 PR 差异的字符串
认证
必需:将 GitHub 个人访问令牌设置为环境变量:
export GITHUB_TOKEN=<your-github-token>
对于私有仓库,令牌至少需要具有 repo 范围的权限。对于公共仓库,具有 public_repo 范围的令牌就足够了。
错误处理
服务器实现了标准的错误处理:
- 缺失/无效的令牌返回
ErrorCode.AuthenticationError - 无效的仓库详情返回
ErrorCode.InvalidParams - 不存在的 PR 返回
ErrorCode.NotFound - 获取差异失败时返回格式化的错误消息
- 在接收到 SIGINT 信号时优雅关闭
技术细节
- 使用 Highlight AI MCP SDK 构建
- 使用 GitHub REST API v3
- 通过 Zod 进行输入验证
- 作为基于 stdio 的 MCP 服务器运行
- 支持 Node.js >=18.0.0
限制
- 根据 GitHub API 限制适用速率限制
- 大型差异可能根据 GitHub API 限制被截断
- 令牌需要适当的仓库访问权限