跳到主要内容

Github 服务 MCP 接入

通过 MCP 协议提供 Github 服务调用,支持代码评审,文件操作、仓库管理、搜索功能等。

前往云开发平台 MCP Server


环境变量

使用说明

Github MCP Server 参考文档

🗺️ 功能清单

工具标识功能描述核心参数
create_or_update_file创建或更新单个文件owner, repo, path, content, message
push_files单次提交推送多个文件owner, repo, branch, files, message
search_repositories搜索GitHub仓库query, page, perPage
create_repository创建新GitHub仓库name, description, private
get_file_contents获取文件或目录内容owner, repo, path, branch
create_issue创建新issueowner, repo, title, body, assignees
create_pull_request创建新PRowner, repo, title, head, base
fork_repositoryFork仓库owner, repo, organization
create_branch创建新分支owner, repo, branch, from_branch
list_issues列出和筛选仓库issuesowner, repo, state, labels
update_issue更新现有issueowner, repo, issue_number, title
add_issue_comment添加issue评论owner, repo, issue_number, body
search_code跨仓库搜索代码q, sort, order
search_issues搜索issues和PRq, sort, order
search_users搜索GitHub用户q, sort, order
list_commits获取仓库分支的提交记录owner, repo, sha
get_issue获取issue内容owner, repo, issue_number
get_pull_request获取PR详情owner, repo, pull_number
list_pull_requests列出和筛选仓库PRowner, repo, state
create_pull_request_review创建PR审查owner, repo, pull_number, body, event
merge_pull_request合并PRowner, repo, pull_number
get_pull_request_files获取PR更改的文件列表owner, repo, pull_number
get_pull_request_status获取PR所有状态检查owner, repo, pull_number
update_pull_request_branch更新PR分支owner, repo, pull_number
get_pull_request_comments获取PR评论owner, repo, pull_number
get_pull_request_reviews获取PR审查记录owner, repo, pull_number

仓库地址

https://github.com/modelcontextprotocol/servers/tree/main/src/github


使用方式


云开发 MCP 控制台

参数说明

create_or_update_file

在仓库中创建或更新单个文件

输入参数Type描述
ownerstring仓库所有者(用户名或组织)
repostring仓库名称
pathstring文件创建/更新的路径
contentstring文件内容
messagestring提交信息
branchstring操作的目标分支
shaoptional string被替换文件的SHA(用于更新)

返回: 文件内容和提交详情

push_files

在单次提交中推送多个文件

输入参数Type描述
ownerstring仓库所有者
repostring仓库名称
branchstring推送目标分支
filesarray要推送的文件数组(每个包含路径和内容)
messagestring提交信息

返回: 更新后的分支引用

search_repositories

搜索GitHub仓库

输入参数Type描述
querystring搜索关键词
pageoptional number分页页码
perPageoptional number每页结果数(最大100)

返回: 仓库搜索结果

create_repository

创建新GitHub仓库

输入参数Type描述
namestring仓库名称
descriptionoptional string仓库描述
privateoptional boolean是否私有仓库
autoInitoptional boolean是否初始化README

返回: 创建的仓库详情

get_file_contents

获取文件或目录内容

输入参数Type描述
ownerstring仓库所有者
repostring仓库名称
pathstring文件/目录路径
branchoptional string获取内容的分支

返回: 文件/目录内容

create_issue

创建新issue

输入参数Type描述
ownerstring仓库所有者
repostring仓库名称
titlestringissue标题
bodyoptional stringissue描述
assigneesoptional string[]分配的用户名
labelsoptional string[]添加的标签
milestoneoptional number里程碑编号

返回: 创建的issue详情

create_pull_request

创建新PR

输入参数Type描述
ownerstring仓库所有者
repostring仓库名称
titlestringPR标题
bodyoptional stringPR描述
headstring包含更改的分支
basestring要合并到的目标分支
draftoptional boolean是否创建为草稿PR
maintainer_can_modifyoptional boolean是否允许维护者修改

返回: 创建的PR详情

fork_repository

Fork仓库

输入参数Type描述
ownerstring仓库所有者
repostring仓库名称
organizationoptional stringFork到的组织

返回: Fork后的仓库详情

create_branch

创建新分支

输入参数Type描述
ownerstring仓库所有者
repostring仓库名称
branchstring新分支名称
from_branchoptional string源分支(默认为仓库默认分支)

返回: 创建的分支引用

list_issues

列出和筛选仓库issues

输入参数Type描述
ownerstring仓库所有者
repostring仓库名称
stateoptional string状态筛选('open', 'closed', 'all')
labelsoptional string[]标签筛选
sortoptional string排序方式('created', 'updated', 'comments')
directionoptional string排序方向('asc', 'desc')
sinceoptional string日期筛选(ISO 8601时间戳)
pageoptional number页码
per_pageoptional number每页结果数

返回: issue详情数组

update_issue

更新现有issue

输入参数Type描述
ownerstring仓库所有者
repostring仓库名称
issue_numbernumber要更新的issue编号
titleoptional string新标题
bodyoptional string新描述
stateoptional string新状态('open'或'closed')
labelsoptional string[]新标签
assigneesoptional string[]新分配者
milestoneoptional number新里程碑编号

返回: 更新后的issue详情

add_issue_comment

添加issue评论

