详细介绍
开发文档
参数和配置

GitHub API 的 MCP 服务器功能与工具说明

核心功能

  1. 自动分支创建:在创建/更新文件或推送变更时,若分支不存在则自动创建,简化工作流程。
  2. 全面错误处理:针对常见问题提供清晰的错误提示,便于快速排查。
  3. Git 历史保留:操作保留完整 Git 历史记录,避免强制推送(force push)导致的数据丢失。
  4. 批量操作支持:同时处理单文件或多文件操作,提升效率。
  5. 高级搜索功能:支持搜索代码、问题/拉取请求(PR)及用户,精准定位资源。

工具列表与参数说明

以下工具可通过自然语言指令调用,实现 GitHub 仓库的自动化管理:

工具列表

1. create_or_update_file

功能:在仓库中创建或更新单个文件。

  • 参数
    • owner(字符串):仓库所有者(用户名或组织名)。
    • repo(字符串):仓库名称。
    • path(字符串):创建/更新文件的路径。
    • content(字符串):文件内容。
    • message(字符串):提交信息。
    • branch(字符串):目标分支(用于创建/更新文件)。
    • sha(可选字符串):被替换文件的SHA(用于更新操作)。
  • 返回:文件内容及提交详情。

2. push_files

功能:通过单次提交推送多个文件。

  • 参数
    • owner(字符串):仓库所有者。
    • repo(字符串):仓库名称。
    • branch(字符串):目标推送分支。
    • files(数组):需推送的文件列表,每个文件包含path(路径)和content(内容)。
    • message(字符串):提交信息。
  • 返回:更新后的分支引用。

3. search_repositories

功能:搜索GitHub仓库。

  • 参数
    • query(字符串):搜索关键词。
    • page(可选数字):分页页码。
    • perPage(可选数字):每页结果数(最大值100)。
  • 返回:仓库搜索结果。

4. create_repository

功能:创建新GitHub仓库。

  • 参数
    • name(字符串):仓库名称。
    • description(可选字符串):仓库描述。
    • private(可选布尔值):是否为私有仓库。
    • autoInit(可选布尔值):是否初始化README文件。
  • 返回:新建仓库详情。

5. get_file_contents

功能:获取文件或目录内容。

  • 参数
    • owner(字符串):仓库所有者。
    • repo(字符串):仓库名称。
    • path(字符串):文件/目录路径。
    • branch(可选字符串):目标分支(获取内容的分支)。
  • 返回:文件/目录内容。

6. create_issue

功能:创建新问题。

  • 参数
    • owner(字符串):仓库所有者。
    • repo(字符串):仓库名称。
    • title(字符串):问题标题。
    • body(可选字符串):问题描述。
    • assignees(可选字符串数组):分配的用户名列表。
    • labels(可选字符串数组):添加的标签列表。
    • milestone(可选数字):里程碑编号。
  • 返回:新建问题详情。

7. create_pull_request

功能:创建新拉取请求(PR)。

  • 参数
    • owner(字符串):仓库所有者。
    • repo(字符串):仓库名称。
    • title(字符串):PR标题。
    • body(可选字符串):PR描述。
    • head(字符串):包含变更的分支(源分支)。
    • base(字符串):目标合并分支(基分支)。
    • draft(可选布尔值):是否创建为草稿PR。
    • maintainer_can_modify(可选布尔值):是否允许维护者修改。
  • 返回:新建PR详情。

8. fork_repository

功能:复刻仓库。

  • 参数
    • owner(字符串):源仓库所有者。
    • repo(字符串):源仓库名称。
    • organization(可选字符串):复刻到的组织(默认复刻到当前用户)。
  • 返回:复刻后的仓库详情。

9. create_branch

功能:创建新分支。

  • 参数
    • owner(字符串):仓库所有者。
    • repo(字符串):仓库名称。
    • branch(字符串):新分支名称。
    • from_branch(可选字符串):源分支(默认使用仓库默认分支)。
  • 返回:新建分支引用。

