mcpField
G
GitHub

GitHub

本地服务
github.com/aifity版本控制111 周前更新

关于 GitHub

Omnigit GitHub & Local Git MCP Server 将 AI 工具连接到 GitHub 和本地仓库。它涵盖仓库检索、议题与拉取请求管理、CI 工作流和 Git 操作,并加入评论编辑与可配置的内容过滤。

主要功能

  1. 01浏览仓库并搜索代码
  2. 02创建和管理议题与拉取请求
  3. 03查看工作流运行和发布
  4. 04检查安全发现和团队活动
  5. 05在本地仓库执行 Git 操作
  6. 06编辑议题和评审评论

适用场景

  1. 01查找文件并了解仓库结构
  2. 02分流议题并评审拉取请求
  3. 03调查 GitHub Actions 运行失败
  4. 04管理本地 Git 仓库中的变更

MCP 相关

通过托管的远程服务或本地运行的服务,向 MCP 客户端提供 GitHub 和本地 Git 功能工具。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"aifity-omnigit": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/aifity/omnigit-mcp:0.6.0"
]
}
}
}
启动命令docker run -i --rm ghcr.io/aifity/omnigit-mcp:0.6.0

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
ocighcr.io/aifity/omnigit-mcp:0.6.0

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

Go Report Card

Omnigit GitHub 与本地 Git MCP 服务

Omnigit GitHub 与本地 Git MCP 服务可将 AI 工具直接连接到 GitHub 平台。借助它,AI Agent、助手和聊天机器人能够读取代码仓库和代码文件、管理议题和 PR、分析代码并自动执行工作流。所有操作都可通过自然语言交互完成。

使用场景
  • 代码仓库管理:浏览和查询代码、搜索文件、分析提交,并了解你有权访问的任意代码仓库的项目结构。
  • 议题和 PR 自动化:创建、更新和管理议题与拉取请求。让 AI 协助分类 Bug、审查代码更改并维护项目看板。
  • CI/CD 与工作流智能:监控 GitHub Actions 工作流运行情况、分析构建失败、管理版本发布,并洞察开发流水线。
  • 代码分析:检查安全问题、审查 Dependabot 警报、了解代码模式,并全面洞察代码库。
  • 团队协作:访问讨论、管理通知、分析团队活动,并简化团队流程。

专为希望将 AI 工具连接到 GitHub 上下文和功能的开发者打造,支持从简单的自然语言查询到复杂的多步骤 Agent 工作流。


与上游版本的分支差异

这是 github/github-mcp-server 的一个分支,包含以下新增功能和改进。

如需查看维护中的回移清单,请参阅 与上游版本的分支差异。

改进审查评论 ID 的解析

get_review_comments 现在会为每个评论节点返回 CommentID 字段(即 GraphQL 中的 databaseId),以及 GraphQL NodeID 和 DatabaseID。调用 add_reply_to_pull_request_comment 或 pull_request_comment_write 时,应使用此 CommentID 数字 ID。此前只会返回不透明的 Base64 GraphQL 节点 ID,导致模型不得不对其解码,或从评论 URL 中提取数字 ID。现在,这些工具中的 commentId / comment_id 参数说明已明确指出应使用 CommentID 字段。

议题评论管理(issue_comment_write)

新增的 issue_comment_write 工具可让 AI Agent 更新或删除现有议题评论。此前只有用于创建评论的 add_issue_comment 工具。

PR 审查评论管理(pull_request_comment_write)

新增的 pull_request_comment_write 工具可让 AI Agent 更新或删除现有拉取请求审查评论。

正文过滤(filter_patterns)

发送到 GitHub 之前,会先过滤议题正文、PR 正文和本地 Git 提交消息。默认情况下,会移除 Co-Authored-By: 结尾行和通用的 AI 生成 PR 页脚。可通过 omnigit-mcp-config.json 中的 filter_patterns 完全自定义过滤列表。详情请参阅 国际化 / 覆盖说明。

本地 Git 工具集(local_git)

提供一整套用于操作本地代码仓库、无需经过 GitHub API 的 git_* 工具:git_add、git_apply_patch_file、git_apply_patch_string、git_checkout、git_commit、git_create_branch、git_diff、git_diff_staged、git_diff_unstaged、git_init、git_list_repositories、git_log、git_pull、git_push、git_reset、git_show 和 git_status。


远程 GitHub MCP 服务

在 VS Code 中安装 在 VS Code Insiders 中安装 在 Visual Studio 中安装

远程 GitHub MCP 服务由 GitHub 托管,是最简单的快速上手方式。如果你的 MCP 主机不支持远程 MCP 服务,也不用担心!你可以改用 GitHub MCP 服务的本地版本。

先决条件
  1. 兼容且支持远程服务的 MCP 主机(VS Code 1.101+、Claude Desktop、Cursor、Windsurf 等)
  2. 已启用所有适用的策略
在 VS Code 中安装

若要快速安装,请使用上方任意一个一键安装按钮。完成安装流程后,切换到 Agent 模式(位于 Copilot Chat 文本输入框旁),服务便会启动。请确保使用 VS Code 1.101 或更高版本,以支持远程 MCP 和 OAuth。

或者,若要手动配置 VS Code,请从以下示例中选择合适的 JSON 代码块,并将其添加到主机配置中:

使用 OAuth使用 GitHub PAT
VS Code(版本 1.101 或更高版本)
{
  "servers": {
    "github": {
      "type": "http",
      "url": "https://api.githubcopilot.com/mcp/"
    }
  }
}
{
  "servers": {
    "github": {
      "type": "http",
      "url": "https://api.githubcopilot.com/mcp/",
      "headers": {
        "Authorization": "Bearer ${input:github_mcp_pat}"
      }
    }
  },
  "inputs": [
    {
      "type": "promptString",
      "id": "github_mcp_pat",
      "description": "GitHub Personal Access Token",
      "password": true
    }
  ]
}
在其他 MCP 主机中安装

注意: 每个 MCP 主机应用都需要配置 GitHub App 或 OAuth App,才能通过 OAuth 支持远程访问。任何支持远程 MCP 服务的主机应用,都应支持使用 PAT 身份验证连接远程 GitHub 服务。不同主机的配置详情和支持级别各不相同。请参阅主机应用的文档了解更多信息。

配置
工具集配置

有关远程服务配置、工具集、标头和高级用法的完整详情,请参阅远程服务文档。此文件提供了全面的说明和示例,介绍如何在 VS Code 和其他 MCP 主机中连接、定制和安装远程 GitHub MCP 服务。

如果未指定工具集,则使用默认工具集。

Insiders 模式

抢先体验新功能! 远程服务提供 Insiders 版本,可抢先体验新功能和实验性工具。

使用 URL 路径使用标头
{
  "servers": {
    "github": {
      "type": "http",
      "url": "https://api.githubcopilot.com/mcp/insiders"
    }
  }
}
{
  "servers": {
    "github": {
      "type": "http",
      "url": "https://api.githubcopilot.com/mcp/",
      "headers": {
        "X-MCP-Insiders": "true"
      }
    }
  }
}

如需了解更多详情和示例,请参阅远程服务文档;如需查看可用功能的完整列表,请参阅 Insiders 功能。

GitHub Enterprise
具有数据驻留功能的 GitHub Enterprise Cloud(ghe.com)

GitHub Enterprise Cloud 也可以使用远程服务。

以下示例适用于 https://octocorp.ghe.com 和 GitHub PAT 令牌:

{
    ...
    "github-octocorp": {
      "type": "http",
      "url": "https://copilot-api.octocorp.ghe.com/mcp",
      "headers": {
        "Authorization": "Bearer ${input:github_mcp_pat}"
      }
    },
    ...
}

注意: 在 VS Code 和 GitHub Copilot 中使用 GitHub Enterprise 的 OAuth 时,还需要配置 VS Code 设置,使其指向你的 GitHub Enterprise 实例——请参阅从 VS Code 进行身份验证

GitHub Enterprise Server

GitHub Enterprise Server 不支持托管远程服务。请参阅本地服务配置中的GitHub Enterprise Server 和具有数据驻留功能的 Enterprise Cloud(ghe.com)。


本地 GitHub MCP 服务

在 VS Code 中使用 Docker 安装 在 VS Code Insiders 中使用 Docker 安装 在 Visual Studio 中使用 Docker 安装

先决条件
  1. 要在容器中运行服务,你需要安装 Docker。

  2. 安装 Docker 后,还需要确保 Docker 正在运行。Docker 镜像位于 ghcr.io/aifity/omnigit-mcp。该镜像是公开的;如果拉取时出错,你的令牌可能已过期,需要运行 docker logout ghcr.io。

  3. 身份验证。 在 github.com 上,你无需预先创建任何内容——上方的一键按钮会在首次使用时通过 OAuth 为你登录(基于浏览器的流程;令牌仅保存在内存中)。Docker 按钮会发布一个固定的回调端口(127.0.0.1:8085),以便容器能够接收登录回调。请参阅 本地服务 OAuth 登录,了解其工作方式、无头环境/设备代码备用方案,以及如何使用自带的 OAuth 或 GitHub App(GitHub Enterprise Server 和 ghe.com 必须使用)。

    更倾向于使用令牌?你仍可通过设置 GITHUB_PERSONAL_ACCESS_TOKEN,使用 GitHub 个人访问令牌进行身份验证(其优先级高于 OAuth)。MCP 服务可以使用许多 GitHub API,因此请启用你愿意授予 AI 工具的权限(如需了解有关访问令牌的更多信息,请参阅文档)。

安全处理 PAT
环境变量(推荐)

要确保 GitHub PAT 安全,并能在不同的 MCP 宿主之间重复使用:

  1. 将 PAT 存储在环境变量中

    export GITHUB_PAT=your_token_here
    

    或创建 .env 文件:

    GITHUB_PAT=your_token_here
    
  2. 保护 .env 文件

    # Add to .gitignore to prevent accidental commits
    echo ".env" >> .gitignore
    
  3. 在配置中引用令牌

    # CLI usage
    claude mcp add github -e GITHUB_PERSONAL_ACCESS_TOKEN=$GITHUB_PAT -- docker run -i --rm -e GITHUB_PERSONAL_ACCESS_TOKEN ghcr.io/aifity/omnigit-mcp
    
    # In config files (where supported)
    "env": {
      "GITHUB_PERSONAL_ACCESS_TOKEN": "$GITHUB_PAT"
    }
    

注意:宿主应用和 IDE 对环境变量的支持各不相同。一些应用(如 Windsurf)要求在配置文件中硬编码令牌。

令牌安全最佳实践
  • 最小权限范围:仅授予必要的权限

    • repo - 仓库操作
    • read:packages - Docker 镜像访问
    • read:org - 组织团队访问
  • 使用独立令牌:为不同项目/环境使用不同的 PAT

  • 定期轮换:定期更新令牌

  • 切勿提交:不要将令牌提交到版本控制中

  • 文件权限:限制对包含令牌的配置文件的访问

    chmod 600 ~/.your-app/config.json
    
GitHub Enterprise Server 和具有数据驻留功能的 Enterprise Cloud(ghe.com)

标志 --gh-host 和环境变量 GITHUB_HOST 可用于设置 GitHub Enterprise Server 或具有数据驻留功能的 GitHub Enterprise Cloud 的主机名。

  • 对于 GitHub Enterprise Server,请在主机名前加上 https:// URI 方案,否则默认使用 http://,而 GitHub Enterprise Server 不支持该方案。
  • 对于具有数据驻留功能的 GitHub Enterprise Cloud,请使用 https://YOURSUBDOMAIN.ghe.com 作为主机名。
