Token导航 LogoToken导航TokenDH.com
GitHub MCP Server Ts logo
开发工具未说明官方级别未说明来源级核验

GitHub MCP Server Ts

MCP Server

一个提供GitHub文件操作、仓库管理、搜索功能等API服务的工具,适用于开发者进行代码管理和协作。

工具数

46

提示词数

0

GitHub Stars

0

资源数

0
仓库管理TypeScriptClaude代码管理Claude DesktopClaude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

marcusdb

提供方

marcusdb

最后核验

2026/5/17 20:20

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

GitHub MCP服务器

免责声明!: 这不是官方的github MCP服务器,如需官方服务器,请访问http://github.com/github/github-mcp-server回购。这是typescript服务器,我自己添加了我认为在官方服务器上缺少的东西,它的基础代码来自modelcontextprotocol存储库的servers目录。

______________________________________________________________________

用于GitHub API的MCP服务器,实现文件操作、存储库管理、搜索功能等。

特性

  • 自动创建分支:在创建/更新文件或推送更改时,如果分支不存在,则会自动创建分支
  • 全面的错误处理:清除常见问题的错误消息
  • Git历史保存:操作维护正确的Git历史记录,无需强制推送
  • 批量操作:支持单文件和多文件操作
  • 高级搜索:支持搜索代码、问题/PR和用户

工具

  1. create_or_update_file

- 在存储库中创建或更新单个文件 - 输入: - owner (string):存储库所有者(用户名或组织) - repo (string):存储库名称 - path (string):创建/更新文件的路径 - content (string):文件内容 - message (string):提交消息 - branch (string):创建/更新文件的分支 - sha (可选字符串):要替换的文件的SHA(用于更新) - 返回:文件内容和提交详细信息

  1. push_files

- 在一次提交中推送多个文件 - 输入: - owner (string):存储库所有者 - repo (string):存储库名称 - branch (string):要推送的分支 - files (array):要推送的文件,每个文件都有 pathcontent - message (string):提交消息 - 返回:更新了分支引用

  1. search_repositories

- 搜索GitHub存储库 - 输入: - query (string):搜索查询 - page (可选编号):分页页码 - perPage (可选数字):每页结果(最多100个) - 返回:存储库搜索结果

  1. create_repository

- 创建新的GitHub存储库 - 输入: - name (string):存储库名称 - description (可选字符串):存储库描述 - private (可选布尔值):repo是否应该是私有的 - autoInit (可选布尔值):使用README进行初始化 - 返回:已创建存储库详细信息

  1. get_file_contents

- 获取文件或目录的内容 - 输入: - owner (string):存储库所有者 - repo (string):存储库名称 - path (string):文件/目录的路径 - branch (可选字符串):从中获取内容的分支 - 返回:文件/目录内容

  1. create_issue

- 创建新问题 - 输入: - owner (string):存储库所有者 - repo (string):存储库名称 - title (string):发行标题 - body (可选字符串):问题描述 - assignees (可选字符串\[\]):要分配的用户名 - labels (可选字符串\[\]):要添加的标签 - milestone (可选编号):里程碑编号 - 退货:已创建问题详细信息

  1. create_pull_request

- 创建新的pull请求 - 输入: - owner (string):存储库所有者 - repo (string):存储库名称 - title (字符串):PR标题 - body (可选字符串):PR描述 - head (string):包含更改的分支 - base (string):要合并的分支 - draft (可选布尔值):创建为PR草稿 - maintainer_can_modify (可选布尔值):允许维护者编辑 - 返回:已创建拉取请求详细信息

  1. fork_repository

- 分叉存储库 - 输入: - owner (string):存储库所有者 - repo (string):存储库名称 - organization (可选字符串):要分叉的组织 - 返回:分叉存储库详细信息

  1. create_branch

- 创建新分支 - 输入: - owner (string):存储库所有者 - repo (string):存储库名称 - branch (string):新分支的名称 - from_branch (可选字符串):源分支(默认为repo默认值) - 返回:已创建分支引用

  1. list_issues

- 列出和筛选存储库问题 - 输入: - owner (string):存储库所有者 - repo (string):存储库名称 - state (可选字符串):按状态筛选(“打开”、“关闭”、“全部”) - labels (可选字符串\[\]):按标签筛选 - sort (可选字符串):排序方式(“已创建”、“已更新”、“注释”) - direction (可选字符串):排序方向('sc','sec') - since (可选字符串):按日期筛选(ISO 8601时间戳) - page (可选编号):页码 - per_page (可选数字):每页结果 - 返回:问题详细信息数组

  1. update_issue

