GitHub MCP Server 使用说明
项目简介
GitHub MCP Server 是一个基于 Model Context Protocol (MCP) 构建的服务器,它将 GitHub API 的各项功能封装成易于 LLM 客户端调用的工具。通过此服务器,LLM 应用可以安全、可扩展地与 GitHub 进行交互,实现代码库管理、文件操作、问题和 PR 管理、以及代码、Issue、用户搜索等功能。
主要功能点
- 文件操作: 创建、更新、获取文件内容,批量推送文件,自动处理分支创建。
- 代码库管理: 创建代码库、Fork 代码库、创建分支、列出提交记录。
- 问题和 PR 管理: 创建、更新、列出 Issue,创建 Pull Request,添加 Issue 评论。
- 搜索功能: 搜索代码库、代码、Issue 和 Pull Request、用户。
- 全面的错误处理: 提供清晰的错误信息,方便问题排查。
- Git 历史维护: 所有操作都维护 Git 历史,避免强制推送。
安装步骤
- 安装 Node.js 和 npm: 确保你的机器上已安装 Node.js 和 npm。你可以从 nodejs.org 下载并安装。
- 安装 GitHub MCP Server: 由于该仓库本身不包含完整的服务器代码,实际使用时需要安装 '@modelcontextprotocol/server-github' npm 包。打开终端并执行以下命令:
npm install @modelcontextprotocol/server-github
服务器配置
为了让 MCP 客户端(例如 Claude Desktop)连接到 GitHub MCP Server,你需要配置客户端的 'claude_desktop_config.json' 文件。在 'mcpServers' 字段下添加 'github' 服务器配置:
{ "mcpServers": { "github": { "command": "npx", // 启动服务器的命令,这里使用 npx 执行 npm 包 "args": [ "-y", // npx 参数,-y 表示自动确认安装包 "@modelcontextprotocol/server-github" // 要执行的 npm 包名称,即 GitHub MCP Server ], "env": { "GITHUB_PERSONAL_ACCESS_TOKEN": "<YOUR_TOKEN>" // 环境变量,用于设置 GitHub Personal Access Token,请替换为你的 Token } } } }
配置参数说明:
- 'server name': 'github',服务器名称,用于在 MCP 客户端中标识和引用。
- 'command': 'npx',用于执行 Node.js 包的命令。
- 'args': 启动服务器的参数,'["-y", "@modelcontextprotocol/server-github"]' 表示使用 npx 执行 '@modelcontextprotocol/server-github' 包。
- 'env': 环境变量配置,'{"GITHUB_PERSONAL_ACCESS_TOKEN": "<YOUR_TOKEN>"}' 用于设置 GitHub Personal Access Token。请务必将 '<YOUR_TOKEN>' 替换为你自己的 GitHub Personal Access Token。
获取 GitHub Personal Access Token:
- 访问 GitHub Personal access tokens。
- 点击 "Generate new token" -> "Generate new token (classic)"。
- 填写 Token 描述,选择 "repo" 权限(或仅 "public_repo" 如果只操作公开仓库)。
- 点击 "Generate token",复制生成的 Token 并替换配置文件中的 '<YOUR_TOKEN>'。
基本使用方法
配置完成后,MCP 客户端(如 Claude Desktop)应该能够自动连接到 GitHub MCP Server。你可以通过客户端提供的界面或指令,调用 GitHub MCP Server 提供的工具,例如:
- 使用 'create_or_update_file' 工具在 GitHub 仓库中创建或更新文件。
- 使用 'search_repositories' 工具搜索 GitHub 仓库。
- 使用 'create_issue' 工具在 GitHub 仓库中创建 Issue。
具体工具的使用方法和参数,请参考仓库 README.md 文件中 "Tools" 部分的详细描述。
信息
分类
开发者工具