"github": {
    "command": "docker",
    "args": [
    "run",
    "-i",
    "--rm",
    "-e",
    "GITHUB_PERSONAL_ACCESS_TOKEN",
    "-e",
    "GITHUB_HOST",
    "ghcr.io/aifity/omnigit-mcp"
    ],
    "env": {
        "GITHUB_PERSONAL_ACCESS_TOKEN": "${input:github_token}",
        "GITHUB_HOST": "https://<your GHES or ghe.com domain name>"
    }
}

安装

在 VS Code 的 GitHub Copilot 中安装

如需快速安装,请使用上方任一一键安装按钮。完成此流程后,切换到 Agent 模式(位于 Copilot Chat 文本输入框旁),服务便会启动。

有关在 VS Code 的 Agent 模式文档中使用 MCP 服务工具的更多信息。

在其他 IDE(JetBrains、Visual Studio、Eclipse 等)的 GitHub Copilot 中安装

将以下某个 JSON 代码块添加到 IDE 的 MCP 设置中。

使用 OAuth 登录(无需创建或存储令牌)。 在 github.com 上,官方镜像已包含应用凭据,因此你无需自行提供:首次使用时,它会在浏览器中运行登录流程,并且仅在内存中保留生成的令牌。在 Docker 中,需要发布一个固定的回调端口并绑定到环回地址,以便容器能够接收登录回调:

{
  "mcp": {
    "servers": {
      "github": {
        "command": "docker",
        "args": [
          "run",
          "-i",
          "--rm",
          "-p",
          "127.0.0.1:8085:8085",
          "-e",
          "GITHUB_OAUTH_CALLBACK_PORT",
          "ghcr.io/aifity/omnigit-mcp"
        ],
        "env": {
          "GITHUB_OAUTH_CALLBACK_PORT": "8085"
        }
      }
    }
  }
}

请参阅 本地服务 OAuth 登录,了解原生二进制文件流程(无需固定端口)、无头设备码回退方案、GitHub Enterprise Server / ghe.com,以及使用你自己的 OAuth 或 GitHub App。

或者使用个人访问令牌进行身份验证。 改为设置 GITHUB_PERSONAL_ACCESS_TOKEN(其优先级高于 OAuth):

{
  "mcp": {
    "inputs": [
      {
        "type": "promptString",
        "id": "github_token",
        "description": "GitHub Personal Access Token",
        "password": true
      }
    ],
    "servers": {
      "github": {
        "command": "docker",
        "args": [
          "run",
          "-i",
          "--rm",
          "-e",
          "GITHUB_PERSONAL_ACCESS_TOKEN",
          "ghcr.io/aifity/omnigit-mcp"
        ],
        "env": {
          "GITHUB_PERSONAL_ACCESS_TOKEN": "${input:github_token}"
        }
      }
    }
  }
}

你也可以选择将类似示例(即不含 mcp 键)添加到工作区中名为 .vscode/mcp.json 的文件。这样便可以与其他接受相同格式的宿主应用共享此配置。

不含 MCP 键的 JSON 代码块示例
{
  "inputs": [
    {
      "type": "promptString",
      "id": "github_token",
      "description": "GitHub Personal Access Token",
      "password": true
    }
  ],
  "servers": {
    "github": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "GITHUB_PERSONAL_ACCESS_TOKEN",
        "ghcr.io/aifity/omnigit-mcp"
      ],
      "env": {
        "GITHUB_PERSONAL_ACCESS_TOKEN": "${input:github_token}"
      }
    }
  }
}
在其他 MCP 宿主中安装

对于其他 MCP 宿主应用,请参阅我们的安装指南:

如需全面了解所有安装选项,请参阅 安装指南索引。

注意: 任何支持本地 MCP 服务的宿主应用都应该能够访问本地 GitHub MCP 服务。不过,具体的配置流程、语法和集成稳定性会因宿主应用而异。虽然许多应用可能会采用与上述示例类似的格式,但这并无保证。请参阅宿主应用的文档,了解正确的 MCP 配置语法和设置流程。

从源代码构建

如果你没有 Docker,可以使用 go build 在 cmd/omnigit-mcp 目录中构建二进制文件,并在设置 GITHUB_PERSONAL_ACCESS_TOKEN 环境变量为你的令牌后,使用 omnigit-mcp stdio 命令。如需指定构建输出位置,请使用 -o 标志。你应将服务配置为使用构建好的可执行文件作为其 command。例如:

{
  "mcp": {
    "servers": {
      "github": {
        "command": "/path/to/omnigit-mcp",
        "args": ["stdio"],
        "env": {
          "GITHUB_PERSONAL_ACCESS_TOKEN": "<YOUR_TOKEN>"
        }
      }
    }
  }
}
CLI 实用工具

omnigit-mcp 二进制文件包含一些 CLI 子命令,可用于调试和探索服务。

  • omnigit-mcp tool-search "<query>" 按名称、描述和输入参数名称搜索工具。使用 --max-results 返回更多匹配项。 示例(彩色输出需要 TTY;在 Docker 中运行时使用 docker run -t(或 -it)):
docker run -it --rm ghcr.io/aifity/omnigit-mcp tool-search "issue" --max-results 5
omnigit-mcp tool-search "issue" --max-results 5

工具配置

GitHub MCP 服务支持通过 --toolsets 标志启用或禁用特定功能组。这样,你可以控制 AI 工具能够使用哪些 GitHub API 功能。仅启用所需的工具集,有助于大模型选择工具并缩小上下文大小。

工具集不局限于工具。在适用情况下,还会包含相关的 MCP 资源和提示词。

未指定工具集时,将使用默认工具集。

想看示例? 请参阅服务配置指南,了解精简配置、只读模式以及组合使用工具和工具集等常见方案。

指定工具集

要指定大模型可用的工具集,可以通过以下两种方式传入允许列表:

  1. 使用命令行参数:

    omnigit-mcp --toolsets repos,issues,pull_requests,actions,code_security
    
  2. 使用环境变量:

    GITHUB_TOOLSETS="repos,issues,pull_requests,actions,code_security" ./omnigit-mcp
    

如果同时提供了环境变量 GITHUB_TOOLSETS 和命令行参数,则环境变量优先。

指定单个工具

你也可以使用 --tools 标志配置特定工具。工具可以独立使用,也可以与工具集组合使用,以实现精细控制。

  1. 使用命令行参数:

    omnigit-mcp --tools get_file_contents,issue_read,create_pull_request
    
  2. 使用环境变量:

    GITHUB_TOOLS="get_file_contents,issue_read,create_pull_request" ./omnigit-mcp
    
  3. 与工具集组合使用(叠加):

    omnigit-mcp --toolsets repos,issues --tools get_gist
    

    这会注册 repos 和 issues 工具集中的所有工具,以及 get_gist。

重要说明:

  • 工具和工具集可以一起使用
  • 只读模式优先级更高:如果设置了 --read-only,即使通过 --tools 明确请求写入工具,也会跳过这些工具
  • 工具名称必须完全匹配(例如,get_file_contents,而不是 getFileContents)。无效的工具名称会导致服务启动失败并显示错误消息
  • 工具重命名时,会保留旧名称作为别名,以确保向后兼容。详情请参阅工具重命名。
在 Docker 中使用工具集

使用 Docker 时,可以通过环境变量传入工具集:

docker run -i --rm \
  -e GITHUB_PERSONAL_ACCESS_TOKEN=<your-token> \
  -e GITHUB_TOOLSETS="repos,issues,pull_requests,actions,code_security" \
  ghcr.io/aifity/omnigit-mcp
在 Docker 中使用工具

使用 Docker 时,可以通过环境变量传入特定工具。也可以将工具与工具集组合使用:

# Tools only
docker run -i --rm \
  -e GITHUB_PERSONAL_ACCESS_TOKEN=<your-token> \
  -e GITHUB_TOOLS="get_file_contents,issue_read,create_pull_request" \
  ghcr.io/aifity/omnigit-mcp

# Tools combined with toolsets (additive)
docker run -i --rm \
  -e GITHUB_PERSONAL_ACCESS_TOKEN=<your-token> \
  -e GITHUB_TOOLSETS="repos,issues" \
  -e GITHUB_TOOLS="get_gist" \
  ghcr.io/aifity/omnigit-mcp
特殊工具集
"all" 工具集

可以提供特殊工具集 all,以启用所有可用工具集,无论其他配置如何:

./omnigit-mcp --toolsets all

也可以使用环境变量:

GITHUB_TOOLSETS="all" ./omnigit-mcp
"default" 工具集

默认工具集 default 是未指定工具集时传递给服务的配置。

默认配置为:

  • context
  • repos
  • issues
  • pull_requests
  • users

要保留默认配置并添加其他工具集:

GITHUB_TOOLSETS="default,stargazers" ./omnigit-mcp
Insiders 模式

本地 GitHub MCP 服务提供 Insiders 版本,可提前体验新功能和实验性工具。

  1. 使用命令行参数:

    ./omnigit-mcp --insiders
    
  2. 使用环境变量:

    GITHUB_INSIDERS=true ./omnigit-mcp
    

使用 Docker 时:

docker run -i --rm \
  -e GITHUB_PERSONAL_ACCESS_TOKEN=<your-token> \
  -e GITHUB_INSIDERS=true \
  ghcr.io/aifity/omnigit-mcp
可用工具集

以下工具集可供使用:

ToolsetDescription
人物context强烈推荐:提供当前用户以及你正在操作的 GitHub 上下文的工具
工作流actionsGitHub Actions 工作流和 CI/CD 操作
代码方块code_quality与 GitHub Code Quality 相关的工具
代码扫描code_security与代码安全相关的工具,例如 GitHub Code Scanning
Copilotcopilot与 Copilot 相关的工具
DependabotdependabotDependabot 工具
讨论评论discussions与 GitHub Discussions 相关的工具
Gist 标志gists与 GitHub Gist 相关的工具
Git 分支git用于低级 Git 操作的 GitHub Git API 相关工具
已打开的问题issues与 GitHub Issues 相关的工具
标签labels与 GitHub Labels 相关的工具
Git 分支local_git本地 Git 仓库操作——处理本机上的 Git 仓库(状态、差异、提交、推送、拉取、分支等)
铃铛notifications与 GitHub Notifications 相关的工具
组织orgs与 GitHub Organization 相关的工具
项目projects与 GitHub Projects 相关的工具
拉取请求pull_requests与 GitHub Pull Request 相关的工具
仓库repos与 GitHub Repository 相关的工具
带锁盾牌secret_protection与机密保护相关的工具,例如 GitHub Secret Scanning
盾牌security_advisories与安全公告相关的工具
星标stargazers与 GitHub Stargazers 相关的工具
人物users与 GitHub User 相关的工具
远程 GitHub MCP 服务中的其他工具集
工具集描述
copilotCopilot 相关工具(例如 Copilot Coding Agent)
copilot_spacesCopilot Spaces 相关工具
github_support_docs_search搜索文档,以解答有关 GitHub 产品和支持的问题

工具