- 更新现有问题 - 输入: - owner (string):存储库所有者 - repo (string):存储库名称 - issue_number (number):要更新的发行号 - title (可选字符串):新标题 - body (可选字符串):新描述 - state (可选字符串):新状态(“打开”或“关闭”) - labels (可选字符串\[\]):新标签 - assignees (可选字符串\[\]):新受让人 - milestone (可选编号):新里程碑编号 - 退货:更新的问题详细信息

  1. add_issue_comment

- 向问题添加评论 - 输入: - owner (string):存储库所有者 - repo (string):存储库名称 - issue_number (number):要评论的问题编号 - body (string):注释文本 - 返回:已创建评论详细信息

  1. search_code

- 在GitHub存储库中搜索代码 - 输入: - q (string):使用GitHub代码搜索语法搜索查询 - sort (可选字符串):排序字段(仅“索引”) - order (可选字符串):排序顺序(“asc”或“desc”) - per_page (可选数字):每页结果(最多100个) - page (可选编号):页码 - 返回:带有存储库上下文的代码搜索结果

  1. search_issues

- 搜索问题并提取请求 - 输入: - q (string):使用GitHub发布搜索语法的搜索查询 - sort (可选字符串):排序字段(注释、反应、创建等) - order (可选字符串):排序顺序(“asc”或“desc”) - per_page (可选数字):每页结果(最多100个) - page (可选编号):页码 - 返回:问题和拉取请求搜索结果

  1. search_users

- 搜索GitHub用户 - 输入: - q (string):使用GitHub用户搜索语法搜索查询 - sort (可选字符串):排序字段(关注者、存储库、已加入) - order (可选字符串):排序顺序(“asc”或“desc”) - per_page (可选数字):每页结果(最多100个) - page (可选编号):页码 - 返回:用户搜索结果

  1. list_commits
  • 获取存储库中分支的提交
  • 输入:

- owner (string):存储库所有者 - repo (string):存储库名称 - page (可选字符串):页码 - per_page (可选字符串):每页记录数 - sha (可选字符串):分支名称

  • 返回:提交列表
  1. get_issue
  • 获取存储库中问题的内容
  • 输入:

- owner (string):存储库所有者 - repo (string):存储库名称 - issue_number (number):要检索的问题编号

  • 返回:Github Issue对象和详细信息
  1. get_pull_request
  • 获取特定拉取请求的详细信息
  • 输入:

- owner (string):存储库所有者 - repo (string):存储库名称 - pull_number (number):拉取请求编号

  • 返回:拉取请求详细信息,包括差异和审核状态
  1. list_pull_requests
  • 列出和筛选存储库拉取请求
  • 输入:

- owner (string):存储库所有者 - repo (string):存储库名称 - state (可选字符串):按状态筛选(“打开”、“关闭”、“全部”) - head (可选字符串):按主用户/组织和分支机构过滤 - base (可选字符串):按基分支筛选 - sort (可选字符串):排序方式(“已创建”、“已更新”、“受欢迎程度”、“长期运行”) - direction (可选字符串):排序方向('sc','sec') - per_page (可选数字):每页结果(最多100个) - page (可选编号):页码

  • 返回:拉取请求详细信息数组
  1. create_pull_request_review
  • 对拉取请求创建评论
  • 输入:

- owner (string):存储库所有者 - repo (string):存储库名称 - pull_number (number):拉取请求编号 - body (string):审阅评论文本 - event (string):审核操作(“PPROVE”、“REQUEST_CHANGES”、“COMMENT”) - commit_id (可选字符串):提交审查的SHA - comments (可选数组):行特定注释,每个注释都有: - path (string):文件路径 - position (数字):差速器中的行位置 - body (string):注释文本

  • 退货:已创建审核详细信息
  1. merge_pull_request
  • 合并拉取请求
  • 输入:

- owner (string):存储库所有者 - repo (string):存储库名称 - pull_number (number):拉取请求编号 - commit_title (可选字符串):合并提交的标题 - commit_message (可选字符串):合并提交的额外细节 - merge_method (可选字符串):Merge方法('Merge','squash','rebase')

  • 返回:合并结果详细信息
  1. get_pull_request_files
  • 获取拉取请求中更改的文件列表
  • 输入:

- owner (string):存储库所有者 - repo (string):存储库名称 - pull_number (number):拉取请求编号

  • 返回:包含补丁和状态详细信息的已更改文件数组
  1. get_pull_request_status
  • 获取拉取请求的所有状态检查的组合状态
  • 输入:

- owner (string):存储库所有者 - repo (string):存储库名称 - pull_number (number):拉取请求编号

  • 返回:组合状态检查结果和单个检查详细信息
  1. update_pull_request_branch
  • 使用基础分支的最新更改更新拉取请求分支(相当于GitHub的“更新分支”按钮)
  • 输入:

- owner (string):存储库所有者 - repo (string):存储库名称 - pull_number (number):拉取请求编号 - expected_head_sha (可选字符串):拉取请求的HEAD引用的预期SHA

  • 返回:分支更新时的成功消息
  1. get_pull_request_comments
  • 获取拉取请求的评论
  • 输入:

- owner (string):存储库所有者 - repo (string):存储库名称 - pull_number (number):拉取请求编号

  • 返回:拉取请求审核评论数组,包含评论文本、作者和差异中的位置等详细信息
  1. get_pull_request_reviews
  • 获取拉取请求的评论
  • 输入:

- owner (string):存储库所有者 - repo (string):存储库名称 - pull_number (number):拉取请求编号

  • 返回:拉取请求审核数组,包含审核状态(APPROVED、CHANGES_REQUESTED等)、审核者和审核主体等详细信息
  1. list_sub_issues
  • 获取给定问题的子问题列表
  • 输入:

- owner (string):存储库所有者 - repo (string):存储库名称 - issue_number (编号)问题编号 - page (可选编号):页码 - per_page (可选数字):每页结果

  • 返回:问题详细信息数组
  1. reprioritize_sub_issue
  • 重新订购子问题
  • 输入:

- owner (string):存储库所有者 - repo (string):存储库名称 - pull_number (number):拉取请求编号 - issue_number (编号)问题编号 - sub_issue_id (number)重新确定优先顺序的子问题的id - after_id (number)之后要优先处理的子问题的id(应指定OR之后或之前的位置参数)。 - before_id (number)之前要优先处理的子问题的id(应指定OR之后或之前的位置参数)。

  • 退货:子问题详细信息
  1. remove_sub_issue
  • 从问题中删除子问题
  • 输入:

- owner (string):存储库所有者 - repo (string):存储库名称 - pull_number (number):拉取请求编号 - issue_number (编号)问题编号 - sub_issue_id (number)要删除的子问题的id

  • 退货:子问题详细信息
  1. add_sub_issue
  • 获取拉取请求的评论
  • 输入:

- owner (string):存储库所有者 - repo (string):存储库名称 - pull_number (number):拉取请求编号 - issue_number (编号)问题编号 - sub_issue_id (number)要添加为子问题的问题的id

  • 退货:子问题详细信息
  1. list_labels_for_issue
  • 列出问题的所有标签
  • 输入:

- owner (string):存储库所有者 - repo (string):存储库名称 - issue_number (number):发行号 - per_page (可选数字):每页结果 - page (可选编号):页码

  • 返回:标签详细信息数组
  1. add_labels_to_issue
  • 为问题添加标签
  • 输入:

- owner (string):存储库所有者 - repo (string):存储库名称 - issue_number (number):发行号 - labels (string\[\]):要添加的标签名称数组

  • 返回:应用于问题的标签详细信息数组
  1. set_labels_for_issue
  • 设置问题的标签,替换任何现有标签
  • 输入:

- owner (string):存储库所有者 - repo (string):存储库名称 - issue_number (number):发行号 - labels (可选字符串\[\]):要设置的标签名称数组。提供一个空数组以删除所有标签。

  • 返回:应用于问题的标签详细信息数组
  1. remove_label_from_issue
  • 从问题中删除标签
  • 输入:

- owner (string):存储库所有者 - repo (string):存储库名称 - issue_number (number):发行号 - name (string):要删除的标签的名称

  • 返回:成功状态(通常为204无内容)
  1. remove_all_labels_from_issue
  • 从问题中删除所有标签
  • 输入:

- owner (string):存储库所有者 - repo (string):存储库名称 - issue_number (number):发行号

  • 返回:成功状态(通常为204无内容)
  1. list_labels_for_repo
  • 列出存储库的所有标签
  • 输入:

- owner (string):存储库所有者 - repo (string):存储库名称 - per_page (可选数字):每页结果 - page (可选编号):页码

  • 返回:存储库的标签详细信息数组
  1. create_label
  • 为存储库创建标签
  • 输入:

- owner (string):存储库所有者 - repo (string):存储库名称 - name (string):标签的名称 - color (可选字符串):不带前导的十六进制颜色代码# - description (可选字符串):标签的简短描述

  • 返回:已创建标签详细信息
  1. get_label
  • 为存储库获取单个标签
  • 输入:

- owner (string):存储库所有者 - repo (string):存储库名称 - name (string):要获取的标签名称

  • 返回:标签详细信息
  1. update_label
  • 更新存储库的现有标签
  • 输入:

- owner (string):存储库所有者 - repo (string):存储库名称 - name (string):要更新的标签的当前名称 - new_name (可选字符串):标签的新名称 - color (可选字符串):新的十六进制颜色代码 - description (可选字符串):新描述

  • 返回:更新标签详细信息
  1. delete_label
  • 从存储库中删除标签
  • 输入:

- owner (string):存储库所有者 - repo (string):存储库名称 - name (string):要删除的标签的名称

  • 返回:成功状态(通常为204无内容)
  1. list_labels_for_milestone
  • 列出里程碑中问题的标签
  • 输入:

- owner (string):存储库所有者 - repo (string):存储库名称 - milestone_number (编号):里程碑编号 - per_page (可选数字):每页结果 - page (可选编号):页码

  • 返回:里程碑的标签详细信息数组
  1. list_milestones
  • 列出存储库的里程碑
  • 输入:

- owner (string):存储库所有者 - repo (string):存储库名称 - state (可选字符串):按状态筛选(“打开”、“关闭”、“全部”,默认值:“打开”) - sort (可选字符串):排序方式('due_on','completely',默认值:'due_on') - direction (可选字符串):排序方向('asc','desc',默认值:'asc') - per_page (可选数字):每页结果 - page (可选编号):页码

  • 返回:里程碑详细信息数组
  1. create_milestone
  • 为存储库创建里程碑
  • 输入:

- owner (string):存储库所有者 - repo (string):存储库名称 - title (string):里程碑标题 - state (可选字符串):状态(“打开”或“关闭”,默认值:“打开”) - description (可选字符串):里程碑描述 - due_on (可选字符串):到期日期(ISO 8601格式:YYYY-MM-DTHH:MM:SSZ)

  • 返回:已创建里程碑详细信息
  1. get_milestone
  • 获取存储库的单个里程碑
  • 输入:

- owner (string):存储库所有者 - repo (string):存储库名称 - milestone_number (编号):里程碑编号

  • 返回:里程碑详细信息
  1. update_milestone
  • 更新存储库的现有里程碑
  • 输入:

- owner (string):存储库所有者 - repo (string):存储库名称 - milestone_number (编号):要更新的里程碑编号 - title (可选字符串):新标题 - state (可选字符串):新状态(“打开”或“关闭”) - description (可选字符串):新描述 - due_on (可选字符串):新的截止日期(ISO 8601格式)

  • 返回:更新的里程碑详细信息
  1. delete_milestone
  • 从存储库中删除里程碑
  • 输入:

- owner (string):存储库所有者 - repo (string):存储库名称 - milestone_number (number):要删除的里程碑编号

  • 返回:成功状态(通常为204无内容)

搜索查询语法

代码搜索

  • language:javascript:按编程语言搜索
  • repo:owner/name:在特定存储库中搜索
  • path:app/src:在特定路径中搜索
  • extension:js:按文件扩展名搜索
  • 例子: q: "import express" language:typescript path:src/

问题搜索

  • is:issueis:pr:按类型筛选
  • is:openis:closed:按州筛选
  • label:bug:按标签搜索
  • author:username:按作者搜索
  • 例子: q: "memory leak" is:issue is:open label:bug

用户搜索

  • type:usertype:org:按帐户类型筛选
  • followers:>1000:按关注者筛选
  • location:London:按位置搜索
  • 例子: q: "fullstack developer" location:London followers:>100

有关详细的搜索语法,请参阅 .

设置

个人访问令牌

具有适当的权限:

  • 首选 个人访问令牌 (在GitHub设置>开发者设置中)
  • 选择您希望此令牌访问的存储库(公共、全部或选择)
  • 使用创建令牌 repo 范围(“完全控制私有存储库”)

- 或者,如果仅使用公共存储库,请仅选择 public_repo 范围

  • 复制生成的令牌

使用Claude Desktop

要在Claude Desktop中使用此功能,请将以下内容添加到您的 claude_desktop_config.json:

码头工人

{
  "mcpServers": {
    "github": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "GITHUB_PERSONAL_ACCESS_TOKEN",
        "mcp/github"
      ],
      "env": {
        "GITHUB_PERSONAL_ACCESS_TOKEN": ""
      }
    }
  }
}

NPX

{
  "mcpServers": {
    "github": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-github"
      ],
      "env": {
        "GITHUB_PERSONAL_ACCESS_TOKEN": ""
      }
    }
  }
}

构建

Docker构建:

docker build -t mcp/github -f src/github/Dockerfile .

许可证

此MCP服务器根据MIT许可证获得许可。这意味着您可以根据MIT许可证的条款和条件自由使用、修改和分发软件。有关更多详细信息,请参阅项目存储库中的LICENSE文件。

目录标签

目录标签

仓库管理TypeScriptClaude代码管理GitHubAPI本地部署搜索功能开发者工具

支持客户端

Claude DesktopClaude

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

none

工具数量(toolCount,工具数)

46

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明none部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP