GitHub MCP Server Plus 使用说明
项目简介
GitHub MCP Server Plus 是一个基于 Model Context Protocol (MCP) 构建的服务器,旨在为大型语言模型(LLM)客户端提供访问 GitHub API 的能力。通过此服务器,LLM 可以安全、可控地与 GitHub 进行交互,执行如文件读写、仓库管理、代码搜索、Issue 和 Pull Request 管理等操作。
主要功能点
- 文件操作: 创建、更新、读取 GitHub 仓库中的文件。支持单个或批量文件操作,可直接提供文件内容或从本地文件路径上传。
- 仓库管理: 创建仓库、Fork 仓库、创建分支等仓库管理功能。
- 代码搜索: 支持代码、Issue、Pull Request 和用户的搜索功能,使用 GitHub 强大的搜索语法。
- Issue 和 Pull Request 管理: 创建、列出、更新 Issue 和 Pull Request,添加评论,进行代码 Review,合并 Pull Request 等协作功能。
- 全面的错误处理: 提供清晰的 GitHub API 错误信息,方便调试和问题排查。
- Git 历史维护: 所有操作都维护正确的 Git 历史,避免强制推送等不规范操作。
安装步骤
-
前提条件:
- Node.js 和 npm: 如果选择使用 NPX 方式运行,需要安装 Node.js 和 npm。
- Docker: 如果选择使用 Docker 方式运行,需要安装 Docker。
- GitHub Personal Access Token (PAT): 需要创建一个具有 'repo' 权限(或 'public_repo' 权限,如果仅操作公共仓库)的 GitHub PAT,用于服务器鉴权。请参考 GitHub 官方文档 创建 PAT。
-
选择运行方式: 可以选择使用 NPX 或 Docker 运行 GitHub MCP Server Plus。
-
NPX 方式 (推荐): 无需额外构建,直接使用 npm 运行。
npx -y @modelcontextprotocol/server-github -
Docker 方式: 需要先构建 Docker 镜像,再运行容器。
# 构建 Docker 镜像 (在包含 Dockerfile 的项目根目录下执行) docker build -t mcp/github -f src/github/Dockerfile . # 运行 Docker 容器 docker run -i --rm -e GITHUB_PERSONAL_ACCESS_TOKEN=<YOUR_TOKEN> mcp/github将 '<YOUR_TOKEN>' 替换为你创建的 GitHub PAT。
-
服务器配置
为了让 MCP 客户端(例如 Claude Desktop)连接到 GitHub MCP Server Plus,需要在客户端的配置文件中添加服务器配置信息。以下是针对 'claude_desktop_config.json' 的配置示例:
{ "mcpServers": { "github": { // 服务器名称,可以自定义,例如 "github" "command": "npx", // 运行服务器的命令,NPX 方式为 "npx",Docker 方式为 "docker" "args": [ // 命令参数 "-y", "@modelcontextprotocol/server-github" // NPX 方式的参数,Docker 方式为 ["run", "-i", "--rm", "-e", "GITHUB_PERSONAL_ACCESS_TOKEN", "mcp/github"] ], "env": { // 环境变量 "GITHUB_PERSONAL_ACCESS_TOKEN": "<YOUR_TOKEN>" // GitHub PAT 环境变量,将 "<YOUR_TOKEN>" 替换为你创建的 PAT } } } }
注意:
- 请根据你选择的运行方式(NPX 或 Docker)选择相应的 'command' 和 'args' 配置。
- 务必将 '<YOUR_TOKEN>' 替换为你实际的 GitHub Personal Access Token。
基本使用方法
GitHub MCP Server Plus 作为一个 MCP 服务器,需要通过 MCP 客户端进行调用。LLM 客户端会根据配置连接到该服务器,并可以通过工具调用来执行 GitHub 相关操作。
例如,在 LLM 客户端中,你可以指示它使用以下工具:
- 'create_or_update_file': 在 GitHub 仓库中创建或更新文件。你需要提供仓库所有者 ('owner')、仓库名 ('repo')、文件路径 ('path')、文件内容 ('content')、提交信息 ('message') 和分支名 ('branch') 等参数。
- 'search_repositories': 搜索 GitHub 仓库。你需要提供搜索关键词 ('query')。
- 'create_issue': 在 GitHub 仓库中创建 Issue。你需要提供仓库所有者 ('owner')、仓库名 ('repo')、Issue 标题 ('title') 和内容 ('body') 等参数。
详细的工具列表和输入参数,请参考仓库的 README.md 文件中的 "Tools" 部分。 LLM 客户端会根据工具的 'inputSchema' 自动生成用户界面或调用参数,并向 GitHub MCP Server Plus 发送 MCP 请求,服务器会调用 GitHub API 完成操作,并将结果返回给客户端。
信息
分类
开发者工具