10. list_issues

功能:列出并过滤仓库问题。

  • 参数
    • owner(字符串):仓库所有者。
    • repo(字符串):仓库名称。
    • state(可选字符串):状态过滤(open/closed/all)。
    • labels(可选字符串数组):标签过滤。
    • sort(可选字符串):排序字段(created/updated/comments)。
    • direction(可选字符串):排序方向(asc/desc)。
    • since(可选字符串):时间过滤(ISO 8601时间戳)。
    • page(可选数字):分页页码。
    • per_page(可选数字):每页结果数。
  • 返回:问题详情数组。

11. update_issue

功能:更新现有问题。

  • 参数
    • owner(字符串):仓库所有者。
    • repo(字符串):仓库名称。
    • issue_number(数字):待更新的问题编号。
    • title(可选字符串):新标题。
    • body(可选字符串):新描述。
    • state(可选字符串):新状态(open/closed)。
    • labels(可选字符串数组):新标签列表。
    • assignees(可选字符串数组):新分配的用户名列表。
    • milestone(可选数字):新里程碑编号。
  • 返回:更新后的问题详情。

12. add_issue_comment

功能:为问题添加评论。

  • 参数
    • owner(字符串):仓库所有者。
    • repo(字符串):仓库名称。
    • issue_number(数字):待评论的问题编号。
    • body(字符串):评论文字。
  • 返回:新建评论详情。

13. search_code

功能:搜索GitHub仓库中的代码(支持GitHub搜索语法)。

  • 参数
    • q(字符串):搜索查询(如language:javascript repo:owner/repo)。
    • sort(可选字符串):排序字段(仅支持indexed)。
    • order(可选字符串):排序方向(asc/desc)。
    • per_page(可选数字):每页结果数(最大值100)。
    • page(可选数字):分页页码。
  • 返回:带仓库上下文的代码搜索结果。

14. search_issues

功能:搜索问题和拉取请求(支持GitHub搜索语法)。

  • 参数
    • q(字符串):搜索查询(如is:pr label:bug)。
    • sort(可选字符串):排序字段(comments/reactions/created等)。
    • order(可选字符串):排序方向(asc/desc)。
    • per_page(可选数字):每页结果数(最大值100)。
    • page(可选数字):分页页码。
  • 返回:问题和PR搜索结果。

15. search_users

功能:搜索GitHub用户(支持GitHub搜索语法)。

  • 参数
    • q(字符串):搜索查询(如location:London followers:>1000)。
    • sort(可选字符串):排序字段(followers/repositories/joined)。
    • order(可选字符串):排序方向(asc/desc)。
    • per_page(可选数字):每页结果数(最大值100)。
    • page(可选数字):分页页码。
  • 返回:用户搜索结果。

16. list_commits

功能:获取仓库中某分支的提交记录。

  • 参数
    • owner(字符串):仓库所有者。
    • repo(字符串):仓库名称。
    • page(可选字符串):分页页码。
    • per_page(可选字符串):每页记录数。
    • sha(可选字符串):分支名称(或SHA值)。
  • 返回:提交记录列表。

17. get_issue

功能:获取仓库中某问题的详情。

  • 参数
    • owner(字符串):仓库所有者。
    • repo(字符串):仓库名称。
    • issue_number(数字):待获取的问题编号。
  • 返回:GitHub问题对象及详情。

18. get_pull_request

功能:获取某拉取请求的详情(包括差异和审查状态)。

  • 参数
    • owner(字符串):仓库所有者。
    • repo(字符串):仓库名称。
    • pull_number(数字):待获取的PR编号。
  • 返回:PR详情(含差异内容和审查状态)。

19. list_pull_requests

功能:列出并过滤仓库中的拉取请求。

  • 参数
    • owner(字符串):仓库所有者。
    • repo(字符串):仓库名称。
    • state(可选字符串):状态过滤(open/closed/all)。
    • head(可选字符串):按源分支(head用户/组织和分支)过滤。
    • base(可选字符串):按目标分支(base分支)过滤。
    • sort(可选字符串):排序字段(created/updated/popularity/long-running)。
    • direction(可选字符串):排序方向(asc/desc)。
    • per_page(可选数字):每页结果数(最大值100)。
    • page(可选数字):分页页码。
  • 返回:PR详情数组。

