Back to MCP directory
publicPublicdnsLocal runtime

highlight-github-mcp

GitHub MCP服务器提供从Pull Request提取差异的功能

article

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 限制被截断
  • 令牌需要适当的仓库访问权限
help

Runtime guide

cloud

Hosted runtime

Hosted servers run from a provider-managed environment. You usually connect the MCP client to the hosted endpoint or follow the provider's authorization flow, without keeping a local process alive

  1. Open provider connection page
  2. Authorize or copy endpoint
  3. Connect from your MCP client
terminal

Local runtime / other methods

Local servers run on your own machine or infrastructure. You normally copy the server_config into your MCP client, install the required package, and provide env variables from env_schema when needed

  1. Copy server_config
  2. Install required package
  3. Fill env variables and restart client