workflow Actions
  • actions_get - 获取 GitHub Actions 资源(工作流、工作流运行、作业和构件)的详细信息

    • Required OAuth Scopes:repo
    • method:要执行的方法(字符串,必填)
    • owner:仓库所有者(字符串,必填)
    • repo:仓库名称(字符串,必填)
    • resource_id:资源的唯一标识符。其值因提供的“method”而异,因此请确保提供正确的 ID:
      • 对于 'get_workflow' 方法,请提供工作流 ID 或工作流文件名(例如 ci.yaml)。
      • 对于 'get_workflow_run'、'get_workflow_run_usage' 和 'get_workflow_run_logs_url' 方法,请提供工作流运行 ID。
      • 对于 'download_workflow_run_artifact' 方法,请提供构件 ID。
      • 对于 'get_workflow_job' 方法,请提供作业 ID。 (字符串,必填)
  • actions_list - 列出仓库中的 GitHub Actions 工作流

    • Required OAuth Scopes:repo
    • method:要执行的操作(字符串,必填)
    • owner:仓库所有者(字符串,必填)
    • page:分页页码(默认值:1)(数字,可选)
    • per_page:每页结果数(默认值:30,最大值:100)(数字,可选)
    • repo:仓库名称(字符串,必填)
    • resource_id:资源的唯一标识符。其值因提供的“method”而异,因此请确保提供正确的 ID:
      • 对于 'list_workflows' 方法,无需提供资源 ID。
      • 对于 'list_workflow_runs' 方法,请提供工作流 ID 或工作流文件名(例如 ci.yaml);也可以省略,以列出仓库中的所有工作流运行。
      • 对于 'list_workflow_jobs' 和 'list_workflow_run_artifacts' 方法,请提供工作流运行 ID。 (字符串,可选)
    • workflow_jobs_filter:工作流作业的筛选条件。ONLY 用于 method 为 'list_workflow_jobs' 时(对象,可选)
    • workflow_runs_filter:工作流运行的筛选条件。ONLY 用于 method 为 'list_workflow_runs' 时(对象,可选)
  • actions_run_trigger - 触发 GitHub Actions 工作流操作

    • Required OAuth Scopes:repo
    • inputs:工作流接受的输入。仅用于 'run_workflow' 方法。(对象,可选)
    • method:要执行的方法(字符串,必填)
    • owner:仓库所有者(字符串,必填)
    • ref:工作流的 Git 引用。可以是分支或标签名称。'run_workflow' 方法必填。(字符串,可选)
    • repo:仓库名称(字符串,必填)
    • run_id:工作流运行的 ID。除 'run_workflow' 外的所有方法均必填。(数字,可选)
    • workflow_id:工作流 ID(数字)或工作流文件名(例如 main.yml、ci.yaml)。'run_workflow' 方法必填。(字符串,可选)
  • get_job_logs - 获取 GitHub Actions 工作流作业日志

    • 所需 OAuth 权限范围:repo
    • failed_only:为 true 时,获取指定 run_id 的工作流运行中所有失败作业的日志。需要提供 run_id。(boolean,可选)
    • job_id:工作流作业的唯一标识符。获取单个作业的日志时必填。(number,可选)
    • owner:仓库所有者(string,必填)
    • repo:仓库名称(string,必填)
    • return_content:返回实际日志内容而非 URL(boolean,可选)
    • run_id:工作流运行的唯一标识符。failed_only 为 true 时,获取该运行中所有失败作业的日志需要此参数。(number,可选)
    • tail_lines:从日志末尾返回的行数(number,可选)
代码方块 代码质量
  • get_code_quality_finding - 获取代码质量问题
    • 所需 OAuth 权限范围:repo
    • findingNumber:问题编号。(number,必填)
    • owner:仓库所有者。(string,必填)
    • repo:仓库名称。(string,必填)
代码扫描 代码安全
  • get_code_scanning_alert - 获取代码扫描警报

    • 所需 OAuth 权限范围:security_events
    • 接受的 OAuth 权限范围:repo、security_events
    • alertNumber:警报编号。(number,必填)
    • owner:仓库所有者。(string,必填)
    • repo:仓库名称。(string,必填)
  • list_code_scanning_alerts - 列出代码扫描警报

    • 所需 OAuth 权限范围:security_events
    • 接受的 OAuth 权限范围:repo、security_events
    • owner:仓库所有者。(string,必填)
    • page:分页页码(最小值为 1)(number,可选)
    • perPage:每页结果数(最小值为 1,最大值为 100)(number,可选)
    • ref:要列出结果对应的 Git 引用。(string,可选)
    • repo:仓库名称。(string,必填)
    • severity:按严重程度筛选代码扫描警报(string,可选)
    • state:按状态筛选代码扫描警报。默认为 open(string,可选)
    • tool_name:用于代码扫描的工具名称。(string,可选)
人物 上下文
  • get_me - 获取我的用户资料

    • 无需参数
  • get_team_members - 获取团队成员

    • 所需 OAuth 权限范围:read:org
    • 接受的 OAuth 权限范围:admin:org、read:org、write:org
    • org:包含该团队的组织登录名(所有者)。(string,必填)
    • team_slug:团队标识名(string,必填)
  • get_teams - 获取团队

    • 所需 OAuth 权限范围:read:org
    • 接受的 OAuth 权限范围:admin:org、read:org、write:org
    • user:要获取团队的用户名。若未提供,则使用已认证用户。(string,可选)
Copilot Copilot
  • assign_copilot_to_issue - 将 Copilot 分配给议题

    • Required OAuth Scopes:repo
    • base_ref:Agent 将从其开始工作的 Git 引用(例如,分支)。如果未指定,则默认为仓库的默认分支(字符串,可选)
    • custom_instructions:可选的自定义指令,用于根据议题正文为 Agent 提供更多指导。可用其提供议题描述中未包含的其他背景信息、约束或指导(字符串,可选)
    • issue_number:议题编号(数字,必填)
    • owner:仓库所有者(字符串,必填)
    • repo:仓库名称(字符串,必填)
  • request_copilot_review - 请求 Copilot 审查

    • Required OAuth Scopes:repo
    • owner:仓库所有者(字符串,必填)
    • pullNumber:拉取请求编号(数字,必填)
    • repo:仓库名称(字符串,必填)
Dependabot Dependabot
  • get_dependabot_alert - 获取 Dependabot 警报

    • Required OAuth Scopes:security_events
    • Accepted OAuth Scopes:repo、security_events
    • alertNumber:警报编号。(数字,必填)
    • owner:仓库所有者。(字符串,必填)
    • repo:仓库名称。(字符串,必填)
  • list_dependabot_alerts - 列出 Dependabot 警报

    • Required OAuth Scopes:security_events
    • Accepted OAuth Scopes:repo、security_events
    • after:用于分页的游标。使用上一次响应中的游标。(字符串,可选)
    • owner:仓库所有者。(字符串,必填)
    • perPage:每页结果数(最小值 1,最大值 100)(数字,可选)
    • repo:仓库名称。(字符串,必填)
    • severity:按严重程度筛选 Dependabot 警报(字符串,可选)
    • state:按状态筛选 Dependabot 警报。默认为 open(字符串,可选)
评论讨论 讨论 - **discussion_comment_write** - 管理讨论评论 - **所需 OAuth 范围**:`repo` - `body`:评论内容('add'、'reply' 和 'update' 方法必需)(字符串,可选) - `commentNodeID`:讨论评论的 Node ID('reply'、'update'、'delete'、'mark_answer' 和 'unmark_answer' 方法必需)。对于 'reply',这是要回复的顶级评论;GitHub Discussions 仅支持一级嵌套。(字符串,可选) - `discussionNumber`:讨论编号('add' 和 'reply' 方法必需)(数字,可选) - `method`:要对讨论评论执行的写入操作。 可选项: - 'add' - 向讨论添加新的顶级评论。 - 'reply' - 回复顶级讨论评论(GitHub Discussions 仅支持一级嵌套)。 - 'update' - 更新现有讨论评论。 - 'delete' - 删除讨论评论。 - 'mark_answer' - 将讨论评论标记为答案(仅适用于问答)。 - 'unmark_answer' - 取消将讨论评论标记为答案(仅适用于问答)。 (字符串,必需) - `owner`:仓库所有者('add' 和 'reply' 方法必需)(字符串,可选) - `repo`:仓库名称('add' 和 'reply' 方法必需)(字符串,可选)
  • get_discussion - 获取讨论

    • 所需 OAuth 范围:repo
    • discussionNumber:讨论编号(数字,必需)
    • owner:仓库所有者(字符串,必需)
    • repo:仓库名称(字符串,必需)
  • get_discussion_comments - 获取讨论评论

    • 所需 OAuth 范围:repo
    • after:用于分页的游标。使用上一条响应中的游标。(字符串,可选)
    • discussionNumber:讨论编号(数字,必需)
    • includeReplies:为 true 时,每条顶级评论都会包含嵌套在其中的回复(每条评论最多 100 条回复,这是 GitHub API 的上限)。默认值为 false。(布尔值,可选)
    • owner:仓库所有者(字符串,必需)
    • perPage:每页结果数(最小值 1,最大值 100)(数字,可选)
    • repo:仓库名称(字符串,必需)
  • list_discussion_categories - 列出讨论类别

    • 所需 OAuth 范围:repo
    • owner:仓库所有者(字符串,必需)
    • repo:仓库名称。如果未提供,则会在组织级别查询讨论类别。(字符串,可选)
  • list_discussions - 列出讨论

    • 所需 OAuth 范围:repo
    • after:用于分页的游标。使用上一条响应中的游标。(字符串,可选)
    • category:按讨论类别 ID 筛选(可选)。如果提供,则仅列出属于该类别的讨论。(字符串,可选)
    • direction:排序方向。(字符串,可选)
    • orderBy:按字段对讨论排序。如果提供,则还需提供 'direction'。(字符串,可选)
    • owner:仓库所有者(字符串,必需)
    • perPage:每页结果数(最小值 1,最大值 100)(数字,可选)
    • repo:仓库名称。如果未提供,则会在组织级别查询讨论。(字符串,可选)
gist 标志 Gists
  • create_gist - 创建 Gist

    • 所需 OAuth 范围:gist
    • content:用于创建简单单文件 gist 的内容(字符串,必需)
    • description:gist 的描述(字符串,可选)
    • filename:用于创建简单单文件 gist 的文件名(字符串,必需)
    • public:gist 是否公开(布尔值,可选)
  • get_gist - 获取 Gist 内容

    • gist_id:gist 的 ID(字符串,必需)
  • list_gists - 列出 Gist

    • page:分页的页码(最小值为 1)(数字,可选)
    • perPage:分页的每页结果数(最小值为 1,最大值为 100)(数字,可选)
    • since:仅列出此时间之后更新的 Gist(ISO 8601 时间戳)(字符串,可选)
    • username:GitHub 用户名(省略时列出已认证用户的 Gist)(字符串,可选)
  • update_gist - 更新 Gist

    • 必需的 OAuth 作用域:gist
    • content:文件内容(字符串,必需)
    • description:更新后的 Gist 描述(字符串,可选)
    • filename:要更新或创建的文件名(字符串,必需)
    • gist_id:要更新的 Gist ID(字符串,必需)