输入参数Type描述
ownerstring仓库所有者
repostring仓库名称
issue_numbernumber要评论的issue编号
bodystring评论内容

返回: 创建的评论详情

search_code

跨仓库搜索代码

输入参数Type描述
qstring使用GitHub代码搜索语法的搜索词
sortoptional string排序字段(仅'indexed')
orderoptional string排序方向('asc'或'desc')
per_pageoptional number每页结果数(最大100)
pageoptional number页码

返回: 带仓库上下文的代码搜索结果

search_issues

搜索issues和PR

输入参数Type描述
qstring使用GitHub issues搜索语法的搜索词
sortoptional string排序字段(comments, reactions, created等)
orderoptional string排序方向('asc'或'desc')
per_pageoptional number每页结果数(最大100)
pageoptional number页码

返回: issues和PR搜索结果

search_users

搜索GitHub用户

输入参数Type描述
qstring使用GitHub用户搜索语法的搜索词
sortoptional string排序字段(followers, repositories, joined)
orderoptional string排序方向('asc'或'desc')
per_pageoptional number每页结果数(最大100)
pageoptional number页码

返回: 用户搜索结果

list_commits

获取仓库分支的提交记录

输入参数Type描述
ownerstring仓库所有者
repostring仓库名称
pageoptional string页码
per_pageoptional string每页记录数
shaoptional string分支名称

返回: 提交记录列表

get_issue

获取仓库中某个issue的内容

输入参数Type描述
ownerstring仓库所有者
repostring仓库名称
issue_numbernumber要获取的issue编号

返回: GitHub Issue对象及详情

get_pull_request

获取特定PR的详情

输入参数Type描述
ownerstring仓库所有者
repostring仓库名称
pull_numbernumberPR编号

返回: 包含diff和审查状态的PR详情

list_pull_requests

列出和筛选仓库PR

输入参数Type描述
ownerstring仓库所有者
repostring仓库名称
stateoptional string状态筛选('open', 'closed', 'all')
headoptional string按head用户/组织和分支筛选
baseoptional string按base分支筛选
sortoptional string排序方式('created', 'updated', 'popularity', 'long-running')
directionoptional string排序方向('asc', 'desc')
per_pageoptional number每页结果数(最大100)
pageoptional number页码

返回: PR详情数组

create_pull_request_review

创建PR审查

输入参数Type描述
ownerstring仓库所有者
repostring仓库名称
pull_numbernumberPR编号
bodystring审查评论文本
eventstring审查动作('APPROVE', 'REQUEST_CHANGES', 'COMMENT')
commit_idoptional string要审查的提交SHA
commentsoptional array行级评论数组(每个包含: path: 文件路径 position: diff中的行位置 body: 评论文本)

返回: 创建的审查详情

merge_pull_request

合并PR

输入参数Type描述
ownerstring仓库所有者
repostring仓库名称
pull_numbernumberPR编号
commit_titleoptional string合并提交的标题
commit_messageoptional string合并提交的额外详情
merge_methodoptional string合并方式('merge', 'squash', 'rebase')

返回: 合并结果详情

get_pull_request_files

获取PR中更改的文件列表

输入参数Type描述
ownerstring仓库所有者
repostring仓库名称
pull_numbernumberPR编号

返回: 包含patch和状态详情的更改文件数组

get_pull_request_status

获取PR所有状态检查的合并状态

输入参数Type描述
ownerstring仓库所有者
repostring仓库名称
pull_numbernumberPR编号

返回: 合并的状态检查结果和单个检查详情

update_pull_request_branch

用base分支的最新更改更新PR分支(相当于GitHub的"Update branch"按钮)

输入参数Type描述
ownerstring仓库所有者
repostring仓库名称
pull_numbernumberPR编号
expected_head_shaoptional stringPR的HEAD引用的预期SHA

返回: 分支更新成功时的成功消息

get_pull_request_comments

获取PR的审查评论

输入参数Type描述
ownerstring仓库所有者
repostring仓库名称
pull_numbernumberPR编号

返回: 包含评论文本、作者和diff位置等详情的PR审查评论数组

get_pull_request_reviews

获取PR的审查记录

输入参数Type描述
ownerstring仓库所有者
repostring仓库名称
pull_numbernumberPR编号

返回: 包含审查状态(APPROVED, CHANGES_REQUESTED等)、审查者和审查正文等详情的PR审查数组

搜索查询语法

代码搜索

  • language:javascript: 按编程语言搜索
  • repo:owner/name: 在特定仓库中搜索
  • path:app/src: 在特定路径中搜索
  • extension:js: 按文件扩展名搜索

示例: q: "import express" language:typescript path:src/

Issues搜索

  • is:issueis:pr: 按类型筛选
  • is:openis:closed: 按状态筛选
  • label:bug: 按标签搜索
  • author:username: 按作者搜索

示例: q: "内存泄漏" is:issue is:open label:bug

用户搜索

  • type:usertype:org: 按账户类型筛选
  • followers:>1000: 按关注者数量筛选
  • location:London: 按位置搜索

示例: q: "全栈开发" location:北京 followers:>100

Personal Access Token (个人访问令牌)相关

  1. 选择令牌可访问的仓库范围(公开、全部或选定)
  2. 创建具有repo作用域的令牌("私有仓库的完全控制")
  3. 或者如果仅使用公开仓库,选择仅public_repo作用域
  4. 复制保存生成的令牌