GitHub PR Diff MCP 服务器使用说明

项目简介

本项目实现了一个基于 Model Context Protocol (MCP) 的服务器,专注于 GitHub 集成,目前主要提供获取 GitHub Pull Request 的 Diff 内容的功能。该服务器旨在为 LLM 应用提供代码变更上下文信息,例如用于代码审查、代码理解等场景。

主要功能点

  • 获取 Pull Request Diff (get_diff_pr): 通过指定仓库所有者、仓库名和 Pull Request 编号,获取该 PR 的 diff 内容。

安装步骤

  1. 克隆仓库

    git clone https://github.com/highlight-ing/highlight-github-mcp.git
    cd highlight-github-mcp
  2. 安装依赖 确保已安装 Node.js (>=18.0.0) 和 npm。运行以下命令安装项目依赖:

    npm install
  3. 配置 GitHub Personal Access Token 你需要一个 GitHub Personal Access Token 用于 API 鉴权。

    • 公开仓库: 'public_repo' 权限的 Token 即可。
    • 私有仓库: 'repo' 权限的 Token 是必需的。

    将 Token 设置为环境变量 'GITHUB_TOKEN':

    export GITHUB_TOKEN=<your-github-token>

服务器配置

MCP 客户端需要配置以下信息以连接到此 MCP 服务器。以下是 JSON 格式的配置信息示例:

{
  "serverName": "github-server",  // MCP 服务器名称,与代码中定义一致
  "command": "node",             // 启动服务器的命令,这里使用 node
  "args": ["src/index.ts"]       // 启动参数,指向服务器入口文件
}

配置参数说明:

  • 'serverName': 服务器的名称,必须与服务器代码中定义的名字 'github-server' 一致。
  • 'command': 运行服务器的命令,通常为 'node',假设您的环境中 'node' 命令可用。
  • 'args': 传递给 'command' 的参数,这里指定服务器入口文件 'src/index.ts' 的路径。请确保路径相对于 MCP 客户端的当前工作目录是正确的。

基本使用方法

  1. 启动 MCP 服务器 在项目根目录下,运行以下命令启动服务器:

    node src/index.ts

    服务器将通过 stdio 协议与 MCP 客户端通信,启动成功后会输出 'Github MCP server running on stdio'。

  2. 配置 MCP 客户端 在 MCP 客户端中,根据上述 服务器配置 部分的信息配置连接。

  3. 调用 'get_pr_diff' 工具 在 MCP 客户端中,可以使用 'callTool' 请求调用 'get_pr_diff' 工具,并提供以下参数:

    • 'owner': GitHub 仓库的所有者/组织名称 (字符串)
    • 'repo': GitHub 仓库名称 (字符串)
    • 'pullNumber': Pull Request 编号 (数字)

    例如,要获取 'highlight-ing/highlight-github-mcp' 仓库的第 1 号 PR 的 diff,你需要提供参数:

    {
      "owner": "highlight-ing",
      "repo": "highlight-github-mcp",
      "pullNumber": 1
    }

    服务器将返回包含 diff 内容的响应。

注意事项

  • 请确保 'GITHUB_TOKEN' 环境变量已正确设置,并且具有访问目标仓库的权限。
  • GitHub API 有速率限制,频繁请求可能会触发限制。
  • 大型 Diff 内容可能会受到 GitHub API 的限制而被截断。

信息

分类

开发者工具