返回 MCP 目录
public公开dns本地运行

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

运行方式说明

cloud

托管运行

托管运行通常表示这个 MCP Server 由服务方环境承载,用户一般按页面提供的连接方式或授权流程接入,不需要在本地长期启动一个 MCP 进程

  1. 打开服务方连接页
  2. 完成授权或复制端点
  3. 在 MCP 客户端中连接
terminal

本地运行 / 其它方式

本地运行通常需要用户在自己的电脑或服务器上安装依赖,把 server_config 复制到 MCP 客户端,并按 env_schema 补齐环境变量、密钥或其它配置

  1. 复制 server_config
  2. 安装所需依赖
  3. 补齐环境变量后重启客户端