git-branch Git
  • get_repository_tree - 获取仓库树
    • 必需的 OAuth 作用域:repo
    • owner:仓库所有者(用户名或组织)(字符串,必需)
    • path_filter:用于筛选树结果的可选路径前缀(例如,使用 'src/' 仅显示 src 目录中的文件)(字符串,可选)
    • recursive:将此参数设为 true 时,会返回树引用的对象或子树。默认值为 false(布尔值,可选)
    • repo:仓库名称(字符串,必需)
    • tree_sha:树的 SHA1 值或引用(分支或标签)名称。默认为仓库的默认分支(字符串,可选)
issue-opened Issues
  • add_issue_comment - 为 Issue 或拉取请求添加评论

    • 必需的 OAuth 作用域:repo
    • body:评论内容。除非提供 reaction,否则必需。(字符串,可选)
    • comment_id:要添加 reaction 的 Issue 或拉取请求评论的数字 ID。对评论添加 reaction 时使用此参数;对 Issue 或拉取请求本身添加 reaction 时省略此参数。不能与 body 同时使用。(数字,可选)
    • issue_number:要评论或添加 reaction 的 Issue 或拉取请求编号。(数字,必需)
    • owner:仓库所有者(字符串,必需)
    • reaction:要添加的表情 reaction。除非提供 body,否则必需。(字符串,可选)
    • repo:仓库名称(字符串,必需)
  • get_label - 获取仓库中的指定标签

    • 必需的 OAuth 作用域:repo
    • name:标签名称。(字符串,必需)
    • owner:仓库所有者(用户名或组织名称)(字符串,必需)
    • repo:仓库名称(字符串,必需)
  • issue_comment_write - 更新或删除 Issue 评论

    • 必需的 OAuth 作用域:repo
    • body:新评论内容(更新操作必需)(字符串,可选)
    • comment_id:要更新或删除的评论 ID(数字,必需)
    • method:要对评论执行的写入操作。 可选项:
      • 'update' - 更新现有评论。
      • 'delete' - 删除现有评论。 (字符串,必需)
    • owner:仓库所有者(字符串,必需)
    • repo:仓库名称(字符串,必需)
  • issue_read - 获取议题详情

    • 所需 OAuth 权限范围:repo
    • issue_number:议题编号(数字,必填)
    • method:对单个议题执行的读取操作。 可选项:
      1. get - 获取议题详情。还会尽力返回层级标记(has_parent、has_children);parent 和 sub_issues_summary 是可选的关系摘要。
      2. get_comments - 获取议题评论。
      3. get_sub_issues - 获取该议题的子议题。
      4. get_parent - 如果该议题是另一个议题的子议题,则获取其父议题。
      5. get_labels - 获取分配给该议题的标签。 (字符串,必填)
    • owner:仓库所有者(字符串,必填)
    • page:分页页码(最小值 1)(数字,可选)
    • perPage:每页结果数(最小值 1,最大值 100)(数字,可选)
    • repo:仓库名称(字符串,必填)
  • issue_write - 创建或更新议题/拉取请求

    • 所需 OAuth 权限范围:repo
    • assignees:分配给此议题的用户名(字符串数组,可选)
    • body:议题正文内容(字符串,可选)
    • duplicate_of:此议题重复对应的议题编号。仅当 state_reason 为 'duplicate' 时使用。(数字,可选)
    • issue_fields:要设置或清除的议题字段值。每项都必须包含 'field_name',且必须且只能包含 'value'、'field_option_name' 或 'delete: true' 中的一项。(对象数组,可选)
    • issue_number:要更新的议题编号(数字,可选)
    • labels:要应用于此议题的标签(字符串数组,可选)
    • method:对单个议题执行的写入操作。 可选项:
      • 'create' - 创建新议题。
      • 'update' - 更新现有议题。 (字符串,必填)
    • milestone:里程碑编号(数字,可选)
    • owner:仓库所有者(字符串,必填)
    • repo:仓库名称(字符串,必填)
    • state:新状态(字符串,可选)
    • state_reason:状态变更原因。仅当状态发生变更时使用。(字符串,可选)
    • title:议题标题(字符串,可选)
    • type:此议题的类型。仅当此仓库启用了议题类型时使用。使用 list_issue_types 工具获取此仓库或其所属组织的有效类型值。如果仓库不支持议题类型,请省略此参数。(字符串,可选)
  • list_issue_fields - 列出议题字段

    • 所需 OAuth 权限范围(任一):repo、read:org
    • 接受的 OAuth 权限范围:admin:org、read:org、repo、write:org
    • owner:仓库或组织的账户所有者。名称不区分大小写。(字符串,必填)
    • repo:仓库名称。提供时,返回此特定仓库的字段(继承自其组织)。省略时,直接返回组织级字段。(字符串,可选)
  • list_issue_types - 列出可用的议题类型

    • 所需 OAuth 权限范围(任一):repo、read:org
    • 接受的 OAuth 权限范围:admin:org、read:org、repo、write:org
    • owner:仓库或组织的账户所有者。(字符串,必填)
    • repo:仓库名称。提供时,返回此特定仓库的议题类型。省略时,直接返回组织级议题类型。(字符串,可选)
  • list_issues - 列出议题

    • Required OAuth Scopes:repo
    • after:用于分页的游标。使用上一次响应中的游标。(string,可选)
    • direction:排序方向。如果提供此项,也必须提供 'orderBy'。(string,可选)
    • field_filters:按自定义议题字段值筛选。每个条目包含 field_name 和 value;服务会查找该字段,并将值转换为对应类型(单选选项名称、文本、数字或 YYYY-MM-DD 日期)。(object[],可选)
    • labels:按标签筛选(string[],可选)
    • orderBy:按字段对议题排序。如果提供此项,也必须提供 'direction'。(string,可选)
    • owner:仓库所有者(string,必填)
    • perPage:每页结果数(用于分页,最小值 1,最大值 100)(number,可选)
    • repo:仓库名称(string,必填)
    • since:按日期筛选(ISO 8601 时间戳)(string,可选)
    • state:按状态筛选;未提供时,默认返回所有未关闭和已关闭的议题(string,可选)
  • search_issues - 搜索议题

    • Required OAuth Scopes:repo
    • order:排序顺序(string,可选)
    • owner:可选的仓库所有者。如果与 repo 一起提供,则仅列出此仓库的议题。(string,可选)
    • page:分页页码(最小值 1)(number,可选)
    • perPage:每页结果数(用于分页,最小值 1,最大值 100)(number,可选)
    • query:使用 GitHub 议题搜索语法的搜索查询(string,必填)
    • repo:可选的仓库名称。如果与 owner 一起提供,则仅列出此仓库的议题。(string,可选)
    • sort:排序字段,按类别匹配数量排序,默认为最佳匹配(string,可选)
  • sub_issue_write - 更改子议题

    • Required OAuth Scopes:repo
    • after_id:要排在其后的子议题 ID(必须指定 after_id 或 before_id)(number,可选)
    • before_id:要排在其前的子议题 ID(必须指定 after_id 或 before_id)(number,可选)
    • issue_number:父议题编号(number,必填)
    • method:对单个子议题执行的操作 选项包括:
      • 'add' - 将子议题添加到 GitHub 仓库中的父议题。
      • 'remove' - 从 GitHub 仓库中的父议题移除子议题。
      • 'reprioritize' - 更改 GitHub 仓库中父议题下子议题的顺序。使用 'after_id' 或 'before_id' 指定新位置。 写入议题层级关系。若要将子议题移至新的父议题,请使用 add 并设置 replace_parent=true;没有可写入的父级字段。 (string,必填)
    • owner:仓库所有者(string,必填)
    • replace_parent:为 true 时,替换子议题当前的父议题。仅与 'add' 方法一起使用。(boolean,可选)
    • repo:仓库名称(string,必填)
    • sub_issue_id:要添加的子议题 ID。ID 与议题编号不同(number,必填)
标签 标签
  • get_label - 获取仓库中的指定标签

    • Required OAuth Scopes:repo
    • name:标签名称。(string,必填)
    • owner:仓库所有者(用户名或组织名称)(string,必填)
    • repo:仓库名称(string,必填)
  • label_write - 仓库标签写入操作

    • Required OAuth Scopes:repo
    • color:标签颜色,使用 6 位十六进制代码,且不带「#」前缀(例如,'f29513')。「create」时必填,「update」时可选。(字符串,可选)
    • description:标签描述文本。「create」和「update」时均可选。(字符串,可选)
    • method:要执行的操作:「create」、「update」或「delete」(字符串,必填)
    • name:标签名称——所有操作均必填(字符串,必填)
    • new_name:标签的新名称(仅在使用「update」方法重命名时使用)(字符串,可选)
    • owner:仓库所有者(用户名或组织名称)(字符串,必填)
    • repo:仓库名称(字符串,必填)
  • list_label - 列出仓库标签

    • Required OAuth Scopes:repo
    • owner:仓库所有者(用户名或组织名称)——所有操作均必填(字符串,必填)
    • repo:仓库名称——所有操作均必填(字符串,必填)
