项目简介
GitHub MCP 服务器是连接 AI 工具与 GitHub 平台的桥梁。它允许 AI 客户端通过标准化的 MCP 协议,以自然语言的方式访问和操作 GitHub 上的各种资源和功能。无论是浏览代码、管理 issues 和 PR,还是监控 CI/CD 流程和进行代码分析,GitHub MCP 服务器都能为 AI 提供安全、可扩展的上下文服务。
主要功能点
- 仓库管理: 浏览代码、搜索文件、分析提交历史、理解项目结构。
- 问题与拉取请求自动化: 创建、更新和管理 issues 和 pull requests,辅助错误分类和代码审查。
- CI/CD 与工作流智能: 监控 GitHub Actions 工作流运行、分析构建失败、管理版本发布,获取开发流程洞察。
- 代码安全分析: 检查安全漏洞、审查 Dependabot 警报、理解代码模式,获取全面的代码库洞察。
- 团队协作: 访问讨论、管理通知、分析团队活动,简化团队流程。
- 可插拔工具集: 支持按需启用或禁用特定功能组,优化 AI 的工具选择和上下文大小。
- 动态工具发现: 允许 MCP 主机根据用户提示动态列出和启用工具集,避免工具过多导致模型混淆。
- 只读模式: 可配置为只提供读取操作,防止对 GitHub 仓库进行任何修改。
安装步骤
GitHub MCP 服务器支持远程托管或本地运行。建议使用 Docker 部署本地服务器。
- 安装 Docker: 确保您的系统已安装 Docker。
- 创建 GitHub 个人访问令牌 (PAT):
- 访问 GitHub 设置中的 "Developer settings" -> "Personal access tokens" -> "Tokens (classic)"。
- 点击 "Generate new token",选择适当的权限 (scopes)。建议至少勾选 'repo' (仓库操作)、'read:packages' (Docker 镜像访问) 和 'read:org' (组织团队访问) 等。根据需要赋予 AI 工具的权限进行选择。
- 保存生成的 PAT,它将用于服务器认证。
服务器配置
MCP 客户端(如 VS Code Copilot Chat、Claude Desktop、Cursor 等)需要配置 MCP 服务器的启动命令。以下是两种常见的配置示例:
-
远程 GitHub MCP 服务器 (由 GitHub 托管):
{ "servers": { "github": { "type": "http", "url": "https://api.githubcopilot.com/mcp/" } } }- 'type': 'http' 表示通过 HTTP 协议连接远程服务器。
- 'url': 远程服务器的 API 地址。
如果需要使用 GitHub PAT 进行认证:
{ "servers": { "github": { "type": "http", "url": "https://api.githubcopilot.com/mcp/", "headers": { "Authorization": "Bearer ${input:github_mcp_pat}" } } }, "inputs": [ { "type": "promptString", "id": "github_mcp_pat", "description": "GitHub Personal Access Token", "password": true } ] }- 'headers.Authorization': 使用 'Bearer' 认证方式,'${input:github_mcp_pat}' 会提示用户输入 PAT。
-
本地 GitHub MCP 服务器 (使用 Docker):
{ "servers": { "github": { "command": "docker", "args": [ "run", "-i", "--rm", "-e", "GITHUB_PERSONAL_ACCESS_TOKEN", "ghcr.io/github/github-mcp-server", "stdio" // 显式指定stdio模式 ], "env": { "GITHUB_PERSONAL_ACCESS_TOKEN": "${input:github_token}" } } }, "inputs": [ { "type": "promptString", "id": "github_token", "description": "GitHub Personal Access Token", "password": true } ] }- 'command': 'docker',用于启动 Docker 容器。
- 'args': 运行 Docker 容器的参数,包括 '-i' (交互模式), '--rm' (容器退出时自动删除), '-e GITHUB_PERSONAL_ACCESS_TOKEN' (将 PAT 作为环境变量传入), 'ghcr.io/github/github-mcp-server' (服务器镜像名称), 'stdio' (指定服务器运行在标准I/O模式下)。
- 'env.GITHUB_PERSONAL_ACCESS_TOKEN': 使用 '${input:github_token}' 获取用户输入的 PAT。
基本使用方法
配置完成后,AI 客户端即可与 GitHub MCP 服务器通信。通常,在支持 MCP 的 AI 客户端(如 VS Code Copilot Chat)中:
- 启用 Agent 模式: 在 AI 聊天输入框附近找到并切换到 Agent 模式。
- 自然语言交互: 直接在聊天界面中用自然语言描述您希望 AI 在 GitHub 上执行的任务,例如:
- "List all open issues in the 'octocat/Spoon-Knife' repository." (列出 'octocat/Spoon-Knife' 仓库所有未解决的问题。)
- "Create a new pull request from 'my-feature-branch' to 'main' in 'my-org/my-repo' with title 'Implement new feature X'." (在 'my-org/my-repo' 中,从 'my-feature-branch' 到 'main' 创建一个名为 'Implement new feature X' 的新拉取请求。)
- "Get the contents of 'README.md' in 'octocat/Hello-World'." (获取 'octocat/Hello-World' 仓库中 'README.md' 的内容。)
服务器将解析这些请求,调用相应的 GitHub API,并将结果返回给 AI 客户端进行进一步处理或展示。
信息
分类
开发者工具