项目简介

本项目实现了一个 MCP (Model Context Protocol) 服务器,旨在通过标准化的 MCP 协议,为 LLM (大型语言模型) 客户端提供访问和操作 GitHub API 的能力。该服务器定义了一系列工具,允许 LLM 客户端无需理解复杂的 GitHub API 细节,即可通过简单的指令完成如创建代码仓库、提交 Issue、发起 Pull Request 等操作,从而实现基于 LLM 的 GitHub 工作流程自动化。

主要功能点

  • GitHub API 工具化: 将常用的 GitHub API 功能封装成易于 LLM 调用的 MCP 工具。
  • 支持多种 GitHub 操作: 目前已支持创建仓库、创建 Issue、创建或更新文件、获取文件内容、创建 Pull Request、Fork 仓库等操作。
  • 基于 MCP 协议: 遵循 MCP 协议标准,易于与任何兼容 MCP 协议的 LLM 客户端集成。
  • 使用 Stdio 传输: 采用 Stdio (标准输入输出) 作为默认的传输协议,部署简单方便。
  • JSON-RPC 通信: 使用 JSON-RPC 协议进行客户端与服务器之间的通信。

安装步骤

  1. 克隆仓库
    git clone https://github.com/Ryanpatrickwhiting/github-mcp-server.git
  2. 进入项目目录
    cd github-mcp-server
  3. 安装依赖
    npm install
  4. 构建项目
    npm run build
    (该步骤会将 TypeScript 代码编译到 'dist' 目录,生成 'dist/index.js' 文件)
  5. 设置 GitHub Personal Access Token 环境变量
    export GITHUB_PERSONAL_ACCESS_TOKEN=<your_github_personal_access_token>
    (请替换 '<your_github_personal_access_token>' 为您个人的 GitHub Personal Access Token。您需要在 GitHub 上生成一个具有 repo 权限的 Personal Access Token。)

服务器配置 (MCP 客户端配置)

为了让 MCP 客户端能够连接到此服务器,您需要在客户端中配置服务器的启动信息。以下是一个典型的 JSON 格式配置示例,您需要将其填入 MCP 客户端的服务器配置中:

{
  "serverName": "github-mcp-server",  // 服务器名称,可以自定义
  "command": "node",                 // 启动服务器的命令,这里使用 Node.js 运行时
  "args": ["dist/index.js"]         // 命令参数,指向编译后的服务器入口文件。请确保 'dist/index.js' 文件存在。
}
  • 'serverName': MCP 服务器的名称,您可以自定义设置,用于在客户端中标识该服务器。
  • 'command': 运行服务器程序的可执行命令。由于本项目是 Node.js 应用,因此这里设置为 'node'。
  • 'args': 传递给 'command' 的参数列表,用于指定服务器程序的入口文件。'dist/index.js' 是编译后的服务器主程序文件路径。

基本使用方法

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

    npm run start

    或者直接运行编译后的 JavaScript 文件:

    node dist/index.js

    启动成功后,服务器将监听 Stdio,等待 MCP 客户端的连接和请求。

  2. 配置并连接 MCP 客户端 在您的 MCP 客户端中,根据上述 “服务器配置” 部分的说明,配置并添加 'github-mcp-server'。确保客户端能够成功连接到服务器。

  3. 使用 LLM 客户端调用 GitHub 工具 连接成功后,您可以通过 LLM 客户端,以自然语言指令或结构化请求的方式,调用服务器提供的 GitHub 工具。例如,您可以指示 LLM 客户端创建一个新的 GitHub 仓库,或者在一个指定的仓库中创建一个新的 Issue。具体的工具调用方式和参数,请参考 MCP 客户端的文档和工具的 'inputSchema' 定义。

注意: 请确保您已正确设置 'GITHUB_PERSONAL_ACCESS_TOKEN' 环境变量,否则服务器将无法通过 GitHub API 认证。

信息

分类

开发者工具