git-branch 本地 Git
  • git_add - Git 添加

    • files:要暂存的文件路径列表,以逗号分隔(字符串,必填)
    • repo_path:Git 仓库的路径(如果已配置默认仓库,则可选)(字符串,可选)
  • git_add - Git 添加

    • files:要暂存的文件路径列表,以逗号分隔(字符串,必填)
    • repo_path:Git 仓库的路径(如果已配置默认仓库,则可选)(字符串,可选)
  • git_apply_patch_file - Git 应用补丁文件

    • patch_file:补丁文件的路径(字符串,必填)
    • repo_path:Git 仓库的路径(如果已配置默认仓库,则可选)(字符串,可选)
  • git_apply_patch_file - Git 应用补丁文件

    • patch_file:补丁文件的路径(字符串,必填)
    • repo_path:Git 仓库的路径(如果已配置默认仓库,则可选)(字符串,可选)
  • git_apply_patch_string - Git 应用补丁字符串

    • patch_string:要应用的补丁字符串(字符串,必填)
    • repo_path:Git 仓库的路径(如果已配置默认仓库,则可选)(字符串,可选)
  • git_apply_patch_string - Git 应用补丁字符串

    • patch_string:要应用的补丁字符串(字符串,必填)
    • repo_path:Git 仓库的路径(如果已配置默认仓库,则可选)(字符串,可选)
  • git_checkout - Git 检出

    • branch_name:要检出的分支名称(字符串,必填)
    • repo_path:Git 仓库的路径(如果已配置默认仓库,则可选)(字符串,可选)
  • git_checkout - Git 检出

    • branch_name:要检出的分支名称(字符串,必填)
    • repo_path:Git 仓库的路径(如果已配置默认仓库,则可选)(字符串,可选)
  • git_commit - Git 提交

    • message:提交说明(字符串,必填)
    • repo_path:Git 仓库的路径(如果已配置默认仓库,则可选)(字符串,可选)
  • git_commit - Git 提交

    • message:提交说明(字符串,必填)
    • repo_path:Git 仓库的路径(如果已配置默认仓库,则可选)(字符串,可选)
  • git_create_branch - Git 创建分支

    • base_branch:新分支的起点(可选)(字符串,可选)
    • branch_name:新分支的名称(字符串,必填)
    • repo_path:Git 仓库的路径(如果已配置默认仓库,则可选)(字符串,可选)
  • git_create_branch - Git 创建分支

    • base_branch:新分支的起点(可选)(字符串,可选)
    • branch_name:新分支的名称(字符串,必填)
    • repo_path:Git 仓库的路径(如果已配置默认仓库,则可选)(字符串,可选)
  • git_diff - Git 差异

    • repo_path:Git 仓库的路径(如果已配置默认仓库,则可选)(字符串,可选)
    • target:要比较的目标分支或提交(字符串,必填)
  • git_diff - Git 差异

    • repo_path:Git 仓库的路径(如果已配置默认仓库,则可选)(字符串,可选)
    • target:要比较的目标分支或提交(字符串,必填)
  • git_diff_staged - Git 暂存区差异

    • repo_path:Git 仓库的路径(如果已配置默认仓库,则可选)(字符串,可选)
  • git_diff_staged - Git 暂存区差异

    • repo_path:Git 仓库的路径(如果已配置默认仓库,则可选)(字符串,可选)
  • git_diff_unstaged - Git 未暂存差异

    • repo_path:Git 仓库的路径(如果已配置默认仓库,则可选)(字符串,可选)
  • git_diff_unstaged - Git 未暂存差异

    • repo_path:Git 仓库的路径(如果已配置默认仓库,则可选)(字符串,可选)
  • git_init - Git 初始化

    • repo_path:要初始化为 Git 仓库的目录路径(字符串,必填)
  • git_init - Git 初始化

    • repo_path:要初始化为 Git 仓库的目录路径(字符串,必填)
  • git_list_repositories - Git 仓库列表

    • 无需参数
  • git_list_repositories - Git 仓库列表

    • 无需参数
  • git_log - Git 日志

    • max_count:要显示的最大提交数(默认值:10)(数字,可选)
    • repo_path:Git 仓库的路径(如果已配置默认仓库,则可选)(字符串,可选)
  • git_log - Git 日志

    • max_count:要显示的最大提交数(默认值:10)(数字,可选)
    • repo_path:Git 仓库的路径(如果已配置默认仓库,则可选)(字符串,可选)
  • git_pull - Git 拉取

    • branch:要拉取的分支名称(默认值:当前分支的上游分支)(字符串,可选)
    • remote:远程名称(默认值:origin)(字符串,可选)
    • repo_path:Git 仓库的路径(如果已配置默认仓库,则可选)(字符串,可选)
  • git_pull - Git 拉取

    • branch:要拉取的分支名称(默认值:当前分支的上游分支)(字符串,可选)
    • remote:远程名称(默认值:origin)(字符串,可选)
    • repo_path:Git 仓库的路径(如果已配置默认仓库,则可选)(字符串,可选)
  • git_push - Git 推送

    • branch:要推送的分支名称(默认值:当前分支)(字符串,可选)
    • remote:远程名称(默认值:origin)(字符串,可选)
    • repo_path:Git 仓库的路径(如果已配置默认仓库,则可选)(字符串,可选)
  • git_push - Git 推送

    • branch:要推送的分支名称(默认值:当前分支)(字符串,可选)
    • remote:远程名称(默认值:origin)(字符串,可选)
    • repo_path:Git 仓库的路径(如果已配置默认仓库,则可选)(字符串,可选)
  • git_reset - Git 重置

    • repo_path:Git 仓库的路径(如果已配置默认仓库,则可选)(字符串,可选)
  • git_reset - Git 重置

    • repo_path:Git 仓库的路径(如果已配置默认仓库,则可选)(字符串,可选)
  • git_show - Git 显示

    • repo_path:Git 仓库的路径(如果已配置默认仓库,则可选)(字符串,可选)
    • revision:要显示的修订版本(提交哈希、分支名称、标签)(字符串,必填)
  • git_show - Git 显示

    • repo_path:Git 仓库的路径(如果已配置默认仓库,则可选)(字符串,可选)
    • revision:要显示的修订版本(提交哈希、分支名称、标签)(字符串,必填)
  • git_status - Git 状态

    • repo_path:Git 仓库的路径(如果已配置默认仓库,则为可选)(字符串,可选)
  • git_status - Git 状态

    • repo_path:Git 仓库的路径(如果已配置默认仓库,则为可选)(字符串,可选)
  • git_worktree_add - 添加 Git 工作树

    • commitish:要在新工作树中检出的分支名称、标签或提交 SHA(可选)(字符串,可选)
    • detach:创建分离 HEAD 工作树(可选,默认值:false)(布尔值,可选)
    • force:即使工作树路径已存在,也强制创建(可选,默认值:false)(布尔值,可选)
    • new_branch:在工作树中创建具有此名称的新分支(可选)(字符串,可选)
    • repo_path:Git 仓库的路径(如果已配置默认仓库,则为可选)(字符串,可选)
    • worktree_path:要创建新工作树的位置路径(字符串,必填)
  • git_worktree_add - 添加 Git 工作树

    • commitish:要在新工作树中检出的分支名称、标签或提交 SHA(可选)(字符串,可选)
    • detach:创建分离 HEAD 工作树(可选,默认值:false)(布尔值,可选)
    • force:即使工作树路径已存在,也强制创建(可选,默认值:false)(布尔值,可选)
    • new_branch:在工作树中创建具有此名称的新分支(可选)(字符串,可选)
    • repo_path:Git 仓库的路径(如果已配置默认仓库,则为可选)(字符串,可选)
    • worktree_path:要创建新工作树的位置路径(字符串,必填)
  • git_worktree_list - 列出 Git 工作树

    • repo_path:Git 仓库的路径(如果已配置默认仓库,则为可选)(字符串,可选)
  • git_worktree_list - 列出 Git 工作树

    • repo_path:Git 仓库的路径(如果已配置默认仓库,则为可选)(字符串,可选)
  • git_worktree_lock - 锁定 Git 工作树

    • reason:锁定工作树的原因(可选)(字符串,可选)
    • repo_path:Git 仓库的路径(如果已配置默认仓库,则为可选)(字符串,可选)
    • worktree:要锁定的工作树目录路径(字符串,必填)
  • git_worktree_lock - 锁定 Git 工作树

    • reason:锁定工作树的原因(可选)(字符串,可选)
    • repo_path:Git 仓库的路径(如果已配置默认仓库,则为可选)(字符串,可选)
    • worktree:要锁定的工作树目录路径(字符串,必填)
  • git_worktree_prune - 清理 Git 工作树

    • dry_run:显示将要清理的内容,但不实际执行清理(可选,默认值:false)(布尔值,可选)
    • repo_path:Git 仓库的路径(如果已配置默认仓库,则为可选)(字符串,可选)
    • verbose:显示详细输出(可选,默认值:false)(布尔值,可选)
  • git_worktree_prune - 清理 Git 工作树

    • dry_run:显示将要清理的内容,但不实际执行清理(可选,默认值:false)(布尔值,可选)
    • repo_path:Git 仓库的路径(如果已配置默认仓库,则为可选)(字符串,可选)
    • verbose:显示详细输出(可选,默认值:false)(布尔值,可选)
  • git_worktree_remove - 移除 Git 工作树

    • force:即使工作树有未提交更改或已锁定,也强制移除(可选,默认值:false)(布尔值,可选)
    • repo_path:Git 仓库的路径(如果已配置默认仓库,则为可选)(字符串,可选)
    • worktree:要移除的工作树目录路径(字符串,必填)
  • git_worktree_remove - 移除 Git 工作树

    • force:即使工作树有未提交更改或已锁定,也强制移除(可选,默认值:false)(布尔值,可选)
    • repo_path:Git 仓库的路径(如果已配置默认仓库,则为可选)(字符串,可选)
    • worktree:要移除的工作树目录路径(字符串,必填)
  • git_worktree_unlock - 解锁 Git worktree

    • repo_path:Git 仓库的路径(如果已配置默认仓库,则可选)(字符串,可选)
    • worktree:要解锁的 worktree 目录路径(字符串,必填)
  • git_worktree_unlock - 解锁 Git worktree

    • repo_path:Git 仓库的路径(如果已配置默认仓库,则可选)(字符串,可选)
    • worktree:要解锁的 worktree 目录路径(字符串,必填)
铃铛 通知
  • dismiss_notification - 忽略通知

    • 必需的 OAuth 权限范围:notifications
    • state:通知的新状态(read/done)(字符串,必填)
    • threadID:通知线程的 ID(字符串,必填)
  • get_notification_details - 获取通知详情

    • 必需的 OAuth 权限范围:notifications
    • notificationID:通知的 ID(字符串,必填)
  • list_notifications - 列出通知

    • 必需的 OAuth 权限范围:notifications
    • before:仅显示在给定时间之前更新的通知(ISO 8601 格式)(字符串,可选)
    • filter:通知筛选条件;除非另有指定,否则使用默认值。已读通知是指用户已确认的通知。参与中的通知是指用户直接参与的通知,例如用户评论过或创建过的问题或拉取请求。(字符串,可选)
    • owner:可选的仓库所有者。如果与 repo 一起提供,则仅列出此仓库的通知。(字符串,可选)
    • page:分页页码(最小值为 1)(数字,可选)
    • perPage:每页结果数(最小值为 1,最大值为 100)(数字,可选)
    • repo:可选的仓库名称。如果与 owner 一起提供,则仅列出此仓库的通知。(字符串,可选)
    • since:仅显示在给定时间之后更新的通知(ISO 8601 格式)(字符串,可选)
  • manage_notification_subscription - 管理通知订阅

    • 必需的 OAuth 权限范围:notifications
    • action:要执行的操作:忽略、关注或删除通知订阅。(字符串,必填)
    • notificationID:通知线程的 ID。(字符串,必填)
  • manage_repository_notification_subscription - 管理仓库通知订阅

    • 必需的 OAuth 权限范围:notifications
    • action:要执行的操作:忽略、关注或删除仓库通知订阅。(字符串,必填)
    • owner:仓库所属账号。(字符串,必填)
    • repo:仓库名称。(字符串,必填)
  • mark_all_notifications_read - 将所有通知标记为已读

    • 必需的 OAuth 权限范围:notifications
    • lastReadAt:记录上次检查通知的时间点(可选)。默认值:现在(字符串,可选)
    • owner:可选的仓库所有者。如果与 repo 一起提供,则仅将此仓库的通知标记为已读。(字符串,可选)
    • repo:可选的仓库名称。如果与 owner 一起提供,则仅将此仓库的通知标记为已读。(字符串,可选)
组织 组织 - **search_orgs** - 搜索组织 - **必需的 OAuth 作用域**:`read:org` - **可接受的 OAuth 作用域**:`admin:org`、`read:org`、`write:org` - `order`:排序顺序(字符串,可选) - `page`:分页页码(最小值为 1)(数字,可选) - `perPage`:每页分页结果数(最小值为 1,最大值为 100)(数字,可选) - `query`:组织搜索查询。例如:'microsoft'、'location:california'、'created:>=2025-01-01'。搜索会自动限定为 type:org。(字符串,必需) - `sort`:按类别排序的字段(字符串,可选)
项目 项目
  • projects_get - 获取 GitHub Projects 资源的详细信息
    • 必需的 OAuth 作用域:read:project
    • 可接受的 OAuth 作用域:project、read:project
    • field_id:字段 ID。对于 'get_project_field' 方法是必需的。(数字,可选)
    • field_names:获取项目条目时要包含在响应中的特定字段名称列表(例如 ["Status", "Priority"])。由服务端解析为字段 ID——如果只知道人类可读的名称,请传入此参数而不是 'fields'。不可与 'fields' 同时使用——请提供其中一个,而非两者。仅用于 'get_project_item' 方法。(字符串[],可选)
    • fields:获取项目条目时要包含在响应中的特定字段 ID 列表(例如 ["102589", "985201", "169875"])。如果未提供 'fields' 或 'field_names',则仅包含标题字段。不可与 'field_names' 同时使用——请提供其中一个,而非两者。仅用于 'get_project_item' 方法。(字符串[],可选)
    • item_id:条目的 ID。对于 'get_project_item' 方法是必需的。(数字,可选)
    • method:要执行的方法(字符串,必需)
    • owner:所有者(用户或组织登录名)。名称不区分大小写。(字符串,可选)
    • owner_type:所有者类型(用户或组织)。如果未提供,将自动检测。(字符串,可选)
    • project_number:项目编号。(数字,可选)
    • status_update_id:项目状态更新的节点 ID。对于 'get_project_status_update' 方法是必需的。(字符串,可选)
