GitHub MCP Server Plus
2025.02.10
2
TypeScriptGitHub API仓库管理文件操作搜索功能开发效率
GitHub MCP Server Plus 是一个针对GitHub API的MCP服务器,提供文件操作、仓库管理、搜索功能等。它支持自动分支创建、错误处理、Git历史保留、批量操作和高级搜索等功能,适用于开发团队和自动化工作流。
View on GitHub
Overview
基本能力
产品定位
GitHub MCP Server Plus 是一个针对GitHub API的MCP服务器,旨在简化GitHub仓库的管理和操作,支持文件操作、仓库管理、搜索功能等。
核心功能
- 自动分支创建:在创建/更新文件或推送更改时,自动创建不存在的分支。
- 全面的错误处理:提供清晰的错误消息。
- Git历史保留:操作保持适当的Git历史,无需强制推送。
- 批量操作:支持单文件和多文件操作。
- 高级搜索:支持代码、问题/PR和用户的搜索。
适用场景
- 开发团队的自动化工作流。
- 批量文件操作和仓库管理。
- 代码和问题的搜索与分析。
工具列表
create_or_update_file:创建或更新单个文件。push_files_content:推送多个文件内容。push_files_from_path:从文件系统路径推送多个文件。search_repositories:搜索GitHub仓库。create_repository:创建新仓库。get_file_contents:获取文件或目录内容。create_issue:创建新问题。create_pull_request:创建新拉取请求。fork_repository:分叉仓库。create_branch:创建新分支。list_issues:列出和过滤问题。update_issue:更新问题。add_issue_comment:添加问题评论。search_code:搜索代码。search_issues:搜索问题和拉取请求。search_users:搜索用户。list_commits:获取分支提交。get_issue:获取问题内容。get_pull_request:获取拉取请求详情。list_pull_requests:列出和过滤拉取请求。create_pull_request_review:创建拉取请求审查。merge_pull_request:合并拉取请求。get_pull_request_files:获取拉取请求更改的文件。get_pull_request_status:获取拉取请求状态。update_pull_request_branch:更新拉取请求分支。get_pull_request_comments:获取拉取请求评论。get_pull_request_reviews:获取拉取请求审查。
常见问题解答
- 如何创建GitHub个人访问令牌:访问Personal access tokens创建令牌,选择适当的权限(如
repo或public_repo)。 - 如何使用Docker运行:配置
claude_desktop_config.json文件,使用Docker命令运行。 - 如何使用NPX运行:配置
claude_desktop_config.json文件,使用NPX命令运行。
使用教程
使用依赖
- 创建GitHub个人访问令牌:
- 访问Personal access tokens。
- 选择适当的权限(如
repo或public_repo)。 - 复制生成的令牌。
安装教程
- Docker安装:
bash docker build -t mcp/github -f src/github/Dockerfile . - NPX安装:
bash npx -y @modelcontextprotocol/server-github
调试方式
- 配置
claude_desktop_config.json: - 添加以下配置以使用Docker:
json { "mcpServers": { "github": { "command": "docker", "args": [ "run", "-i", "--rm", "-e", "GITHUB_PERSONAL_ACCESS_TOKEN", "mcp/github" ], "env": { "GITHUB_PERSONAL_ACCESS_TOKEN": "<YOUR_TOKEN>" } } } } - 或使用NPX:
json { "mcpServers": { "github": { "command": "npx", "args": [ "-y", "@modelcontextprotocol/server-github" ], "env": { "GITHUB_PERSONAL_ACCESS_TOKEN": "<YOUR_TOKEN>" } } } }