项目简介
GitHub MCP Server 是一个实现了 Model Context Protocol (MCP) 的服务器,旨在为大型语言模型 (LLM) 提供一个标准化的接口,使其能够安全、可扩展地与 GitHub API 进行交互。通过这个服务器,LLM 客户端可以调用预定义的工具来管理 GitHub 仓库、分支、Issue、Pull Request、文件和 Release,从而实现 DevOps 流程的自动化和 LLM 驱动的 GitHub 工作流。
主要功能点
- 全面的 GitHub API 集成: 提供对 GitHub REST API 的安全访问,无需 LLM 客户端直接处理 API 细节。
- 资源管理: 支持仓库、分支、Issue、Pull Request、文件和 Release 的创建、读取、更新和删除等操作。
- 工具化操作: 将 GitHub 功能封装成易于 LLM 调用的工具,例如 'create_repository', 'list_issues', 'merge_pull_request' 等。
- 输入验证和错误处理: 使用 Zod 进行严格的输入验证,并提供标准化的错误处理机制,确保操作的可靠性。
- 速率限制处理: 内置 GitHub API 速率限制处理机制,避免因频繁调用 API 触发限制。
- 模块化架构: 采用原子 Feature 架构,代码结构清晰,易于维护和扩展。
安装步骤
-
前提条件: 确保已安装 Node.js (v16 或更高版本) 和拥有具有相应 GitHub 权限的个人访问令牌 (Personal Access Token)。
-
克隆仓库:
git clone https://github.com/cyanheads/github-mcp-server.git cd github-mcp-server -
安装依赖:
npm install -
配置环境变量: 在项目根目录下创建 '.env' 文件,并填入你的 GitHub Personal Access Token 和其他配置项 (可选):
GITHUB_TOKEN=your_github_personal_access_token LOG_LEVEL=info SERVER_NAME=github-mcp-server'GITHUB_TOKEN' 是必需的,请替换为你的 GitHub Personal Access Token。 'LOG_LEVEL' 可以设置为 'debug', 'info', 'warn', 'error', 'fatal' 控制日志输出级别,默认为 'info'。 'SERVER_NAME' 是 MCP 服务器的名称,默认为 'github-mcp-server'。
-
构建项目:
npm run build -
启动服务器:
node build/index.js服务器成功启动后,将在控制台输出 "GitHub MCP server running on stdio" 信息。
服务器配置
MCP 客户端需要配置以下 JSON 信息才能连接到 GitHub MCP Server。请将以下配置添加到你的 MCP 客户端设置中,例如 Claude Desktop 或 IDE 插件的 MCP 设置:
{ "mcpServers": { "github": { "command": "node", "args": ["/path/to/github-mcp-server/build/index.js"], "env": { "GITHUB_TOKEN": "your_github_personal_access_token", "LOG_LEVEL": "info", "SERVER_NAME": "github-mcp-server" } } } }
'"github"': 是你在 MCP 客户端中为这个 GitHub MCP Server 定义的服务器名称,可以自定义。 '"command": "node"': 指定启动服务器的命令为 'node'。 '"args": ["/path/to/github-mcp-server/build/index.js"]': 指定服务器启动脚本的路径,请将 '"/path/to/github-mcp-server"' 替换为你的 'github-mcp-server' 项目的实际绝对路径。 '"env"': 环境变量配置。
'"GITHUB_TOKEN": "your_github_personal_access_token"': [必填] GitHub Personal Access Token,请替换为你的实际 Token。 '"LOG_LEVEL": "info"': [可选] 日志级别,可以根据需要调整,与 '.env' 文件中的 'LOG_LEVEL' 作用相同。 '"SERVER_NAME": "github-mcp-server"': [可选] MCP 服务器名称,与 '.env' 文件中的 'SERVER_NAME' 作用相同。
基本使用方法
配置完成后,你的 MCP 客户端 (如 Claude) 即可通过 GitHub MCP Server 提供的工具与 GitHub 进行交互。你可以指示 LLM 使用特定工具来完成 GitHub 操作。
例如,你可以指示 Claude 执行以下操作:
- "创建一个名为 'my-new-repo' 的公开 GitHub 仓库。" (对应 'create_repository' 工具)
- "列出我在 'my-repo' 仓库中所有未解决的 Issue。" (对应 'list_issues' 工具)
- "合并 'my-repo' 仓库的 Pull Request #123。" (对应 'merge_pull_request' 工具)
具体的工具列表和参数可以参考仓库 README.md 文档的 "Tools" 章节。LLM 将根据你的指令,选择合适的工具并调用 GitHub MCP Server 执行相应的 GitHub API 操作。
信息
分类
开发者工具