@ 社区模板
通过 MCP 协议提供 Github 服务调用,支持代码评审,文件操作、仓库管理、搜索功能等。
以下是整理后的 Github 服务 MCP 接入功能清单:
| 工具标识 | 功能描述 | 核心参数 |
|---|---|---|
create_or_update_file | 在仓库中创建或更新单个文件 | owner, repo, path, content, message, branch, sha |
push_files | 在单次提交中推送多个文件 | owner, repo, branch, files, message |
search_repositories | 搜索 GitHub 仓库 | query, page, perPage |
create_repository | 创建新 GitHub 仓库 | name, description, private, autoInit |
get_file_contents | 获取文件或目录内容 | owner, repo, path, branch |
create_issue | 创建新 issue | owner, repo, title, body, assignees, labels, milestone |
create_pull_request | 创建新 PR | owner, repo, title, body, head, base, draft, maintainer_can_modify |
fork_repository | Fork 仓库 | owner, repo, organization |
create_branch | 创建新分支 | owner, repo, branch, from_branch |
list_issues | 列出和筛选仓库 issues | owner, repo, state, labels, sort, direction, since, page, per_page |
update_issue | 更新现有 issue | owner, repo, issue_number, title, body, state, labels, assignees, milestone |
add_issue_comment | 添加 issue 评论 | owner, repo, issue_number, body |
search_code | 跨仓库搜索代码 | q, sort, order, per_page, page |
search_issues | 搜索 issues 和 PR | q, sort, order, per_page, page |
search_users | 搜索 GitHub 用户 | q, sort, order, per_page, page |
list_commits | 获取仓库分支的提交记录 | owner, repo, page, per_page, sha |
get_issue | 获取仓库中某个 issue 的内容 | owner, repo, issue_number |
get_pull_request | 获取特定 PR 的详情 | owner, repo, pull_number |
list_pull_requests | 列出和筛选仓库 PR | owner, repo, state, head, base, sort, direction, per_page, page |
create_pull_request_review | 创建 PR 审查 | owner, repo, pull_number, body, event, commit_id, comments |
merge_pull_request | 合并 PR | owner, repo, pull_number, commit_title, commit_message, merge_method |
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, expected_head_sha |
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
在仓库中创建或更新单个文件
| 输入参数 | Type | 描述 |
|---|---|---|
| owner | string | 仓库所有者(用户名或组织) |
| repo | string | 仓库名称 |
| path | string | 文件创建/更新的路径 |
| content | string | 文件内容 |
| message | string | 提交信息 |
| branch | string | 操作的目标分支 |
| sha | optional string | 被替换文件的SHA(用于更新) |
返回: 文件内容和提交详情
在单次提交中推送多个文件
| 输入参数 | Type | 描述 |
|---|---|---|
| owner | string | 仓库所有者 |
| repo | string | 仓库名称 |
| branch | string | 推送目标分支 |
| files | array | 要推送的文件数组(每个包含路径和内容) |
| message | string | 提交信息 |
返回: 更新后的分支引用
搜索GitHub仓库
| 输入参数 | Type | 描述 |
|---|---|---|
| query | string | 搜索关键词 |
| page | optional number | 分页页码 |
| perPage | optional number | 每页结果数(最大100) |
返回: 仓库搜索结果
创建新GitHub仓库
| 输入参数 | Type | 描述 |
|---|---|---|
| name | string | 仓库名称 |
| description | optional string | 仓库描述 |
| private | optional boolean | 是否私有仓库 |
| autoInit | optional boolean | 是否初始化README |
返回: 创建的仓库详情
获取文件或目录内容
| 输入参数 | Type | 描述 |
|---|---|---|
| owner | string | 仓库所有者 |
| repo | string | 仓库名称 |
| path | string | 文件/目录路径 |
| branch | optional string | 获取内容的分支 |
返回: 文件/目录内容
创建新issue
| 输入参数 | Type | 描述 |
|---|---|---|
| owner | string | 仓库所有者 |
| repo | string | 仓库名称 |
| title | string | issue标题 |
| body | optional string | issue描述 |
| assignees | optional string[] | 分配的用户名 |
| labels | optional string[] | 添加的标签 |
| milestone | optional number | 里程碑编号 |
返回: 创建的issue详情
创建新PR
| 输入参数 | Type | 描述 |
|---|---|---|
| owner | string | 仓库所有者 |
| repo | string | 仓库名称 |
| title | string | PR标题 |
| body | optional string | PR描述 |
| head | string | 包含更改的分支 |
| base | string | 要合并到的目标分支 |
| draft | optional boolean | 是否创建为草稿PR |
| maintainer_can_modify | optional boolean | 是否允许维护者修改 |
返回: 创建的PR详情
Fork仓库
| 输入参数 | Type | 描述 |
|---|---|---|
| owner | string | 仓库所有者 |
| repo | string | 仓库名称 |
| organization | optional string | Fork到的组织 |
返回: Fork后的仓库详情
创建新分支
| 输入参数 | Type | 描述 |
|---|---|---|
| owner | string | 仓库所有者 |
| repo | string | 仓库名称 |
| branch | string | 新分支名称 |
| from_branch | optional string | 源分支(默认为仓库默认分支) |
返回: 创建的分支引用
列出和筛选仓库issues
| 输入参数 | Type | 描述 |
|---|---|---|
| owner | string | 仓库所有者 |
| repo | string | 仓库名称 |
| state | optional string | 状态筛选('open', 'closed', 'all') |
| labels | optional string[] | 标签筛选 |
| sort | optional string | 排序方式('created', 'updated', 'comments') |
| direction | optional string | 排序方向('asc', 'desc') |
| since | optional string | 日期筛选(ISO 8601时间戳) |
| page | optional number | 页码 |
| per_page | optional number | 每页结果数 |
返回: issue详情数组
更新现有issue
| 输入参数 | Type | 描述 |
|---|---|---|
| owner | string | 仓库所有者 |
| repo | string | 仓库名称 |
| issue_number | number | 要更新的issue编号 |
| title | optional string | 新标题 |
| body | optional string | 新描述 |
| state | optional string | 新状态('open'或'closed') |
| labels | optional string[] | 新标签 |
| assignees | optional string[] | 新分配者 |
| milestone | optional number | 新里程碑编号 |
返回: 更新后的issue详情
添加issue评论
| 输入参数 | Type | 描述 |
|---|---|---|
| owner | string | 仓库所有者 |
| repo | string | 仓库名称 |
| issue_number | number | 要评论的issue编号 |
| body | string | 评论内容 |
返回: 创建的评论详情
跨仓库搜索代码
| 输入参数 | Type | 描述 |
|---|---|---|
| q | string | 使用GitHub代码搜索语法的搜索词 |
| sort | optional string | 排序字段(仅'indexed') |
| order | optional string | 排序方向('asc'或'desc') |
| per_page | optional number | 每页结果数(最大100) |
| page | optional number | 页码 |
返回: 带仓库上下文的代码搜索结果
搜索issues和PR
| 输入参数 | Type | 描述 |
|---|---|---|
| q | string | 使用GitHub issues搜索语法的搜索词 |
| sort | optional string | 排序字段(comments, reactions, created等) |
| order | optional string | 排序方向('asc'或'desc') |
| per_page | optional number | 每页结果数(最大100) |
| page | optional number | 页码 |
返回: issues和PR搜索结果
搜索GitHub用户
| 输入参数 | Type | 描述 |
|---|---|---|
| q | string | 使用GitHub用户搜索语法的搜索词 |
| sort | optional string | 排序字段(followers, repositories, joined) |
| order | optional string | 排序方向('asc'或'desc') |
| per_page | optional number | 每页结果数(最大100) |
| page | optional number | 页码 |
返回: 用户搜索结果
获取仓库分支的提交记录
| 输入参数 | Type | 描述 |
|---|---|---|
| owner | string | 仓库所有者 |
| repo | string | 仓库名称 |
| page | optional string | 页码 |
| per_page | optional string | 每页记录数 |
| sha | optional string | 分支名称 |
返回: 提交记录列表
获取仓库中某个issue的内容
| 输入参数 | Type | 描述 |
|---|---|---|
| owner | string | 仓库所有者 |
| repo | string | 仓库名称 |
| issue_number | number | 要获取的issue编号 |
返回: GitHub Issue对象及详情
获取特定PR的详情
| 输入参数 | Type | 描述 |
|---|---|---|
| owner | string | 仓库所有者 |
| repo | string | 仓库名称 |
| pull_number | number | PR编号 |
返回: 包含diff和审查状态的PR详情
列出和筛选仓库PR
| 输入参数 | Type | 描述 |
|---|---|---|
| owner | string | 仓库所有者 |
| repo | string | 仓库名称 |
| state | optional string | 状态筛选('open', 'closed', 'all') |
| head | optional string | 按head用户/组织和分支筛选 |
| base | optional string | 按base分支筛选 |
| sort | optional string | 排序方式('created', 'updated', 'popularity', 'long-running') |
| direction | optional string | 排序方向('asc', 'desc') |
| per_page | optional number | 每页结果数(最大100) |
| page | optional number | 页码 |
返回: PR详情数组
创建PR审查
| 输入参数 | Type | 描述 |
|---|---|---|
| owner | string | 仓库所有者 |
| repo | string | 仓库名称 |
| pull_number | number | PR编号 |
| body | string | 审查评论文本 |
| event | string | 审查动作('APPROVE', 'REQUEST_CHANGES', 'COMMENT') |
| commit_id | optional string | 要审查的提交SHA |
| comments | optional array | 行级评论数组(每个包含: path: 文件路径 position: diff中的行位置 body: 评论文本) |
返回: 创建的审查详情
合并PR
| 输入参数 | Type | 描述 |
|---|---|---|
| owner | string | 仓库所有者 |
| repo | string | 仓库名称 |
| pull_number | number | PR编号 |
| commit_title | optional string | 合并提交的标题 |
| commit_message | optional string | 合并提交的额外详情 |
| merge_method | optional string | 合并方式('merge', 'squash', 'rebase') |
返回: 合并结果详情
获取PR中更改的文件列表
| 输入参数 | Type | 描述 |
|---|---|---|
| owner | string | 仓库所有者 |
| repo | string | 仓库名称 |
| pull_number | number | PR编号 |
返回: 包含patch和状态详情的更改文件数组
获取PR所有状态检查的合并状态
| 输入参数 | Type | 描述 |
|---|---|---|
| owner | string | 仓库所有者 |
| repo | string | 仓库名称 |
| pull_number | number | PR编号 |
返回: 合并的状态检查结果和单个检查详情
用base分支的最新更改更新PR分支(相当于GitHub的"Update branch"按钮)
| 输入参数 | Type | 描述 |
|---|---|---|
| owner | string | 仓库所有者 |
| repo | string | 仓库名称 |
| pull_number | number | PR编号 |
| expected_head_sha | optional string | PR的HEAD引用的预期SHA |
返回: 分支更新成功时的成功消息
获取PR的审查评论
| 输入参数 | Type | 描述 |
|---|---|---|
| owner | string | 仓库所有者 |
| repo | string | 仓库名称 |
| pull_number | number | PR编号 |
返回: 包含评论文本、作者和diff位置等详情的PR审查评论数组
获取PR的审查记录
| 输入参数 | Type | 描述 |
|---|---|---|
| owner | string | 仓库所有者 |
| repo | string | 仓库名称 |
| pull_number | number | PR编号 |
返回: 包含审查状态(APPROVED, CHANGES_REQUESTED等)、审查者和审查正文等详情的PR审查数组
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: "内存泄漏" is:issue is:open label:bug
type:user 或 type:org: 按账户类型筛选followers:>1000: 按关注者数量筛选location:London: 按位置搜索示例: q: "全栈开发" location:北京 followers:>100