
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>" } } } }