- **projects_list** - 列出 GitHub Projects 资源 - **所需 OAuth 范围**:`read:project` - **接受的 OAuth 范围**:`project`、`read:project` - `after`:上一页 pageInfo.nextCursor 中的向前翻页游标。(字符串,可选) - `before`:上一页 pageInfo.prevCursor 中的向后翻页游标(较少使用)。(字符串,可选) - `field_names`:列出项目条目时要包含的字段名称(例如 ["Status", "Priority"])。服务端会将其解析为字段 ID;如果只知道易读名称,请传入此参数,而不是 'fields'。无法解析的名称会返回结构化错误。不可与 'fields' 同时使用——请二选一。仅用于 'list_project_items' 方法。(字符串数组,可选) - `fields`:列出项目条目时要包含的字段 ID(例如 ["102589", "985201"])。重要:始终提供此参数以获取字段值。若未提供此参数(且未提供 'field_names'),则只会返回标题。不可与 'field_names' 同时使用——请二选一。仅用于 'list_project_items' 方法。(字符串数组,可选) - `method`:要执行的操作(字符串,必填) - `owner`:所有者(用户或组织登录名)。名称不区分大小写。(字符串,必填) - `owner_type`:所有者类型(用户或组织)。若未提供,将自动尝试两种类型。(字符串,可选) - `per_page`:每页结果数(最多 50)(数字,可选) - `project_number`:项目编号。'list_project_fields'、'list_project_items' 和 'list_project_status_updates' 方法必填。(数字,可选) - `query`:筛选/查询字符串。对于 list_projects:按标题文本和状态筛选(例如 "roadmap is:open")。对于 list_project_items:使用 GitHub 项目筛选语法进行高级筛选。(字符串,可选) - **projects_write** - 管理 GitHub Projects - **所需 OAuth 范围**:`project` - `body`:状态更新的正文(markdown)。用于 'create_project_status_update' 方法。(字符串,可选) - `field_name`:迭代字段的名称(例如 'Sprint')。'create_iteration_field' 方法必填。(字符串,可选) - `issue_number`:议题编号。对于 `item_type` 为 'issue' 时的 'add_project_item',此项为必填。'update_project_item' 也接受此项,以通过议题编号解析项目条目(与 `item_owner` 和 `item_repo` 搭配使用)。(数字,可选) - `item_id`:项目条目 ID。'delete_project_item' 方法必填。对于 'update_project_item',请提供 `item_id`,或提供 `item_owner` + `item_repo` + `issue_number`,以通过议题解析项目条目。(数字,可选) - `item_owner`:包含该议题或拉取请求的仓库所有者(用户或组织)。'add_project_item' 方法必填。'update_project_item' 通过议题编号解析项目条目时也接受此项。(字符串,可选) - `item_repo`:包含该议题或拉取请求的仓库名称。'add_project_item' 方法必填。'update_project_item' 通过议题编号解析项目条目时也接受此项。(字符串,可选) - `item_type`:项目条目的类型,可以是 issue 或 pull_request。'add_project_item' 方法必填。(字符串,可选) - `iteration_duration`:此字段中每轮迭代的天数(例如每周为 7 天,每两周为 14 天)。'create_iteration_field' 方法必填。(数字,可选) - `iterations`:用于 'create_iteration_field' 方法的自定义迭代。仅当需要不同迭代时长、迭代间隔,或指定标题时才设置此项。否则请省略:GitHub 会从 'start_date' 开始,自动创建三轮时长为 'iteration_duration' 天的迭代,这适用于大多数情况。(对象数组,可选) - `method`:要执行的方法(字符串,必填) - `owner`:项目所有者(用户或组织登录名)。名称不区分大小写。(字符串,必填) - `owner_type`:所有者类型(user 或 org)。'create_project' 方法必填。其他方法未提供时会自动检测。(字符串,可选) - `project_number`:项目编号。除 'create_project' 外的所有方法均必填。(数字,可选) - `pull_request_number`:拉取请求编号(当 `item_type` 为 'pull_request',且用于 'add_project_item' 方法时使用)。请提供 `issue_number` 或 `pull_request_number`。(数字,可选) - `start_date`:起始日期,格式为 YYYY-MM-DD。用于 'create_project_status_update' 和 'create_iteration_field' 方法。(字符串,可选) - `status`:项目状态。用于 'create_project_status_update' 方法。(字符串,可选) - `target_date`:状态更新的目标日期,格式为 YYYY-MM-DD。用于 'create_project_status_update' 方法。(字符串,可选) - `title`:项目标题。'create_project' 方法必填。(字符串,可选) - `updated_field`:描述要更新的字段及其新值的对象。'update_project_item' 方法必填。支持两种形式:(1) 按 ID 指定 — {"id": 123456, "value": "..."};(2) 按名称指定 — {"name": "Status", "value": "In Progress"}。对于单选字段,按名称解析选项时必须使用按名称指定的形式;按 ID 指定时,请传入选项 ID。将 value 设为 null 可清除字段。(对象,可选)
git-pull-request 拉取请求 - **add_comment_to_pending_review** - 向请求者最新的待处理拉取请求评审添加评审评论 - **必需的 OAuth 作用域**:`repo` - `body`:评审评论的文本(字符串,必需) - `line`:评论所针对的拉取请求差异中 blob 的行。对于多行评论,这是范围的最后一行(数字,可选) - `owner`:仓库所有者(字符串,必需) - `path`:需要添加评论的文件的相对路径(字符串,必需) - `pullNumber`:拉取请求编号(数字,必需) - `repo`:仓库名称(字符串,必需) - `side`:要评论的差异一侧。LEFT 表示之前的状态,RIGHT 表示新的状态(字符串,可选) - `startLine`:对于多行评论,这是评论所针对范围的第一行(数字,可选) - `startSide`:对于多行评论,这是差异中评论范围的起始侧。LEFT 表示之前的状态,RIGHT 表示新的状态(字符串,可选) - `subjectType`:评论所针对的级别(字符串,必需)
  • add_reply_to_pull_request_comment - 回复拉取请求评论

    • 必需的 OAuth 作用域:repo
    • body:回复文本。除非提供了 reaction,否则为必需。(字符串,可选)
    • commentId:要回复或添加反应的拉取请求评审评论的数字 ID。请使用 #discussion_r... 锚点中的数字,而不是 GraphQL 线程节点 ID(PRRT_...)。(数字,必需)
    • owner:仓库所有者(字符串,必需)
    • pullNumber:拉取请求编号。提供 body 时必需。(数字,可选)
    • reaction:要添加的表情符号反应。除非提供了 body,否则为必需。(字符串,可选)
    • repo:仓库名称(字符串,必需)
  • create_pull_request - 创建新的拉取请求

    • 必需的 OAuth 作用域:repo
    • base:要合并到的分支(字符串,必需)
    • body:PR 描述(字符串,可选)
    • draft:将 PR 创建为草稿(布尔值,可选)
    • head:包含更改的分支(字符串,必需)
    • maintainer_can_modify:允许维护者编辑(布尔值,可选)
    • owner:仓库所有者(字符串,必需)
    • repo:仓库名称(字符串,必需)
    • reviewers:要请求其进行评审的 GitHub 用户名或 ORG/团队 slug 团队评审者(字符串数组,可选)
    • title:PR 标题(字符串,必需)
  • list_pull_requests - 列出拉取请求

    • 必需的 OAuth 作用域:repo
    • base:按基准分支筛选(字符串,可选)
    • direction:排序方向(字符串,可选)
    • head:按 head 用户/组织和分支筛选(字符串,可选)
    • owner:仓库所有者(字符串,必需)
    • page:分页页码(最小值为 1)(数字,可选)
    • perPage:每页结果数(最小值为 1,最大值为 100)(数字,可选)
    • repo:仓库名称(字符串,必需)
    • sort:排序依据(字符串,可选)
    • state:按状态筛选(字符串,可选)
  • merge_pull_request - 合并拉取请求

    • 必需的 OAuth 作用域:repo
    • commit_message:合并提交的补充详情(字符串,可选)
    • commit_title:合并提交的标题(字符串,可选)
    • merge_method:合并方式(字符串,可选)
    • owner:仓库所有者(字符串,必需)
    • pullNumber:拉取请求编号(数字,必需)
    • repo:仓库名称(字符串,必需)
  • pull_request_comment_write - 更新或删除拉取请求审查评论

    • Required OAuth Scopes:repo
    • body:新的评论内容(update 方法必填)(字符串,可选)
    • comment_id:要更新或删除的审查评论 ID。使用 get_review_comments 返回的 database_id。(数字,必填)
    • method:要对审查评论执行的写入操作。 可选项:
      • 'update' - 更新现有审查评论。
      • 'delete' - 删除现有审查评论。 (字符串,必填)
    • owner:仓库所有者(字符串,必填)
    • repo:仓库名称(字符串,必填)
  • pull_request_read - 获取单个拉取请求的详细信息

    • Required OAuth Scopes:repo
    • after:分页游标,仅由 get_review_comments 方法使用。传入上一页 PageInfo 中的 endCursor,以获取下一页。(字符串,可选)
    • method:指定要从 GitHub 获取哪种拉取请求数据的操作。 可选项:
      1. get - 获取特定拉取请求的详细信息。
      2. get_diff - 获取拉取请求的差异。
      3. get_status - 获取拉取请求中头部提交的综合提交状态。
      4. get_files - 获取拉取请求中变更文件的列表。搭配分页参数使用,以控制返回结果数量。
      5. get_commits - 获取拉取请求中的提交列表。搭配分页参数使用,以控制返回结果数量。
      6. get_review_comments - 获取拉取请求中的审查讨论串。每个讨论串包含拉取请求审查期间在同一代码位置发表、按逻辑分组的审查评论。返回包含元数据(isResolved、isOutdated、isCollapsed)及相关评论的讨论串。使用基于游标的分页(perPage、after)控制结果。
      7. get_reviews - 获取拉取请求的审查记录。用户要求查看审查评论时,请使用 get_review_comments 方法。搭配分页参数使用,以控制返回结果数量。
      8. get_comments - 获取拉取请求的评论。如果用户没有特别要求查看审查评论,请使用此方法。搭配分页参数使用,以控制返回结果数量。
      9. get_check_runs - 获取拉取请求头部提交的检查运行记录。检查运行记录是针对 PR 运行的单个 CI/CD 作业和检查。 (字符串,必填)
    • owner:仓库所有者(字符串,必填)
    • page:分页页码(最小值 1)(数字,可选)
    • perPage:每页分页结果数(最小值 1,最大值 100)(数字,可选)
    • pullNumber:拉取请求编号(数字,必填)
    • repo:仓库名称(字符串,必填)
  • pull_request_review_write - 对拉取请求审查执行写入操作(创建、提交、删除)

    • Required OAuth Scopes:repo
    • body:审查评论文本(字符串,可选)
    • commitID:要审查的提交 SHA(字符串,可选)
    • event:要执行的审查操作。(字符串,可选)
    • method:对拉取请求审查执行的写入操作。(字符串,必填)
    • owner:仓库所有者(字符串,必填)
    • pullNumber:拉取请求编号(数字,必填)
    • repo:仓库名称(字符串,必填)
    • threadId:审查讨论串的节点 ID(例如,PRRT_kwDOxxx)。resolve_thread 和 unresolve_thread 方法必填。通过 pull_request_read 的 get_review_comments 方法获取讨论串 ID。(字符串,可选)
  • search_pull_requests - 搜索拉取请求

    • 所需 OAuth 权限范围:repo
    • order:排序顺序(字符串,可选)
    • owner:可选的仓库所有者。如果与 repo 一起提供,则仅列出此仓库的拉取请求。(字符串,可选)
    • page:分页页码(最小值为 1)(数字,可选)
    • perPage:每页结果数(最小值为 1,最大值为 100)(数字,可选)
    • query:使用 GitHub 拉取请求搜索语法的搜索查询(字符串,必填)
    • repo:可选的仓库名称。如果与 owner 一起提供,则仅列出此仓库的拉取请求。(字符串,可选)
    • sort:排序字段,按各类别的匹配数排序,默认为最佳匹配(字符串,可选)
  • update_pull_request - 编辑拉取请求

    • 所需 OAuth 权限范围:repo
    • base:新的基础分支名称(字符串,可选)
    • body:新的描述(字符串,可选)
    • draft:将拉取请求标记为草稿(true)或可供审查(false)(布尔值,可选)
    • maintainer_can_modify:允许维护者编辑(布尔值,可选)
    • owner:仓库所有者(字符串,必填)
    • pullNumber:要更新的拉取请求编号(数字,必填)
    • repo:仓库名称(字符串,必填)
    • reviewers:要邀请其审查的 GitHub 用户名或 ORG/team-slug 团队审查者(字符串数组,可选)
    • state:新状态(字符串,可选)
    • title:新标题(字符串,可选)
  • update_pull_request_branch - 更新拉取请求分支

    • 所需 OAuth 权限范围:repo
    • expectedHeadSha:拉取请求 HEAD 引用的预期 SHA(字符串,可选)
    • owner:仓库所有者(字符串,必填)
    • pullNumber:拉取请求编号(数字,必填)
    • repo:仓库名称(字符串,必填)