20. create_pull_request_review

功能:为拉取请求创建审查。

  • 参数
    • owner(字符串):仓库所有者。
    • repo(字符串):仓库名称。
    • pull_number(数字):待审查的PR编号。
    • body(字符串):审查评论内容。
    • event(字符串):审查动作(APPROVE/REQUEST_CHANGES/COMMENT)。
    • commit_id(可选字符串):待审查的提交SHA值。
    • comments(可选数组):行级评论列表,每个评论包含path(文件路径)、position(差异中的行位置)、body(评论文字)。
  • 返回:新建审查详情。

21. merge_pull_request

功能:合并拉取请求。

  • 参数
    • owner(字符串):仓库所有者。
    • repo(字符串):仓库名称。
    • pull_number(数字):待合并的PR编号。
    • commit_title(可选字符串):合并提交的标题。
    • commit_message(可选字符串):合并提交的详细信息。
    • merge_method(可选字符串):合并方式(merge/squash/rebase)。
  • 返回:合并结果详情。

22. get_pull_request_files

功能:获取拉取请求中变更的文件列表(含补丁和状态详情)。

  • 参数
    • owner(字符串):仓库所有者。
    • repo(字符串):仓库名称。
    • pull_number(数字):目标PR编号。
  • 返回:变更文件数组(含补丁内容和状态)。

23. get_pull_request_status

功能:获取拉取请求的所有状态检查的综合结果。

  • 参数
    • owner(字符串):仓库所有者。
    • repo(字符串):仓库名称。
    • pull_number(数字):目标PR编号。
  • 返回:综合状态结果及单个检查详情。

24. update_pull_request_branch

功能:使用目标分支的最新变更更新PR分支(相当于GitHub的“Update branch”按钮)。

  • 参数
    • owner(字符串):仓库所有者。
    • repo(字符串):仓库名称。
    • pull_number(数字):目标PR编号。
    • expected_head_sha(可选字符串):PR的HEAD引用预期SHA值(用于冲突校验)。
  • 返回:分支更新成功信息。

25. get_pull_request_comments

功能:获取拉取请求的审查评论。

  • 参数
    • owner(字符串):仓库所有者。
    • repo(字符串):仓库名称。
    • pull_number(数字):目标PR编号。
  • 返回:PR审查评论数组(含评论文字、作者、差异中的位置等详情)。

26. get_pull_request_reviews

功能:获取拉取请求的审查记录。

  • 参数
    • owner(字符串):仓库所有者。
    • repo(字符串):仓库名称。
    • pull_number(数字):目标PR编号。
  • 返回:PR审查记录数组(含审查状态、审查者、审查内容等详情)。

搜索语法示例

代码搜索

  • 按语言过滤:q: "import express" language:typescript
  • 指定仓库和路径:repo:owner/repo path:src/extension:js

问题搜索

  • 筛选公开 Bug 问题:q: "memory leak" is:issue is:open label:bug
  • 按作者搜索:author:username

用户搜索

  • 筛选伦敦地区、关注者超 1000 的用户:q: "fullstack developer" location:London followers:>1000

最佳实践

  • 自动化开发流程:通过 create_or_update_file + push_files 实现代码自动化部署。
  • 协作场景:结合 create_issue + create_pull_request 管理团队任务与代码审查。
  • 数据驱动决策:利用 search_codesearch_repositories 分析开源项目趋势。

通过此 MCP 服务器,开发者可直接通过自然语言指令调用 GitHub API,大幅提升仓库管理、代码搜索及协作效率。

用于GitHub API的MCP服务器,支持文件操作、仓库管理、搜索功能等。

最新发布

3 天前

开发语言

js

执行环境

所有

价格

免费