项目简介
本项目实现了一个 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 协议进行客户端与服务器之间的通信。
安装步骤
- 克隆仓库
git clone https://github.com/Ryanpatrickwhiting/github-mcp-server.git - 进入项目目录
cd github-mcp-server - 安装依赖
npm install - 构建项目
(该步骤会将 TypeScript 代码编译到 'dist' 目录,生成 'dist/index.js' 文件)npm run build - 设置 GitHub Personal Access Token 环境变量
(请替换 '<your_github_personal_access_token>' 为您个人的 GitHub Personal Access Token。您需要在 GitHub 上生成一个具有 repo 权限的 Personal Access Token。)export GITHUB_PERSONAL_ACCESS_TOKEN=<your_github_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' 是编译后的服务器主程序文件路径。
基本使用方法
-
启动 MCP 服务器 在项目根目录下,执行以下命令启动服务器:
npm run start或者直接运行编译后的 JavaScript 文件:
node dist/index.js启动成功后,服务器将监听 Stdio,等待 MCP 客户端的连接和请求。
-
配置并连接 MCP 客户端 在您的 MCP 客户端中,根据上述 “服务器配置” 部分的说明,配置并添加 'github-mcp-server'。确保客户端能够成功连接到服务器。
-
使用 LLM 客户端调用 GitHub 工具 连接成功后,您可以通过 LLM 客户端,以自然语言指令或结构化请求的方式,调用服务器提供的 GitHub 工具。例如,您可以指示 LLM 客户端创建一个新的 GitHub 仓库,或者在一个指定的仓库中创建一个新的 Issue。具体的工具调用方式和参数,请参考 MCP 客户端的文档和工具的 'inputSchema' 定义。
注意: 请确保您已正确设置 'GITHUB_PERSONAL_ACCESS_TOKEN' 环境变量,否则服务器将无法通过 GitHub API 认证。
信息
分类
开发者工具