仓库 仓库
  • create_branch - 创建分支

    • 所需 OAuth 权限范围:repo
    • branch:新分支名称(字符串,必填)
    • from_branch:源分支(默认为仓库默认分支)(字符串,可选)
    • owner:仓库所有者(字符串,必填)
    • repo:仓库名称(字符串,必填)
  • create_or_update_file - 创建或更新文件

    • 所需 OAuth 权限范围:repo
    • branch:要在其中创建/更新文件的分支(字符串,必填)
    • content:文件内容(字符串,必填)
    • message:提交消息(字符串,必填)
    • owner:仓库所有者(用户名或组织)(字符串,必填)
    • path:创建/更新文件的路径(字符串,必填)
    • repo:仓库名称(字符串,必填)
    • sha:被替换文件的 blob SHA。文件已存在时必填。(字符串,可选)
  • create_repository - 创建仓库

    • 所需 OAuth 权限范围:repo
    • autoInit:使用 README 初始化(布尔值,可选)
    • description:仓库描述(字符串,可选)
    • name:仓库名称(字符串,必填)
    • organization:要在其中创建仓库的组织(省略时将在你的个人账户中创建)(字符串,可选)
    • private:仓库是否应为私有。省略时默认为 true(私有)。(布尔值,可选)
  • delete_file - 删除文件

    • 所需 OAuth 权限范围:repo
    • branch:要从中删除文件的分支(字符串,必填)
    • message:提交消息(字符串,必填)
    • owner:仓库所有者(用户名或组织)(字符串,必填)
    • path:要删除的文件路径(字符串,必填)
    • repo:仓库名称(字符串,必填)
- **fork_repository** - Fork 仓库 - **所需 OAuth 权限范围**:`repo` - `organization`:要 Fork 到的组织(字符串,可选) - `owner`:仓库所有者(字符串,必填) - `repo`:仓库名称(字符串,必填)
  • get_commit - 获取提交详情

    • 所需 OAuth 权限范围:repo
    • detail:更改文件的详细程度。"none" 表示完全省略统计信息和文件。"stats"(默认值)包含每个文件的元数据:文件名、状态和代码行数(新增、删除、更改),但不包含补丁内容。"full_patch" 还会包含每个文件的统一差异内容,可能会非常庞大。(字符串,可选)
    • owner:仓库所有者(字符串,必填)
    • page:分页页码(最小值 1)(数字,可选)
    • perPage:每页结果数(最小值 1,最大值 100)(数字,可选)
    • repo:仓库名称(字符串,必填)
    • sha:提交 SHA、分支名称或标签名称(字符串,必填)
  • get_file_contents - 获取文件或目录内容

    • 所需 OAuth 权限范围:repo
    • owner:仓库所有者(用户名或组织)(字符串,必填)
    • path:文件/目录路径(字符串,可选)
    • ref:可接受可选的 git 引用,例如 refs/tags/{tag}、refs/heads/{branch} 或 refs/pull/{pr_number}/head(字符串,可选)
    • repo:仓库名称(字符串,必填)
    • sha:可接受可选的提交 SHA。若指定,将优先于 ref 使用(字符串,可选)
  • get_latest_release - 获取最新发布版本

    • 所需 OAuth 权限范围:repo
    • owner:仓库所有者(字符串,必填)
    • repo:仓库名称(字符串,必填)
  • get_release_by_tag - 按标签名称获取发布版本

    • 所需 OAuth 权限范围:repo
    • owner:仓库所有者(字符串,必填)
    • repo:仓库名称(字符串,必填)
    • tag:标签名称(例如,'v1.0.0')(字符串,必填)
  • get_tag - 获取标签详情

    • 所需 OAuth 权限范围:repo
    • owner:仓库所有者(字符串,必填)
    • repo:仓库名称(字符串,必填)
    • tag:标签名称(字符串,必填)
  • list_branches - 列出分支

    • 所需 OAuth 权限范围:repo
    • owner:仓库所有者(字符串,必填)
    • page:分页页码(最小值 1)(数字,可选)
    • perPage:每页结果数(最小值 1,最大值 100)(数字,可选)
    • repo:仓库名称(字符串,必填)
  • list_commits - 列出提交

    • 所需 OAuth 权限范围:repo
    • author:用于筛选提交的作者用户名或电子邮件地址(字符串,可选)
    • owner:仓库所有者(字符串,必填)
    • page:分页页码(最小值 1)(数字,可选)
    • path:仅返回包含此文件路径的提交(字符串,可选)
    • perPage:每页结果数(最小值 1,最大值 100)(数字,可选)
    • repo:仓库名称(字符串,必填)
    • sha:要列出其提交记录的提交 SHA、分支或标签名称。若未提供,则使用仓库的默认分支。若提供提交 SHA,则列出截至该 SHA 的提交。(字符串,可选)
    • since:仅返回此日期之后的提交(ISO 8601 格式:YYYY-MM-DDTHH:MM:SSZ 或 YYYY-MM-DD)(字符串,可选)
    • until:仅返回此日期之前的提交(ISO 8601 格式:YYYY-MM-DDTHH:MM:SSZ 或 YYYY-MM-DD)(字符串,可选)
  • list_releases - 列出发布版本

    • 所需 OAuth 权限范围:repo
    • owner:仓库所有者(字符串,必填)
    • page:分页页码(最小值 1)(数字,可选)
    • perPage:每页结果数(最小值 1,最大值 100)(数字,可选)
    • repo:仓库名称(字符串,必填)
  • list_repository_collaborators - 列出仓库协作者

    • Required OAuth Scopes:repo
    • affiliation:按关联类型筛选。可选值:'outside'(外部协作者)、'direct'(所有拥有权限的协作者,无论是否属于组织)、'all'(所有协作者)。默认值:'all'(字符串,可选)
    • owner:仓库所有者(字符串,必填)
    • page:分页页码(默认值为 1,最小值为 1)(数字,可选)
    • perPage:每页结果数(默认值为 30,最小值为 1,最大值为 100)(数字,可选)
    • repo:仓库名称(字符串,必填)
  • list_tags - 列出标签

    • Required OAuth Scopes:repo
    • owner:仓库所有者(字符串,必填)
    • page:分页页码(最小值为 1)(数字,可选)
    • perPage:每页结果数(最小值为 1,最大值为 100)(数字,可选)
    • repo:仓库名称(字符串,必填)
  • push_files - 将文件推送到仓库

    • Required OAuth Scopes:repo
    • branch:要推送到的分支(字符串,必填)
    • files:要推送的文件对象数组,每个对象包含 path(字符串)和 content(字符串)(对象数组,必填)
    • message:提交消息(字符串,必填)
    • owner:仓库所有者(字符串,必填)
    • repo:仓库名称(字符串,必填)
  • search_code - 搜索代码

    • Required OAuth Scopes:repo
    • order:结果排序顺序(字符串,可选)
    • page:分页页码(最小值为 1)(数字,可选)
    • perPage:每页结果数(最小值为 1,最大值为 100)(数字,可选)
    • query:搜索查询(GitHub 代码搜索 REST)。词项之间隐式使用 AND;支持 OR、NOT 和用于精确匹配的 "quoted phrase"。限定符:repo:owner/repo、org:、user:、language:、path:dir(前缀匹配)、filename:exact.ext、extension:、in:file、in:path、size:、is:archived、is:fork。最多 256 个字符。示例:WithContext language:go org:github;"package main" repo:o/r;func extension:go path:cmd repo:o/r;NOT TODO language:go repo:o/r。(字符串,必填)
    • sort:排序字段(仅限 'indexed')(字符串,可选)
  • search_commits - 搜索提交

    • Required OAuth Scopes:repo
    • order:排序顺序(字符串,可选)
    • page:分页页码(最小值为 1)(数字,可选)
    • perPage:每页结果数(最小值为 1,最大值为 100)(数字,可选)
    • query:提交搜索查询(GitHub 提交搜索 REST)。仅搜索默认分支上的提交消息。使用 repo:owner/repo、org: 或 user: 限定搜索范围(不带范围限定符的查询会匹配整个 GitHub,通常不是你想要的结果)。其他限定符:author:、committer:、author-name:、committer-name:、author-email:、committer-email:、author-date:、committer-date:(支持 >、<、>=、<= 和 YYYY-MM-DD..YYYY-MM-DD 范围)、merge:true|false、hash:、tree:、parent:、is:public。示例:repo:owner/repo fix panic;org:github author:defunkt committer-date:>=2024-01-01;"refactor cache" repo:o/r;hash:abc1234 repo:o/r。(字符串,必填)
    • sort:按作者或提交者日期排序(默认按最佳匹配排序)(字符串,可选)
  • search_repositories - 搜索仓库

    • Required OAuth Scopes:repo
    • minimal_output:返回最精简的仓库信息(默认值:true)。设为 false 时,返回完整的 GitHub API 仓库对象。(布尔值,可选)
    • order:排序顺序(字符串,可选)
    • page:分页页码(最小值为 1)(数字,可选)
    • perPage:每页结果数(最小值为 1,最大值为 100)(数字,可选)
    • query:仓库搜索查询。示例:'machine learning in:name stars:>1000 language:python'、'topic:react'、'user:facebook'。支持高级搜索语法,以便精确筛选。(字符串,必填)
    • sort:按字段对仓库排序,默认按最佳匹配排序(字符串,可选)
