GitHub MCP 服务器 Plus
GitHub API 的 MCP 服务器,支持文件操作、存储库管理、搜索功能等。
特征
- 自动创建分支:创建/更新文件或推送更改时,如果分支不存在,则会自动创建分支 
- 全面的错误处理:针对常见问题的清晰错误消息 
- Git 历史记录保存:操作无需强制推送即可维护正确的 Git 历史记录 
- 批量操作:支持内容或文件路径的单文件和多文件操作 
- 高级搜索:支持搜索代码、问题/PR 和用户 
工具
- create_or_update_file- 在存储库中创建或更新单个文件 
- 输入: - owner(字符串):存储库所有者(用户名或组织)
- repo(字符串):存储库名称
- path(字符串):创建/更新文件的路径
- content(字符串):文件的内容
- message(字符串):提交消息
- branch(字符串):创建/更新文件的分支
- sha(可选字符串):被替换文件的 SHA(用于更新)
 
- 返回:文件内容和提交详细信息 
 
- push_files_content- 在一次提交中推送具有直接内容的多个文件 
- 输入: - owner(字符串):存储库所有者
- repo(字符串):存储库名称
- branch(字符串):要推送到的分支
- files(数组):要推送的文件,每个文件都有- path和- content
- message(字符串):提交消息
 
- 返回:更新的分支参考 
 
- push_files_from_path- 在一次提交中从文件系统路径推送多个文件 
- 输入: - owner(字符串):存储库所有者
- repo(字符串):存储库名称
- branch(字符串):要推送到的分支
- files(数组):要推送的文件,每个文件包含:- path(字符串):存储库中的目标路径
- filepath(字符串):要读取的源文件系统路径
 
- message(字符串):提交消息
 
- 返回:更新的分支参考 
 
- search_repositories- 搜索 GitHub 存储库 
- 输入: - query(字符串):搜索查询
- page(可选数字):分页的页码
- perPage(可选数字):每页结果数(最多 100 条)
 
- 返回:存储库搜索结果 
 
- create_repository- 创建一个新的 GitHub 存储库 
- 输入: - name(字符串):存储库名称
- description(可选字符串):存储库描述
- private(可选布尔值):repo 是否应为私有
- autoInit(可选布尔值):使用 README 初始化
 
- 返回:创建的存储库详细信息 
 
- get_file_contents- 获取文件或目录的内容 
- 输入: - owner(字符串):存储库所有者
- repo(字符串):存储库名称
- path(字符串):文件/目录的路径
- branch(可选字符串):从中获取内容的分支
 
- 返回:文件/目录内容 
 
- create_issue- 创建新问题 
- 输入: - owner(字符串):存储库所有者
- repo(字符串):存储库名称
- title(字符串):问题标题
- body(可选字符串):问题描述
- assignees(可选字符串[]):要分配的用户名
- labels(可选字符串[]):要添加的标签
- milestone(可选数字):里程碑编号
 
- 返回:创建问题详情 
 
- create_pull_request- 创建新的拉取请求 
- 输入: - owner(字符串):存储库所有者
- repo(字符串):存储库名称
- title(字符串):PR 标题
- body(可选字符串):PR 描述
- head(字符串):包含更改的分支
- base(字符串):要合并到的分支
- draft(可选布尔值):创建为 PR 草稿
- maintainer_can_modify(可选布尔值):允许维护者编辑
 
- 返回:创建的拉取请求详细信息 
 
- fork_repository- 派生一个存储库 
- 输入: - owner(字符串):存储库所有者
- repo(字符串):存储库名称
- organization(可选字符串):要分叉的组织
 
- 返回:分叉存储库详细信息 
 
- create_branch
- 创建新分支 
- 输入: - owner(字符串):存储库所有者
- repo(字符串):存储库名称
- branch(字符串):新分支的名称
- from_branch(可选字符串):源分支(默认为 repo default)
 
- 返回:创建的分支引用 
- list_issues
- 列出并过滤存储库问题 
- 输入: - owner(字符串):存储库所有者
- repo(字符串):存储库名称
- state(可选字符串):按状态过滤('打开','关闭','全部')
- labels(可选字符串[]):按标签过滤
- sort(可选字符串):按('创建','更新','评论')排序
- direction(可选字符串):排序方向('asc','desc')
- since(可选字符串):按日期过滤(ISO 8601 时间戳)
- page(可选数字):页码
- per_page(可选数字):每页结果数
 
- 返回:问题详细信息数组 
- update_issue
- 更新现有问题 
- 输入: - owner(字符串):存储库所有者
- repo(字符串):存储库名称
- issue_number(数字):要更新的问题编号
- title(可选字符串):新标题
- body(可选字符串):新的描述
- state(可选字符串):新状态(“打开”或“关闭”)
- labels(可选字符串[]):新标签
- assignees(可选字符串[]):新受让人
- milestone(可选数字):新的里程碑编号
 
- 返回:更新的问题详情 
- add_issue_comment
- 向问题添加评论 
- 输入: - owner(字符串):存储库所有者
- repo(字符串):存储库名称
- issue_number(数字):要评论的问题编号
- body(字符串):评论文本
 
- 返回:创建的评论详情 
- search_code
- 在 GitHub 存储库中搜索代码 
- 输入: - q(字符串):使用 GitHub 代码搜索语法的搜索查询
- sort(可选字符串):排序字段(仅限“索引”)
- order(可选字符串):排序顺序('asc' 或 'desc')
- per_page(可选数字):每页结果数(最多 100 条)
- page(可选数字):页码
 
- 返回:带有存储库上下文的代码搜索结果 
- search_issues
- 搜索问题和拉取请求 
- 输入: - q(字符串):使用 GitHub 问题搜索语法进行搜索查询
- sort(可选字符串):排序字段(评论、反应、创建等)
- order(可选字符串):排序顺序('asc' 或 'desc')
- per_page(可选数字):每页结果数(最多 100 条)
- page(可选数字):页码
 
- 返回:问题和拉取请求搜索结果 
- search_users
- 搜索 GitHub 用户 
- 输入: - q(字符串):使用 GitHub 用户搜索语法的搜索查询
- sort(可选字符串):排序字段(关注者、存储库、加入)
- order(可选字符串):排序顺序('asc' 或 'desc')
- per_page(可选数字):每页结果数(最多 100 条)
- page(可选数字):页码
 
- 返回:用户搜索结果 
- list_commits
- 获取存储库中分支的提交 
- 输入: - owner(字符串):存储库所有者
- repo(字符串):存储库名称
- page(可选字符串):页码
- per_page(可选字符串):每页记录数
- sha(可选字符串):分支名称
 
- 返回:提交列表 
- get_issue
- 获取存储库中问题的内容 
- 输入: - owner(字符串):存储库所有者
- repo(字符串):存储库名称
- issue_number(数字):要检索的问题编号
 
- 返回:GitHub Issue 对象和详细信息 
- get_pull_request
- 获取特定拉取请求的详细信息 
- 输入: - owner(字符串):存储库所有者
- repo(字符串):存储库名称
- pull_number(数字):拉取请求编号
 
- 返回:拉取请求详细信息,包括差异和审核状态 
- list_pull_requests
- 列出并过滤存储库拉取请求 
- 输入: - owner(字符串):存储库所有者
- repo(字符串):存储库名称
- state(可选字符串):按状态过滤('打开','关闭','全部')
- head(可选字符串):按主管用户/组织和分支进行过滤
- base(可选字符串):按基本分支过滤
- sort(可选字符串):按('创建','更新','受欢迎程度','长期运行')排序
- direction(可选字符串):排序方向('asc','desc')
- per_page(可选数字):每页结果数(最多 100 条)
- page(可选数字):页码
 
- 返回:拉取请求详细信息数组 
- create_pull_request_review
- 对拉取请求创建评论 
- 输入: - owner(字符串):存储库所有者
- repo(字符串):存储库名称
- pull_number(数字):拉取请求编号
- body(字符串):评论文本
- event(字符串):审查操作('APPROVE','REQUEST_CHANGES','COMMENT')
- commit_id(可选字符串):提交审核的 SHA
- comments(可选数组):特定于行的注释,每行包含:- path(字符串):文件路径
- position(数字):差异中的行位置
- body(字符串):评论文本
 
 
- 返回:创建评论详情 
- merge_pull_request
- 合并拉取请求 
- 输入: - owner(字符串):存储库所有者
- repo(字符串):存储库名称
- pull_number(数字):拉取请求编号
- commit_title(可选字符串):合并提交的标题
- commit_message(可选字符串):合并提交的额外详细信息
- merge_method(可选字符串):合并方法('merge','squash','rebase')
 
