README
🚀 GitHub 集成
GitHub MCP 服务器具备从拉取请求中提取 diff 的强大功能,能有效助力开发者处理代码差异。
🚀 快速开始
认证
⚠️ 重要提示
使用该服务前,需要将 GitHub 个人访问令牌设置为环境变量。
export GITHUB_TOKEN=<your-github-token>
令牌至少需要 repo 权限才能访问私有仓库。对于公共仓库,带有 public_repo 权限的令牌即足够。
✨ 主要特性
GitHub MCP 服务器可从拉取请求中提取 diff,并且提供了实用的工具来检索 diff 内容。
💻 使用示例
基础用法
下面展示如何使用 get_diff_pr 从 GitHub 拉取请求中检索 diff 内容:
# 假设存在一个函数调用示例
# 这里只是示意,实际代码可能需要根据具体 SDK 实现
from some_sdk import get_diff_pr
owner = "your_owner"
repo = "your_repo"
pr_number = 123
result = get_diff_pr(owner, repo, pr_number)
print(result.content)
📚 详细文档
可用工具
get_diff_pr
从 GitHub 拉取请求中检索 diff 内容。
| 属性 | 详情 |
|------|------|
| 参数 | - owner:仓库所有者/组织名称
- repo:仓库名称
- pr_number:拉取请求编号 |
| 返回值 | 包含以下内容的对象:
- content:字符串,包含 PR 的 diff |
错误处理
服务器实现了标准错误处理:
- 未设置/无效令牌返回
ErrorCode.AuthenticationError - 无效的仓库详细信息返回
ErrorCode.InvalidParams - 不存在的 PR 返回
ErrorCode.NotFound - 获取 diff 失败返回格式化错误消息
- 收到 SIGINT 信号时优雅关闭
🔧 技术细节
- 使用 Highlight AI MCP SDK 构建
- 使用 GitHub REST API v3
- 通过 Zod 进行输入验证
- 作为 stdio 基于的 MCP 服务器运行
- 支持 Node.js >=18.0.0
📄 许可证
文档中未提及许可证相关信息。
🚫 局限性
- 受到 GitHub API 速率限制的影响
- 大型 diff 可能会根据 GitHub API 限制被截断
- 令牌需要适当的仓库访问权限
Scan to contact