密钥保护 密钥保护
  • get_secret_scanning_alert - 获取密钥扫描警报

    • 必需的 OAuth 作用域:security_events
    • 接受的 OAuth 作用域:repo、security_events
    • alertNumber:警报编号。(number,必需)
    • owner:仓库所有者。(string,必需)
    • repo:仓库名称。(string,必需)
  • list_secret_scanning_alerts - 列出密钥扫描警报

    • 必需的 OAuth 作用域:security_events
    • 接受的 OAuth 作用域:repo、security_events
    • owner:仓库所有者。(string,必需)
    • page:分页页码(最小值为 1)(number,可选)
    • perPage:每页结果数(最小值为 1,最大值为 100)(number,可选)
    • repo:仓库名称。(string,必需)
    • resolution:按解决方式筛选(string,可选)
    • secret_type:以逗号分隔的要返回的密钥类型列表。默认返回所有默认密钥模式。要返回通用模式,请在此参数中传入令牌名称。(string,可选)
    • state:按状态筛选(string,可选)
安全公告 安全公告
  • get_global_security_advisory - 获取全局安全公告

    • 必需的 OAuth 作用域:security_events
    • 接受的 OAuth 作用域:repo、security_events
    • ghsaId:GitHub 安全公告 ID(格式:GHSA-xxxx-xxxx-xxxx)。(string,必需)
  • list_global_security_advisories - 列出全局安全公告

    • 必需的 OAuth 作用域:security_events
    • 接受的 OAuth 作用域:repo、security_events
    • affects:按受影响的软件包或版本筛选公告(例如 "package1,[email protected]")。(string,可选)
    • cveId:按 CVE ID 筛选。(string,可选)
    • cwes:按通用弱点枚举 ID 筛选(例如 ["79", "284", "22"])。(string[],可选)
    • ecosystem:按软件包生态系统筛选。(string,可选)
    • ghsaId:按 GitHub 安全公告 ID 筛选(格式:GHSA-xxxx-xxxx-xxxx)。(string,可选)
    • isWithdrawn:是否仅返回已撤回的公告。(boolean,可选)
    • modified:按发布日期、更新日期或日期范围筛选(ISO 8601 日期或范围)。(string,可选)
    • published:按发布日期或日期范围筛选(ISO 8601 日期或范围)。(string,可选)
    • severity:按严重程度筛选。(string,可选)
    • type:公告类型。(string,可选)
    • updated:按更新日期或日期范围筛选(ISO 8601 日期或范围)。(string,可选)
  • list_org_repository_security_advisories - 列出组织仓库的安全公告

    • 必需的 OAuth 作用域:security_events
    • 接受的 OAuth 作用域:repo、security_events
    • direction:排序方向。(string,可选)
    • org:组织登录名。(string,必需)
    • sort:排序字段。(string,可选)
    • state:按公告状态筛选。(string,可选)
- **list_repository_security_advisories** - 列出仓库安全公告 - **Required OAuth Scopes**: `security_events` - **Accepted OAuth Scopes**: `repo`, `security_events` - `direction`:排序方向。(string,可选) - `owner`:仓库所有者。(string,必填) - `repo`:仓库名称。(string,必填) - `sort`:排序字段。(string,可选) - `state`:按公告状态筛选。(string,可选)
star 获得星标的用户
  • list_starred_repositories - 列出已加星标的仓库

    • Required OAuth Scopes: repo
    • direction:结果的排序方向。(string,可选)
    • page:分页页码(最小值为 1)(number,可选)
    • perPage:每页结果数(最小值为 1,最大值为 100)(number,可选)
    • sort:结果的排序方式。可以是 'created'(仓库获得星标的时间)或 'updated'(仓库上次推送的时间)。(string,可选)
    • username:要列出其已加星标仓库的用户名。默认为已通过身份验证的用户。(string,可选)
  • star_repository - 为仓库加星标

    • Required OAuth Scopes: repo
    • owner:仓库所有者(string,必填)
    • repo:仓库名称(string,必填)
  • unstar_repository - 取消仓库星标

    • Required OAuth Scopes: repo
    • owner:仓库所有者(string,必填)
    • repo:仓库名称(string,必填)
people 用户
  • search_users - 搜索用户
    • Required OAuth Scopes: repo
    • order:排序顺序(string,可选)
    • page:分页页码(最小值为 1)(number,可选)
    • perPage:每页结果数(最小值为 1,最大值为 100)(number,可选)
    • query:用户搜索查询。示例:'john smith'、'location:seattle'、'followers:>100'。搜索范围会自动限定为 type:user。(string,必填)
    • sort:按关注者数量、仓库数量或用户加入 GitHub 的时间排序。(string,可选)
### 远程 GitHub MCP 服务中的其他工具
Copilot
  • create_pull_request_with_copilot - 使用 GitHub Copilot 编码 Agent 执行任务
    • owner:仓库所有者。你可以猜测所有者,但在继续操作前请向用户确认。(字符串,必填)
    • repo:仓库名称。你可以猜测仓库名称,但在继续操作前请向用户确认。(字符串,必填)
    • problem_statement:要执行任务的详细描述(例如,“实现一项可执行 X 的功能”、“修复错误 Y”等)。(字符串,必填)
    • title:要创建的拉取请求标题(字符串,必填)
    • base_ref:Agent 开始工作的 Git 引用(例如分支)。如果未指定,则默认为仓库的默认分支(字符串,可选)
Copilot Spaces
  • 身份验证说明

    • 细粒度 PAT 不会受到经典 PAT 作用域筛选的隐藏,因此即使令牌无法使用这些工具,它们仍可能会显示。
    • 对于组织拥有的空间,细粒度 PAT 必须安装在所属组织中,并包含 organization_copilot_spaces: read。
    • 如果组织拥有的空间包含由仓库提供支持的资源,令牌还必须有权访问所有被引用的仓库,否则该空间可能会被视为不存在。
  • get_copilot_space - 获取 Copilot Space

    • owner:空间的所有者。(字符串,必填)
    • name:空间名称。(字符串,必填)
  • list_copilot_spaces - 列出 Copilot Spaces

GitHub 支持文档搜索
  • github_support_docs_search - 检索相关文档,以回答 GitHub 产品和支持相关问题。支持主题包括:GitHub Actions 工作流、身份验证、GitHub 支持咨询、拉取请求实践、仓库维护、GitHub Pages、GitHub Packages、GitHub Discussions、Copilot Spaces
    • query:用户关于所需答案的问题输入。这是用户最新的原始未编辑消息。你应始终保持用户消息原样,不应对其进行任何修改。(字符串,必填)

只读模式

要以只读模式运行服务,可以使用 --read-only 标志。此模式仅提供只读工具,防止对仓库、问题、拉取请求等进行任何修改。

./omnigit-mcp --read-only

使用 Docker 时,可以通过环境变量传递只读模式:

docker run -i --rm \
  -e GITHUB_PERSONAL_ACCESS_TOKEN=<your-token> \
  -e GITHUB_READ_ONLY=1 \
  ghcr.io/aifity/omnigit-mcp

锁定模式

锁定模式会限制服务从公开仓库中提供的内容。启用后,服务会检查每个项目的作者是否拥有仓库的推送权限。私有仓库不受影响,协作者仍可完全访问自己的内容。

./omnigit-mcp --lockdown-mode

使用 Docker 运行时,请设置相应的环境变量:

docker run -i --rm \
  -e GITHUB_PERSONAL_ACCESS_TOKEN=<your-token> \
  -e GITHUB_LOCKDOWN_MODE=1 \
  ghcr.io/aifity/omnigit-mcp

锁定模式的行为取决于所调用的工具。

作者没有推送权限时,以下工具会返回错误:

  • issue_read:get
  • pull_request_read:get

以下工具会筛除没有推送权限的用户所提供的内容:

  • issue_read:get_comments
  • issue_read:get_sub_issues
  • pull_request_read:get_comments
  • pull_request_read:get_review_comments
  • pull_request_read:get_reviews

i18n / 覆盖描述

可在二进制文件所在目录中创建 omnigit-mcp-config.json 文件,以覆盖工具的描述。

该文件应包含一个 JSON 对象,以工具名称为键、新描述为值。例如:

{
  "TOOL_ADD_ISSUE_COMMENT_DESCRIPTION": "an alternative description",
  "TOOL_CREATE_BRANCH_DESCRIPTION": "Create a new branch in a GitHub repository"
}

运行二进制文件并传入 --export-translations 标志,即可导出当前翻译。

此标志会保留你所做的任何翻译/覆盖,同时添加自上次导出后新增到二进制文件中的翻译。

./omnigit-mcp --export-translations
cat omnigit-mcp-config.json

你也可以使用环境变量覆盖描述。环境变量名称与 JSON 文件中的键相同,前缀为 GITHUB_MCP_,且全部大写。

例如,要覆盖 TOOL_ADD_ISSUE_COMMENT_DESCRIPTION 工具的描述,可以设置以下环境变量:

export GITHUB_MCP_TOOL_ADD_ISSUE_COMMENT_DESCRIPTION="an alternative description"
覆盖服务名称和标题

同样的覆盖机制也可用于自定义初始化响应中的 MCP 服务 name 和 title 字段。运行多个 GitHub MCP Server 实例时(例如,一个用于 github.com,另一个用于 GitHub Enterprise Server),这很有用,可让 Agent 区分不同实例。

键环境变量默认值
SERVER_NAMEGITHUB_MCP_SERVER_NAMEomnigit-mcp
SERVER_TITLEGITHUB_MCP_SERVER_TITLEGitHub MCP Server

例如,配置一个用于 GitHub Enterprise Server 的服务实例:

{
  "SERVER_NAME": "ghes-mcp-server",
  "SERVER_TITLE": "GHES MCP Server"
}

或者使用环境变量:

export GITHUB_MCP_SERVER_NAME="ghes-mcp-server"
export GITHUB_MCP_SERVER_TITLE="GHES MCP Server"

库的使用

目前,应将此模块导出的 Go API 视为不稳定,且可能发生破坏性变更。未来我们或许会提供稳定性保障;如果你有认为这很有价值的使用场景,请提交 issue。

贡献

欢迎贡献。在提交拉取请求之前,请阅读贡献指南,了解环境设置、测试、代码检查和文档生成说明。

支持

如需了解如何使用 GitHub MCP Server,请参阅支持指南。如果你发现了错误或想请求新功能,请先搜索现有 issue,再创建新 issue。

安全

请勿通过公开 issue 报告安全漏洞。请按照安全政策中的说明,负责任地报告漏洞。

许可证

本项目依据 MIT 开源许可证的条款授权。完整条款请参阅 MIT。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。