- 返回:合并结果详情 
- get_pull_request_files
- 获取拉取请求中更改的文件列表 
- 输入: - owner(字符串):存储库所有者
- repo(字符串):存储库名称
- pull_number(数字):拉取请求编号
 
- 返回:包含补丁和状态详细信息的已更改文件数组 
- get_pull_request_status
- 获取拉取请求所有状态检查的综合状态 
- 输入: - owner(字符串):存储库所有者
- repo(字符串):存储库名称
- pull_number(数字):拉取请求编号
 
- 返回:综合状态检查结果和个人检查详情 
- update_pull_request_branch
- 使用基础分支中的最新更改来更新拉取请求分支 
- 输入: - owner(字符串):存储库所有者
- repo(字符串):存储库名称
- pull_number(数字):拉取请求编号
- expected_head_sha(可选字符串):拉取请求的 HEAD ref 的预期 SHA
 
- 返回:分支更新时的成功消息 
- get_pull_request_comments
- 获取拉取请求的审核意见 
- 输入: - owner(字符串):存储库所有者
- repo(字符串):存储库名称
- pull_number(数字):拉取请求编号
 
- 返回:拉取请求评论数组 
- get_pull_request_reviews
- 获取拉取请求的评论 
- 输入: - owner(字符串):存储库所有者
- repo(字符串):存储库名称
- pull_number(数字):拉取请求编号
 
- 返回:拉取请求评论数组 
搜索查询语法
代码搜索
- language:javascript:按编程语言搜索
- repo:owner/name:在特定存储库中搜索
- path:app/src:在特定路径中搜索
- extension:js:按文件扩展名搜索
- 例如: - q: "import express" language:typescript path:src/
问题搜索
- is:issue或- is:pr:按类型过滤
- is:open或- is:closed:按状态过滤
- label:bug:按标签搜索
- author:username:按作者搜索
- 例如: - q: "memory leak" is:issue is:open label:bug
用户搜索
- type:user或- type:org:按帐户类型过滤
- followers:>1000:按关注者过滤
- location:London:按地点搜索
- 例如: - q: "fullstack developer" location:London followers:>100
有关详细的搜索语法,请参阅GitHub 的搜索文档。
设置
个人访问令牌
- 转到个人访问令牌(在 GitHub 设置 > 开发人员设置中) 
- 选择您希望此令牌可以访问的存储库(公共、全部或选择) 
- 创建具有 - repo范围的令牌(“完全控制私有存储库”)- 或者,如果仅使用公共存储库,则仅选择 - public_repo范围
 
- 复制生成的token 
与 Claude Desktop 一起使用
要将其与 Claude Desktop 一起使用,请将以下内容添加到您的claude_desktop_config.json中:
Docker
NPX
建造
Docker 构建:
执照
此 MCP 服务器采用 MIT 许可证。这意味着您可以自由使用、修改和分发该软件,但须遵守 MIT 许可证的条款和条件。更多详情,请参阅项目仓库中的 LICENSE 文件。
remote-capable server
The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.
Tools
GitHub API 的 MCP 服务器,提供文件操作、存储库管理和高级搜索功能,具有自动分支创建和全面的错误处理功能。
Related Resources
Related MCP Servers
- Asecurity-licenseAqualityMCP Server for the GitHub API, enabling file operations, repository management, search functionality, and more.Last updated -22,57371,513MIT License
- Asecurity-licenseAqualityA MCP server that provides access to GitHub trending repositories and developers data through a simple API interface.Last updated -235MIT License
- MIT License
- -security-license-qualityAn MCP server that wraps around the GitHub CLI tool, allowing AI assistants to interact with GitHub repositories through commands for pull requests, issues, and repository operations.Last updated -2MIT License