
GitHub MCP服务器
GitHub MCP服务器将AI工具直接连接到GitHub平台。这使AI代理、助手和聊天机器人能够读取存储库和代码文件,管理问题和PR,分析代码,并自动化工作流程。通过自然语言的互动。
用例
- 存储库管理:浏览和查询代码、搜索文件、分析提交,并了解您有权访问的任何存储库中的项目结构。
- 问题和公关自动化:创建、更新和管理问题和拉取请求。让人工智能帮助分类错误、审查代码更改和维护项目板。
- CI/CD和工作流智能:监控GitHub Actions工作流运行,分析构建失败,管理发布,并深入了解您的开发流程。
- 代码分析:检查安全发现,查看Dependabot警报,了解代码模式,并全面了解您的代码库。
- 团队协作:访问讨论、管理通知、分析团队活动并简化团队流程。
专为希望将人工智能工具连接到GitHub上下文和功能的开发人员而设计,从简单的自然语言查询到复杂的多步骤代理工作流。
______________________________________________________________________
远程GitHub MCP服务器
远程GitHub MCP服务器由GitHub托管,提供了最简单的启动和运行方法。如果您的MCP主机不支持远程MCP服务器,请不要担心!您可以使用 相反。
先决条件
- 支持远程服务器的兼容MCP主机(VS Code 1.101+、Claude Desktop、Cursor、Windsurf等)
- 任何适用 已启用策略
在VS代码中安装
为了快速安装,请使用上面的一键安装按钮之一。完成该流程后,切换代理模式(位于副驾驶聊天文本输入处),服务器将启动。确保您正在使用 VS代码1.101 或 稍后 用于远程MCP和OAuth支持。
或者,要手动配置VS Code,请从以下示例中选择适当的JSON块并将其添加到您的主机配置中:
Using OAuthUsing a GitHub PAT VS Code (version 1.101 or greater)
{
"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主机中安装
- Copilot命令行界面 -GitHub Copilot CLI安装指南
- **** -使用GitHub Copilot安装JetBrains、Visual Studio、Eclipse和Xcode
- Claude应用程序 -Claude Desktop和Claude Code CLI安装指南
- 法典 -OpenAI Codex安装指南
- 光标 -Cursor IDE安装指南
- 帆板运动 -Windsurf IDE安装指南
- Rovo开发CLI -Rovo Dev CLI安装指南
注: 每个MCP主机应用程序都需要配置一个GitHub应用程序或OAuth应用程序,以支持通过OAuth进行远程访问。任何支持远程MCP服务器的主机应用程序都应该支持具有PAT身份验证的远程GitHub服务器。配置细节和支持级别因主机而异。请确保参考主机应用程序的文档以获取更多信息。
配置
工具集配置
看 远程服务器文档 有关远程服务器配置、工具集、标头和高级用法的完整详细信息。此文件提供了在VS Code和其他MCP主机中连接、自定义和安装远程GitHub MCP服务器的全面说明和示例。
当没有指定工具集时, 默认工具集 使用。
内部人模式
尽早尝试新功能! 远程服务器提供了一个内部版本,可以早期访问新功能和实验工具。
Using URL PathUsing Header
{
"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"
}
}
}
}看 远程服务器文档 了解更多细节和示例。
GitHub企业版
GitHub企业云与数据驻留(ghe.com)
GitHub Enterprise Cloud也可以使用远程服务器。
示例 https://octocorp.ghe.com 使用GitHub PAT令牌:
{
...
"proxima-github": {
"type": "http",
"url": "https://copilot-api.octocorp.ghe.com/mcp",
"headers": {
"Authorization": "Bearer ${input:github_mcp_pat}"
}
},
...
}注: 当使用OAuth与GitHub Enterprise、VS Code和GitHub Copilot一起使用时,您还需要配置VS Code设置以指向您的GitHub Enterprise实例-请参阅 通过VS代码进行身份验证
GitHub企业服务器
GitHub Enterprise Server不支持远程服务器托管。请参考 从本地服务器配置。
______________________________________________________________________
本地GitHub MCP服务器
](https://insiders.vscode.dev/redirect/mcp/install?name=github&inputs=%5B%7B%22id%22%3A%22github_token%22%2C%22type%22%3A%22promptString%22%2C%22description%22%3A%22GitHub%20Personal%20Access%20Token%22%2C%22password%22%3Atrue%7D%5D&config=%7B%22command%22%3A%22docker%22%2C%22args%22%3A%5B%22run%22%2C%22-i%22%2C%22--rm%22%2C%22-e%22%2C%22GITHUB_PERSONAL_ACCESS_TOKEN%22%2C%22ghcr.io%2Fgithub%2Fgithub-mcp-server%22%5D%2C%22env%22%3A%7B%22GITHUB_PERSONAL_ACCESS_TOKEN%22%3A%22%24%7Binput%3Agithub_token%7D%22%7D%7D) ](https://insiders.vscode.dev/redirect/mcp/install?name=github&inputs=%5B%7B%22id%22%3A%22github_token%22%2C%22type%22%3A%22promptString%22%2C%22description%22%3A%22GitHub%20Personal%20Access%20Token%22%2C%22password%22%3Atrue%7D%5D&config=%7B%22command%22%3A%22docker%22%2C%22args%22%3A%5B%22run%22%2C%22-i%22%2C%22--rm%22%2C%22-e%22%2C%22GITHUB_PERSONAL_ACCESS_TOKEN%22%2C%22ghcr.io%2Fgithub%2Fgithub-mcp-server%22%5D%2C%22env%22%3A%7B%22GITHUB_PERSONAL_ACCESS_TOKEN%22%3A%22%24%7Binput%3Agithub_token%7D%22%7D%7D&quality=insiders)
先决条件
- 要在容器中运行服务器,您需要 码头工人 安装。
- 安装Docker后,您还需要确保Docker正在运行。Docker镜像可在
ghcr.io/github/github-mcp-server该图像是公开的;如果你在pull时出错,你可能有一个过期的令牌,需要docker logout ghcr.io. - 最后,你需要 .
MCP服务器可以使用许多GitHub API,因此请启用您认为授予AI工具的权限(要了解有关访问令牌的更多信息,请查看 文档).
Handling PATs Securely
环境变量(推荐)
为了确保您的GitHub PAT在不同MCP主机上的安全性和可重用性:
- 将PAT存储在环境变量中
export GITHUB_PAT=your_token_here或者创建一个 .env 文件:
GITHUB_PAT=your_token_here- 保护你的
.env文件
# Add to .gitignore to prevent accidental commits
echo ".env" >> .gitignore- 在配置中引用令牌
# CLI usage
claude mcp update github -e GITHUB_PERSONAL_ACCESS_TOKEN=$GITHUB_PAT
# 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.jsonGitHub企业服务器和企业云与数据驻留(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/github/github-mcp-server"
],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "${input:github_token}",
"GITHUB_HOST": "https://"
}
}安装
在GitHub上安装VS代码副本
为了快速安装,请使用上面的一键安装按钮之一。完成该流程后,切换代理模式(位于副驾驶聊天文本输入处),服务器将启动。
更多关于在VS Code中使用MCP服务器工具的信息 代理模式文档.
在其他IDE(JetBrains、Visual Studio、Eclipse等)上的GitHub Copilot中安装
将以下JSON块添加到IDE的MCP设置中。
{
"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/github/github-mcp-server"
],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "${input:github_token}"
}
}
}
}
}您可以选择将类似的示例(即不带mcp键)添加到名为的文件中 .vscode/mcp.json 在您的工作空间中。这将允许您与接受相同格式的其他主机应用程序共享配置。
Example JSON block without the MCP key included
{
"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/github/github-mcp-server"
],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "${input:github_token}"
}
}
}
}在其他MCP主机中安装
对于其他MCP主机应用程序,请参阅我们的安装指南:
- Copilot命令行界面 -GitHub Copilot CLI安装指南
- **** -使用GitHub Copilot安装JetBrains、Visual Studio、Eclipse和Xcode
- 克劳德代码和克劳德桌面 -Claude Code和Claude Desktop的安装指南
- 光标 -Cursor IDE安装指南
- 谷歌Gemini CLI -Google Gemini CLI安装指南
- 帆板运动 -Windsurf IDE安装指南
有关所有安装选项的完整概述,请参阅我们的 安装指南索引.
注: 任何支持本地MCP服务器的主机应用程序都应该能够访问本地GitHub MCP服务器。但是,集成的具体配置过程、语法和稳定性将因主机应用程序而异。虽然许多人可能遵循与上述示例类似的格式,但这并不能保证。请参阅主机应用程序的文档,了解正确的MCP配置语法和设置过程。
从源代码构建
如果你没有Docker,你可以使用 go build 在 cmd/github-mcp-server 目录,并使用 github-mcp-server stdio 命令与 GITHUB_PERSONAL_ACCESS_TOKEN 将环境变量设置为您的令牌。要指定生成的输出位置,请使用 -o 旗帜。您应该将服务器配置为使用构建的可执行文件作为其 command例如:
{
"mcp": {
"servers": {
"github": {
"command": "/path/to/github-mcp-server",
"args": ["stdio"],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": ""
}
}
}
}
}CLI实用程序
这 github-mcp-server 二进制文件包含一些CLI子命令,有助于调试和探索服务器。
github-mcp-server tool-search ""按名称、描述和输入参数名称搜索工具。使用--max-results返回更多比赛。
示例(颜色输出需要TTY;使用 docker run -t (或 -it)在Docker中运行时):
docker run -it --rm ghcr.io/github/github-mcp-server tool-search "issue" --max-results 5
github-mcp-server tool-search "issue" --max-results 5工具配置
GitHub MCP Server支持通过以下方式启用或禁用特定功能组 --toolsets 旗帜。这允许您控制哪些GitHub API功能可用于您的人工智能工具。仅启用所需的工具集可以帮助LLM进行工具选择并减少上下文大小。
_工具集不限于工具。在适用的情况下,还包括相关的MCP资源和提示。_
当没有指定工具集时, 默认工具集 使用。
您在寻找示例吗? 请参阅 服务器配置指南 用于常见的食谱,如最小设置、只读模式以及将工具与工具集组合。
指定工具集
要指定LLM可用的工具集,可以通过两种方式传递允许列表:
- 使用命令行参数:
github-mcp-server --toolsets repos,issues,pull_requests,actions,code_security- 使用环境变量:
GITHUB_TOOLSETS="repos,issues,pull_requests,actions,code_security" ./github-mcp-server环境变量 GITHUB_TOOLSETS 如果两者都提供,则优先于命令行参数。
指定单个工具
您还可以使用配置特定工具 --tools 旗帜。工具可以独立使用,也可以与工具集和动态工具集发现结合使用,以实现细粒度控制。
- 使用命令行参数:
github-mcp-server --tools get_file_contents,issue_read,create_pull_request- 使用环境变量:
GITHUB_TOOLS="get_file_contents,issue_read,create_pull_request" ./github-mcp-server- 与工具集结合 (添加剂):
github-mcp-server --toolsets repos,issues --tools get_gist这将注册来自的所有工具 repos 和 issues 工具集,加 get_gist.
- 与动态工具集结合 (添加剂):
github-mcp-server --tools get_file_contents --dynamic-toolsets此注册 get_file_contents 加上动态工具集工具(enable_toolset, list_available_toolsets, get_toolset_tools).
重要提示:
- 工具、工具集和动态工具集都可以一起使用
- 只读模式优先:如果出现以下情况,则跳过写入工具
--read-only设置,即使通过明确请求--tools - 工具名称必须完全匹配(例如。,
get_file_contents,不getFileContents).无效的工具名称将导致服务器启动失败,并显示错误消息 - 重命名工具时,旧名称将保留为别名,以实现向后兼容性。看 弃用的工具别名 了解详情。
在Docker中使用工具集
使用Docker时,可以将工具集作为环境变量传递:
docker run -i --rm \
-e GITHUB_PERSONAL_ACCESS_TOKEN= \
-e GITHUB_TOOLSETS="repos,issues,pull_requests,actions,code_security" \
ghcr.io/github/github-mcp-server使用Docker工具
使用Docker时,您可以将特定工具作为环境变量传递。您还可以将工具与工具集结合使用:
# Tools only
docker run -i --rm \
-e GITHUB_PERSONAL_ACCESS_TOKEN= \
-e GITHUB_TOOLS="get_file_contents,issue_read,create_pull_request" \
ghcr.io/github/github-mcp-server
# Tools combined with toolsets (additive)
docker run -i --rm \
-e GITHUB_PERSONAL_ACCESS_TOKEN= \
-e GITHUB_TOOLSETS="repos,issues" \
-e GITHUB_TOOLS="get_gist" \
ghcr.io/github/github-mcp-server专用工具集
“全部”工具集
特殊工具集 all 可以提供以启用所有可用的工具集,而不管任何其他配置如何:
./github-mcp-server --toolsets all或者使用环境变量:
GITHUB_TOOLSETS="all" ./github-mcp-server“默认”工具集
默认工具集 default 如果没有指定工具集,则是传递给服务器的配置。
默认配置为:
- 上下文
- 回购协议
- 问题
- pull_requests
- 用户
要保留默认配置并添加其他工具集,请执行以下操作:
GITHUB_TOOLSETS="default,stargazers" ./github-mcp-server内部人模式
本地GitHub MCP Server提供了一个内部版本,可以早期访问新功能和实验工具。
- 使用命令行参数:
./github-mcp-server --insiders- 使用环境变量:
GITHUB_INSIDERS=true ./github-mcp-server使用Docker时:
docker run -i --rm \
-e GITHUB_PERSONAL_ACCESS_TOKEN= \
-e GITHUB_INSIDERS=true \
ghcr.io/github/github-mcp-server可用工具集
以下工具可用:
| 工具集 | 说明 | |
|---|---|---|
| context | 强烈推荐:提供当前用户上下文和您正在操作的GitHub上下文的工具| |
| actions |GitHub操作工作流和CI/CD操作| |
| code_security |代码安全相关工具,如GitHub代码扫描| |
| dependabot |Dependabot工具| |
| discussions |GitHub讨论相关工具| |
| gists |GitHub Gist相关工具| |
| git |用于低级Git操作的GitHub Git API相关工具| |
| issues |GitHub问题相关工具| |
| labels |GitHub标签相关工具| |
| notifications |GitHub通知相关工具| |
| orgs |GitHub组织相关工具| |
| projects |GitHub项目相关工具| |
| pull_requests |GitHub Pull Request相关工具| |
| repos |GitHub仓库相关工具| |
| secret_protection |与秘密保护相关的工具,如GitHub秘密扫描| |
| security_advisories |安全咨询相关工具| |
| stargazers |GitHub Stargazers相关工具| |
| users |GitHub用户相关工具|
远程GitHub MCP服务器中的其他工具集
| 工具集 | 说明 |
|---|---|
copilot | 副驾驶相关工具(例如副驾驶编码代理) |
copilot_spaces | 副驾驶空间相关工具 |
github_support_docs_search | 搜索文档以回答GitHub产品和支持问题 |
工具
Actions
- actions_get -获取GitHub Actions资源的详细信息(工作流、工作流运行、作业和工件)
- 所需OAuth范围: repo - method:要执行的方法(string,必填) - owner:存储库所有者(字符串,必填) - repo:存储库名称(字符串,必填) - resource_id:资源的唯一标识符。这将根据提供的“方法”而有所不同,因此请确保您提供正确的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操作工作流
- 所需OAuth范围: repo - method:要执行的操作(字符串,必填) - owner:存储库所有者(字符串,必填) - page:分页页码(默认值:1)(数字,可选) - per_page:分页每页结果(默认值:30,最大值:100)(数量,可选) - repo:存储库名称(字符串,必填) - resource_id:资源的唯一标识符。这将根据提供的“方法”而有所不同,因此请确保您提供正确的ID: - 不要为“list_workflows”方法提供任何资源ID。 - 为“list_workflow_runs”方法提供工作流ID或工作流文件名(例如ci.yaml),或省略列出存储库中的所有工作流运行。 - 为“list_workflow_jobs”和“list_worksflow_run_artifacts”方法提供工作流运行ID。 (字符串,可选) - workflow_jobs_filter:工作流作业的筛选器。 仅 当方法为“list_workflow_jobs”(对象,可选)时使用 - workflow_runs_filter:工作流运行的筛选器。 仅 当方法为“list_workflow_runs”(对象,可选)时使用
- actions_run_trigger -触发GitHub操作工作流操作
- 所需OAuth范围: repo - inputs:工作流接受的输入。仅用于“run_workflow”方法。(对象,可选) - method:要执行的方法(string,必填) - 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。(布尔值,可选) - job_id:工作流作业的唯一标识符。获取单个作业的日志时需要。(数字,可选) - owner:存储库所有者(字符串,必填) - repo:存储库名称(字符串,必填) - return_content:返回实际日志内容而不是URL(布尔值,可选) - run_id:工作流运行的唯一标识符。当failed_only为true时,需要获取运行中所有失败作业的日志。(数字,可选) - tail_lines:从日志末尾返回的行数(数字,可选)
Code Security
- get_code_scanning_alert -获取代码扫描警报
- 所需OAuth范围: security_events - 已接受的OAuth范围: repo, security_events - alertNumber:警报的编号。(数字,必填) - owner:存储库的所有者。(字符串,必填) - repo:存储库的名称。(字符串,必填)
- list_code_scanning_alerts -列出代码扫描警报
- 所需OAuth范围: security_events - 已接受的OAuth范围: repo, security_events - owner:存储库的所有者。(字符串,必填) - ref:要列出的结果的Git引用。(字符串,可选) - repo:存储库的名称。(字符串,必填) - severity:按严重性筛选代码扫描警报(字符串,可选) - state:按州筛选代码扫描警报。默认打开(字符串,可选) - tool_name:用于代码扫描的工具的名称。(字符串,可选)
Context
- get_me -获取我的用户资料
- 无需参数
- get_team_members -获取团队成员
- 所需OAuth范围: read:org - 已接受的OAuth范围: admin:org, read:org, write:org - org:包含团队的组织登录名(所有者)。(字符串,必填) - team_slug:团队蛞蝓(字符串,必填)
- get_teams -组建团队
- 所需OAuth范围: read:org - 已接受的OAuth范围: admin:org, read:org, write:org - user:用于获取团队的用户名。如果没有提供,则使用经过身份验证的用户。(字符串,可选)
Dependabot
- get_dependabot_alert -获取可靠性警报
- 所需OAuth范围: security_events - 已接受的OAuth范围: repo, security_events - alertNumber:警报的编号。(数字,必填) - owner:存储库的所有者。(字符串,必填) - repo:存储库的名称。(字符串,必填)
- list_dependabot_alerts -列出可靠性警报
- 所需OAuth范围: security_events - 已接受的OAuth范围: repo, security_events - owner:存储库的所有者。(字符串,必填) - repo:存储库的名称。(字符串,必填) - severity:按严重性过滤可靠性警报(字符串,可选) - state:按州过滤可靠性警报。默认打开(字符串,可选)
Discussions
- get_discussion -获取讨论
- 所需OAuth范围: repo - discussionNumber:讨论编号(数字,必填) - owner:存储库所有者(字符串,必填) - repo:存储库名称(字符串,必填)
- get_discussion_comments -获取讨论评论
- 所需OAuth范围: repo - after:分页光标。使用上一页PageInfo中的endCursor用于GraphQL API。(字符串,可选) - discussionNumber:讨论编号(数字,必填) - owner:存储库所有者(字符串,必填) - perPage:分页每页结果(最少1个,最多100个)(数量,可选) - repo:存储库名称(字符串,必填)
- 列表_讨论_类别 -列出讨论类别
- 所需OAuth范围: repo - owner:存储库所有者(字符串,必填) - repo:存储库名称。如果没有提供,将在组织级别查询讨论类别。(字符串,可选)
- list_讨论 -列出讨论
- 所需OAuth范围: repo - after:分页光标。使用上一页PageInfo中的endCursor用于GraphQL API。(字符串,可选) - category:可选的按讨论类别ID筛选。如果提供,则仅列出具有此类别的讨论。(字符串,可选) - direction:订单方向。(字符串,可选) - orderBy:按字段排序讨论。如果提供,还需要提供“方向”。(字符串,可选) - owner:存储库所有者(字符串,必填) - perPage:分页每页结果(最少1个,最多100个)(数量,可选) - repo:存储库名称。如果没有提供,将在组织层面进行讨论。(字符串,可选)
Gists
- 创建列表 -创建Gist
- 所需OAuth范围: gist - content:用于创建简单单文件要点的内容(字符串,必填) - description:要点描述(字符串,可选) - filename:用于创建简单单文件要点的文件名(字符串,必填) - public:要点是否公开(布尔值,可选)
- 获取列表 -获取Gist内容
- gist_id:要点的ID(字符串,必填)
- 列表列表 -列出Gists
- page:分页页码(最少1页)(数字,可选) - perPage:分页每页结果(最少1个,最多100个)(数量,可选) - since:仅在此时间之后更新注册表(ISO 8601时间戳)(字符串,可选) - username:GitHub用户名(对于经过身份验证的用户的注册表省略)(字符串,可选)
- update_gist -更新Gist
- 所需OAuth范围: gist - content:文件内容(字符串,必填) - description:更新了要点描述(字符串,可选) - filename:要更新或创建的文件名(字符串,必填) - gist_id:要更新的要点的ID(字符串,必填)
Git
- get_pository_tree -获取存储库树
- 所需OAuth范围: repo - owner:存储库所有者(用户名或组织)(字符串,必填) - path_filter:用于过滤树结果的可选路径前缀(例如,“src/”仅显示src目录中的文件)(string,可选) - recursive:将此参数设置为true将返回树引用的对象或子树。默认值为false(布尔值,可选) - repo:存储库名称(字符串,必填) - tree_sha:树的SHA1值或ref(分支或标记)名称。默认为存储库的默认分支(字符串,可选)
Issues
- add_issue_comment -向问题添加评论
- 所需OAuth范围: repo - body:评论内容(字符串,必填) - issue_number:要评论的问题编号(编号,必填) - owner:存储库所有者(字符串,必填) - repo:存储库名称(字符串,必填)
- assign_copilot_to_oissue -分配副本以发布
- 所需OAuth范围: repo - base_ref:代理将从其开始工作的Git引用(例如分支)。如果未指定,则默认为存储库的默认分支(字符串,可选) - custom_instructions:可选的自定义说明,用于指导代理超越问题正文。使用此选项提供问题描述中未包含的其他上下文、约束或指导(字符串,可选) - issue_number:问题编号(编号,必填) - owner:存储库所有者(字符串,必填) - repo:存储库名称(字符串,必填)
- get_label -从存储库中获取特定标签。
- 所需OAuth范围: repo - name:标签名称。(字符串,必填) - owner:存储库所有者(用户名或组织名称)(字符串,必填) - repo:存储库名称(字符串,必填)
- issue_read -获取问题详细信息
- 所需OAuth范围: repo - issue_number:问题编号(数字,必填) - method:对单个问题执行的读取操作。 选项包括: 1. get-获取特定问题的详细信息。 1. get_comments-获取问题注释。 1. get_sub_issues-获取问题的子问题。 1. get_labels-获取分配给问题的标签。 (字符串,必填) - owner:存储库的所有者(字符串,必填) - page:分页页码(最少1页)(数字,可选) - perPage:分页每页结果(最少1个,最多100个)(数量,可选) - repo:存储库的名称(字符串,必填)
- issue_write -创建或更新问题。
- 所需OAuth范围: repo - assignees:要分配给此问题的用户名(string\[\],可选) - body:发布正文内容(字符串,可选) - duplicate_of:此问题重复的问题编号。仅在state_reason为“重复”时使用。(数字,可选) - issue_number:要更新的问题编号(编号,可选) - labels:应用于此问题的标签(string\[\],可选) - method:对单个问题执行写入操作。 选项包括: - “创建”-创建新问题。 - 'update'-更新现有问题。 (字符串,必填) - milestone:里程碑编号(编号,可选) - owner:存储库所有者(字符串,必填) - repo:存储库名称(字符串,必填) - state:新状态(字符串,可选) - state_reason:状态更改的原因。除非状态改变,否则忽略。(字符串,可选) - title:问题标题(字符串,可选) - type:此问题的类型。仅在存储库配置了问题类型时使用。使用list_issue_types工具获取组织的有效类型值。如果存储库不支持问题类型,请省略此参数。(字符串,可选)
- list_issue_types -列出可用的问题类型
- 所需OAuth范围: read:org - 已接受的OAuth范围: admin:org, read:org, write:org - owner:存储库的组织所有者(字符串,必填)
- list_issues -列出问题
- 所需OAuth范围: repo - after:分页光标。使用上一页PageInfo中的endCursor用于GraphQL API。(字符串,可选) - direction:订单方向。如果提供,还需要提供“orderBy”。(字符串,可选) - labels:按标签筛选(string\[\],可选) - orderBy:按字段排序问题。如果提供,还需要提供“方向”。(字符串,可选) - owner:存储库所有者(字符串,必填) - perPage:分页每页结果(最少1个,最多100个)(数量,可选) - repo:存储库名称(字符串,必填) - since:按日期筛选(ISO 8601时间戳)(字符串,可选) - state:按状态筛选,默认情况下,未提供时将返回打开和关闭的问题(字符串,可选)
- 搜索问题 -搜索问题
- 所需OAuth范围: repo - order:排序顺序(字符串,可选) - owner:可选存储库所有者。如果提供了repo,则只列出此存储库的问题。(字符串,可选) - page:分页页码(最少1页)(数字,可选) - perPage:分页每页结果(最少1个,最多100个)(数量,可选) - query:使用GitHub的搜索查询问题搜索语法(字符串,必填) - repo:可选存储库名称。如果与所有者一起提供,则只列出此存储库的问题。(字符串,可选) - sort:按类别匹配数对字段进行排序,默认为最佳匹配(字符串,可选)
- 子问题写入 -更改子问题
- 所需OAuth范围: repo - after_id:要优先处理的子问题的ID(应指定after_ID或before_ID)(数字,可选) - before_id:要优先处理的子问题的ID(应指定after_ID或before_ID)(数字,可选) - issue_number:父问题的编号(编号,必填) - method:对单个子问题执行的操作 选项包括: - “add”-将子问题添加到GitHub存储库中的父问题中。 - “remove”-从GitHub存储库中的父问题中删除子问题。 - “重新确定优先级”-更改GitHub存储库中父问题内子问题的顺序。使用“after_id”或“before_id”指定新位置。 (字符串,必填) - owner:存储库所有者(字符串,必填) - replace_parent:如果为true,则替换子问题的当前父问题。仅与“add”方法一起使用。(布尔值,可选) - repo:存储库名称(字符串,必填) - sub_issue_id:要添加的子问题的ID。ID与问题编号不同(编号,必填)
Labels
- get_label -从存储库中获取特定标签。
- 所需OAuth范围: repo - name:标签名称。(字符串,必填) - owner:存储库所有者(用户名或组织名称)(字符串,必填) - repo:存储库名称(字符串,必填)
- label_write -在存储库标签上写入操作。
- 所需OAuth范围: repo - color:将颜色标记为6个字符的十六进制代码,不带“#”前缀(例如“f29513”)。“create”是必需的,“update”是可选的。(字符串,可选) - description:标签描述文本。可选“创建”和“更新”。(字符串,可选) - method:要执行的操作:“创建”、“更新”或“删除”(字符串,必填) - name:标签名称-所有操作都需要(字符串,必填) - new_name:标签的新名称(仅与“update”方法一起使用以重命名)(字符串,可选) - owner:存储库所有者(用户名或组织名称)(字符串,必填) - repo:存储库名称(字符串,必填)
- list_label -列出存储库中的标签
- 所需OAuth范围: repo - owner:存储库所有者(用户名或组织名称)-所有操作都需要(字符串,必填) - repo:存储库名称-所有操作都需要(字符串,必填)
Notifications
- 解雇通知 -解雇通知
- 所需OAuth范围: notifications - state:通知的新状态(已读/已完成)(字符串,必填) - threadID:通知线程的ID(字符串,必填)
- 获取通知_详细信息 -获取通知详细信息
- 所需OAuth范围: notifications - notificationID:通知的ID(字符串,必填)
- list_通知 -列出通知
- 所需OAuth范围: notifications - before:仅显示在给定时间之前更新的通知(ISO 8601格式)(字符串,可选) - filter:将通知筛选到,除非指定,否则使用默认值。读取通知是用户已经确认的通知。参与通知是指用户直接参与的通知,例如他们评论或创建的问题或拉取请求。(字符串,可选) - owner:可选存储库所有者。如果提供了repo,则只列出此存储库的通知。(字符串,可选) - page:分页页码(最少1页)(数字,可选) - perPage:分页每页结果(最少1个,最多100个)(数量,可选) - repo:可选存储库名称。如果与所有者一起提供,则只列出此存储库的通知。(字符串,可选) - since:仅显示给定时间后更新的通知(ISO 8601格式)(字符串,可选)
- 管理通知订阅 -管理通知订阅
- 所需OAuth范围: notifications - action:要执行的操作:忽略、监视或删除通知订阅。(字符串,必填) - notificationID:通知线程的ID。(字符串,必填)
- 管理_职位_通知_订阅 -管理存储库通知订阅
- 所需OAuth范围: notifications - action:要执行的操作:忽略、监视或删除存储库通知订阅。(字符串,必填) - owner:存储库的帐户所有者。(字符串,必填) - repo:存储库的名称。(字符串,必填)
- mark_all_通知_阅读 -将所有通知标记为已读
- 所需OAuth范围: notifications - lastReadAt:描述检查通知的最后一点(可选)。默认值:Now(字符串,可选) - owner:可选存储库所有者。如果提供了repo,则只有此存储库的通知被标记为已读。(字符串,可选) - repo:可选存储库名称。如果与所有者一起提供,则只有此存储库的通知标记为已读。(字符串,可选)
Organizations
- 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”。搜索范围会自动限定为类型:org。(字符串,必填) - sort:按类别对字段进行排序(字符串,可选)
Projects
- 项目_获取 -获取GitHub项目资源的详细信息
- 所需OAuth范围: read:project - 已接受的OAuth范围: project, read:project - field_id:“get_project_field”方法需要字段的ID。(数字,可选) - fields:获取项目项时要包含在响应中的字段ID的具体列表(例如\[“102589”、“985201”、“169875”\])。如果未提供,则仅包括标题字段。仅用于“get_project_item”方法。(string\[\],可选) - item_id:“get_project_item”方法需要该项的ID。(数字,可选) - method:要执行的方法(string,必填) - owner:所有者(用户或组织登录)。名称不区分大小写。(字符串,必填) - owner_type:所有者类型(用户或组织)。如果没有提供,将自动检测。(字符串,可选) - project_number:项目编号。(数字,必填)
- 项目列表 -列出GitHub项目资源
- 所需OAuth范围: read:project - 已接受的OAuth范围: project, read:project - after:将分页光标从上一页转到Info.nextCursor。(字符串,可选) - before:从上一页向后分页光标Info.prevCursor(罕见)。(字符串,可选) - fields:列出项目项时要包含的字段ID(例如\[“102589”、“985201”\])。关键:始终提供以获取字段值。如果没有这个,只有头衔会回来。仅用于“list_project_items”方法。(string\[\],可选) - method:要执行的操作(字符串,必填) - owner:所有者(用户或组织登录)。名称不区分大小写。(字符串,必填) - owner_type:所有者类型(用户或组织)。如果没有提供,将自动尝试两者。(字符串,可选) - per_page:每页结果(最多50个)(数量,可选) - project_number:项目编号。“list_project_fields”和“list_prooject_items”方法必需。(数字,可选) - query:筛选器/查询字符串。对于list_projects:按标题文本和状态进行筛选(例如“路线图是:打开”)。对于list_project_items:使用GitHub的项目过滤语法进行高级过滤。(字符串,可选)
- 项目_写 -修改GitHub项目项
- 所需OAuth范围: project - issue_number:问题编号(当“add_project_item”方法的item_type为“issue”时使用)。提供issue_number或pull_request_number。(数字,可选) - item_id:“update_project_item”和“delete_project_item'方法所需的项目项ID。(数字,可选) - item_owner:包含问题或拉取请求的存储库的所有者(用户或组织)。“add_project_item”方法必需。(字符串,可选) - item_repo:包含问题或拉取请求的存储库的名称。“add_project_item”方法必需。(字符串,可选) - item_type:项目的类型,issue或pull_request。“add_project_item”方法必需。(字符串,可选) - method:要执行的方法(string,必填) - owner:项目所有者(用户或组织登录)。名称不区分大小写。(字符串,必填) - owner_type:所有者类型(用户或组织)。如果没有提供,将自动检测。(字符串,可选) - project_number:项目编号。(数字,必填) - pull_request_number:拉取请求编号(当item_type为“pull_request”时,用于“add_project_item”方法)。提供issue_number或pull_request_number。(数字,可选) - updated_field:对象,由要更新的项目字段的ID和字段的新值组成。要清除该字段,请将值设置为null。示例:{“id”:123456,“value”:“New value”}。“update_project_item”方法必需。(对象,可选)
Pull Requests
- add_comment_to_pending_view -在请求者的最新待处理拉取请求审核中添加审核评论
- 所需OAuth范围: repo - body:审查意见的文本(字符串,必填) - line:注释应用于的拉取请求差异中blob的行。对于多行注释,范围的最后一行(数字,可选) - owner:存储库所有者(字符串,必填) - path:需要注释的文件的相对路径(字符串,必填) - pullNumber:拉取请求号(number,必填) - repo:存储库名称(字符串,必填) - side:要注释的diff侧。LEFT表示以前的状态,RIGHT表示新的状态(字符串,可选) - startLine:对于多行注释,注释适用范围的第一行(数字,可选) - startSide:对于多行注释,注释所应用的diff的起始侧。LEFT表示之前的状态,RIGHT表示新的状态(字符串,可选) - subjectType:评论的目标级别(字符串,必填)
- create_pull_request -打开新的拉取请求
- 所需OAuth范围: repo - base:要合并的分支(字符串,必填) - body:PR描述(字符串,可选) - draft:创建为PR草稿(布尔值,可选) - head:包含更改的分支(字符串,必填) - maintainer_can_modify:允许维护者编辑(布尔值,可选) - owner:存储库所有者(字符串,必填) - repo:存储库名称(字符串,必填) - title:PR标题(字符串,必填)
- list_pull_requests -列出拉取请求
- 所需OAuth范围: repo - base:按基分支筛选(字符串,可选) - direction:排序方向(字符串,可选) - head:按主用户/组织和分支机构过滤(字符串,可选) - owner:存储库所有者(字符串,必填) - page:分页页码(最少1页)(数字,可选) - perPage:分页每页结果(最少1个,最多100个)(数量,可选) - repo:存储库名称(字符串,必填) - sort:排序方式(字符串,可选) - state:按状态筛选(字符串,可选)
- 合并请求 -合并拉取请求
- 所需OAuth范围: repo - commit_message:合并提交的额外细节(字符串,可选) - commit_title:合并提交的标题(字符串,可选) - merge_method:合并方法(字符串,可选) - owner:存储库所有者(字符串,必填) - pullNumber:拉取请求号(number,必填) - repo:存储库名称(字符串,必填)
- pull_request_read -获取单个pull请求的详细信息
- 所需OAuth范围: repo - method:指定需要从GitHub检索哪些拉取请求数据的操作。 可能的选项: 1. get-获取特定拉取请求的详细信息。 1. get_diff-获取拉取请求的差异。 1. get_status-获取pull请求中head提交的状态。这反映了构建和检查的状态。 1. get_files-获取拉取请求中更改的文件列表。与分页参数一起使用,以控制返回的结果数量。 1. get_view_comments-获取拉取请求的审核线程。每个线程都包含在拉取请求审查期间对同一代码位置进行逻辑分组的审查评论。返回带有元数据(isResolved、isOutdated、isCollapse)及其相关注释的线程。使用基于光标的分页(perPage,after)来控制结果。 1. get_reviews-获取拉取请求的评论。当被要求提供评论时,使用get_view_comments方法。 1. get_comments-获取pull请求的注释。如果用户不特别想要评论,请使用此选项。与分页参数一起使用,以控制返回的结果数量。 (字符串,必填) - owner:存储库所有者(字符串,必填) - page:分页页码(最少1页)(数字,可选) - perPage:分页每页结果(最少1个,最多100个)(数量,可选) - pullNumber:拉取请求号(number,必填) - repo:存储库名称(字符串,必填)
- pull_request_review_write -对pull请求评论进行写操作(创建、提交、删除)。
- 所需OAuth范围: repo - body:查看评论文本(字符串,可选) - commitID:提交审查的SHA(字符串,可选) - event:查看要执行的操作。(字符串,可选) - method:对拉取请求审核执行的写入操作。(字符串,必填) - owner:存储库所有者(字符串,必填) - pullNumber:拉取请求号(number,必填) - repo:存储库名称(字符串,必填)
- request_copilot_review -请求副驾驶审核
- 所需OAuth范围: repo - owner:存储库所有者(字符串,必填) - pullNumber:拉取请求号(number,必填) - repo:存储库名称(字符串,必填)
- search_pull_requests -搜索拉取请求
- 所需OAuth范围: repo - order:排序顺序(字符串,可选) - owner:可选存储库所有者。如果提供了repo,则只列出此存储库的pull请求。(字符串,可选) - page:分页页码(最少1页)(数字,可选) - perPage:分页每页结果(最少1个,最多100个)(数量,可选) - query:使用GitHub pull请求搜索语法搜索查询(字符串,必填) - repo:可选存储库名称。如果提供了所有者,则只列出此存储库的拉取请求。(字符串,可选) - sort:按类别匹配数对字段进行排序,默认为最佳匹配(字符串,可选)
- update_pull_request -编辑拉取请求
- 所需OAuth范围: repo - base:新的基础分支名称(字符串,可选) - body:新描述(字符串,可选) - draft:将pull请求标记为草稿(true)或准备审核(false)(布尔值,可选) - maintainer_can_modify:允许维护者编辑(布尔值,可选) - owner:存储库所有者(字符串,必填) - pullNumber:拉取请求编号进行更新(编号,必填) - repo:存储库名称(字符串,必填) - reviewers:请求评论的GitHub用户名(string\[\],可选) - state:新状态(字符串,可选) - title:新标题(字符串,可选)
- update_pull_request_branch -更新拉取请求分支
- 所需OAuth范围: repo - expectedHeadSha:拉取请求的HEAD引用的预期SHA(字符串,可选) - owner:存储库所有者(字符串,必填) - pullNumber:拉取请求号(number,必填) - repo:存储库名称(字符串,必填)
Repositories
- create_branch -创建分支
- 所需OAuth范围: repo - branch:新分支的名称(字符串,必填) - from_branch:源分支(默认为repo-default)(字符串,可选) - owner:存储库所有者(字符串,必填) - repo:存储库名称(字符串,必填)
- create_or_update_file -创建或更新文件
- 所需OAuth范围: repo - branch:创建/更新文件的分支(字符串,必填) - content:文件内容(字符串,必填) - message:提交消息(字符串,必填) - owner:存储库所有者(用户名或组织)(字符串,必填) - path:创建/更新文件的路径(字符串,必填) - repo:存储库名称(字符串,必填) - sha:被替换文件的blob SHA。(字符串,可选)
- 创建存储库 -创建存储库
- 所需OAuth范围: repo - autoInit:使用README进行初始化(布尔值,可选) - description:存储库描述(字符串,可选) - name:存储库名称(字符串,必填) - organization:要在其中创建存储库的组织(省略在您的个人帐户中创建)(字符串,可选) - private:repo是否应该是私有的(布尔值,可选)
- 删除文件 -删除文件
- 所需OAuth范围: repo - branch:从中删除文件的分支(字符串,必填) - message:提交消息(字符串,必填) - owner:存储库所有者(用户名或组织)(字符串,必填) - path:要删除的文件的路径(字符串,必填) - repo:存储库名称(字符串,必填)
- fork存储 -Fork存储库
- 所需OAuth范围: repo - organization:要分叉的组织(字符串,可选) - owner:存储库所有者(字符串,必填) - repo:存储库名称(字符串,必填)
- get_提交 -获取提交详细信息
- 所需OAuth范围: repo - include_diff:是否在响应中包含文件差异和统计信息。默认值为true。(布尔值,可选) - owner:存储库所有者(字符串,必填) - page:分页页码(最少1页)(数字,可选) - perPage:分页每页结果(最少1个,最多100个)(数量,可选) - repo:存储库名称(字符串,必填) - sha:提交SHA、分支名称或标记名称(字符串,必填)
- 获取_文件_内容 -获取文件或目录内容
- 所需OAuth范围: repo - owner:存储库所有者(用户名或组织)(字符串,必填) - path:文件/目录的路径(字符串,可选) - ref:接受可选的git引用,例如 refs/tags/{tag}, refs/heads/{branch} 或 refs/pull/{pr_number}/head (字符串,可选) - repo:存储库名称(字符串,必填) - sha:接受可选的提交SHA。如果指定,将使用它来代替ref(string,可选)
- 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_brances -列出分支
- 所需OAuth范围: repo - owner:存储库所有者(字符串,必填) - page:分页页码(最少1页)(数字,可选) - perPage:分页每页结果(最少1个,最多100个)(数量,可选) - repo:存储库名称(字符串,必填)
- list_commits -列表提交
- 所需OAuth范围: repo - author:用于过滤提交的作者用户名或电子邮件地址(字符串,可选) - owner:存储库所有者(字符串,必填) - page:分页页码(最少1页)(数字,可选) - perPage:分页每页结果(最少1个,最多100个)(数量,可选) - repo:存储库名称(字符串,必填) - sha:提交SHA、分支或标签名称以列出提交。如果没有提供,则使用存储库的默认分支。如果提供了提交SHA,将列出该SHA之前的提交。(字符串,可选)
- list_releases -列表发布
- 所需OAuth范围: repo - owner:存储库所有者(字符串,必填) - page:分页页码(最少1页)(数字,可选) - perPage:分页每页结果(最少1个,最多100个)(数量,可选) - repo:存储库名称(字符串,必填)
- list_tags -列表标签
- 所需OAuth范围: repo - owner:存储库所有者(字符串,必填) - page:分页页码(最少1页)(数字,可选) - perPage:分页每页结果(最少1个,最多100个)(数量,可选) - repo:存储库名称(字符串,必填)
- 推送文件 -将文件推送到存储库
- 所需OAuth范围: repo - branch:要推送的分支(字符串,必填) - files:要推送的文件对象数组,每个对象都有路径(字符串)和内容(字符串)(object\[\],必填) - message:提交消息(字符串,必填) - owner:存储库所有者(字符串,必填) - repo:存储库名称(字符串,必填)
- 搜索代码 -搜索代码
- 所需OAuth范围: repo - order:结果的排序顺序(字符串,可选) - page:分页页码(最少1页)(数字,可选) - perPage:分页每页结果(最少1个,最多100个)(数量,可选) - query:使用GitHub强大的代码搜索语法搜索查询。示例:“内容:技能语言:Java组织:github”,“不是:存档语言:Python或语言:go”,“仓库:github/github mcp服务器”。支持精确匹配、语言过滤器、路径过滤器等。(字符串,必填) - sort:排序字段(仅“索引”)(字符串,可选)
- search_repositories -搜索存储库
- 所需OAuth范围: repo - minimal_output:返回最小存储库信息(默认值:true)。如果为false,则返回完整的GitHub API存储库对象。(布尔值,可选) - order:排序顺序(字符串,可选) - page:分页页码(最少1页)(数字,可选) - perPage:分页每页结果(最少1个,最多100个)(数量,可选) - query:存储库搜索查询。示例:“机器学习:name-stars:>1000语言:python”,“主题:反应”,“用户:脸书”。支持高级搜索语法以进行精确筛选。(字符串,必填) - sort:按字段对存储库进行排序,默认为最佳匹配(字符串,可选)
Secret Protection
- get_secret_scanning_alert -获取秘密扫描警报
- 所需OAuth范围: security_events - 已接受的OAuth范围: repo, security_events - alertNumber:警报的编号。(数字,必填) - owner:存储库的所有者。(字符串,必填) - repo:存储库的名称。(字符串,必填)
- list_secret_scaning_alerts -列出秘密扫描警报
- 所需OAuth范围: security_events - 已接受的OAuth范围: repo, security_events - owner:存储库的所有者。(字符串,必填) - repo:存储库的名称。(字符串,必填) - resolution:按分辨率筛选(字符串,可选) - secret_type:以逗号分隔的要返回的秘密类型列表。返回所有默认的秘密模式。要返回泛型模式,请在参数中传递令牌名称。(字符串,可选) - state:按状态筛选(字符串,可选)
Security Advisories
- 全球安全咨询 -获取全球安全咨询
- 所需OAuth范围: security_events - 已接受的OAuth范围: repo, security_events - ghsaId:GitHub安全咨询ID(格式:GHSA xxxx-xxxx-xxxx)。(字符串,必填)
- 列表_全球安全_建议 -列出全球安全建议
- 所需OAuth范围: security_events - 已接受的OAuth范围: repo, security_events - affects:按受影响的包或版本过滤公告(例如“package1,package2@1.0.0“)。(字符串,可选) - cveId:按CVE ID筛选。(字符串,可选) - cwes:按常见弱点枚举ID筛选(例如\[“79”、“284”、“22”\])。(string\[\],可选) - ecosystem:按包装生态系统过滤。(字符串,可选) - ghsaId:按GitHub安全咨询ID筛选(格式:GHSA xxxx-xxxx-xxxx)。(字符串,可选) - isWithdrawn:是否只返回撤回的建议。(布尔值,可选) - modified:按发布或更新日期或日期范围(ISO 8601日期或范围)筛选。(字符串,可选) - published:按发布日期或日期范围(ISO 8601日期或范围)筛选。(字符串,可选) - severity:按严重程度过滤。(字符串,可选) - type:咨询类型。(字符串,可选) - updated:按更新日期或日期范围(ISO 8601日期或范围)筛选。(字符串,可选)
- list_org_repository_security_advisories -列出组织存储库安全建议
- 所需OAuth范围: security_events - 已接受的OAuth范围: repo, security_events - direction:排序方向。(字符串,可选) - org:组织登录。(字符串,必填) - sort:排序字段。(字符串,可选) - state:按咨询状态筛选。(字符串,可选)
- list_repository_security_advisories -列出存储库安全建议
- 所需OAuth范围: security_events - 已接受的OAuth范围: repo, security_events - direction:排序方向。(字符串,可选) - owner:存储库的所有者。(字符串,必填) - repo:存储库的名称。(字符串,必填) - sort:排序字段。(字符串,可选) - state:按咨询状态筛选。(字符串,可选)
Stargazers
- list_starred_存储库 -列出带星号的存储库
- 所需OAuth范围: repo - direction:结果排序的方向。(字符串,可选) - page:分页页码(最少1页)(数字,可选) - perPage:分页每页结果(最少1个,最多100个)(数量,可选) - sort:如何对结果进行排序。可以是“创建”(当存储库被标记时)或“更新”(当上次推送到存储库时)。(字符串,可选) - username:列出星号存储库的用户名。默认为经过身份验证的用户。(字符串,可选)
- 恒星储存 -Star存储库
- 所需OAuth范围: repo - owner:存储库所有者(字符串,必填) - repo:存储库名称(字符串,必填)
- unstar_repository -非星存储库
- 所需OAuth范围: repo - owner:存储库所有者(字符串,必填) - repo:存储库名称(字符串,必填)
Users
- 搜索用户 -搜索用户
- 所需OAuth范围: repo - order:排序顺序(字符串,可选) - page:分页页码(最少1页)(数字,可选) - perPage:分页每页结果(最少1个,最多100个)(数量,可选) - query:用户搜索查询。示例:“约翰·史密斯”,“地点:西雅图”,“关注者:>100”。搜索自动限定为type:user。(字符串,必填) - sort:按关注者或存储库的数量或用户加入GitHub的时间对用户进行排序。(字符串,可选)
远程GitHub MCP服务器中的其他工具
Copilot
- create_pull_request_with_copilot -使用GitHub Copilot编码代理执行任务
- owner:存储库所有者。您可以猜测所有者,但在继续之前请与用户确认。(字符串,必填) - repo:存储库名称。您可以猜测存储库名称,但在继续之前请与用户确认。(字符串,必填) - problem_statement:要执行的任务的详细描述(例如,“实现执行X的功能”、“修复错误Y”等)(字符串,必填) - title:将创建的拉取请求的标题(字符串,必填) - base_ref:代理将从其开始工作的Git引用(例如分支)。如果未指定,则默认为存储库的默认分支(字符串,可选)
Copilot Spaces
- get_copilot_space -获取副驾驶空间
- owner:空间的所有者。(字符串,必填) - name:空间的名称。(字符串,必填)
- list_copilot_spaces -列出副驾驶空间
GitHub Support Docs Search
- github支持.docs搜索 -检索与回答GitHub产品和支持问题相关的文档。支持主题包括:GitHub操作工作流、身份验证、GitHub支持查询、拉取请求实践、存储库维护、GitHub页面、GitHub包、GitHub讨论、副本空间
- query:用户关于他们需要回答的问题的输入。这是最新未经编辑的原始用户消息。您应该始终保持用户消息的原样,永远不要修改它。(字符串,必填)
动态工具发现
备注:此功能目前处于测试阶段,在远程GitHub MCP服务器中不可用。请测试一下,如果您遇到任何问题,请告诉我们。
您可以启用动态工具集发现,而不是从启用所有工具开始。动态工具集允许MCP主机根据用户提示列出并启用工具集。这应该有助于避免模型被大量可用工具混淆的情况。
使用动态工具发现
使用二进制时,您可以传递 --dynamic-toolsets 旗帜。
./github-mcp-server --dynamic-toolsets使用Docker时,可以将工具集作为环境变量传递:
docker run -i --rm \
-e GITHUB_PERSONAL_ACCESS_TOKEN= \
-e GITHUB_DYNAMIC_TOOLSETS=1 \
ghcr.io/github/github-mcp-server只读模式
要以只读模式运行服务器,可以使用 --read-only 旗帜。这将只提供只读工具,防止对存储库、问题、拉取请求等进行任何修改。
./github-mcp-server --read-only使用Docker时,可以将只读模式作为环境变量传递:
docker run -i --rm \
-e GITHUB_PERSONAL_ACCESS_TOKEN= \
-e GITHUB_READ_ONLY=1 \
ghcr.io/github/github-mcp-server锁定模式
锁定模式限制了服务器从公共存储库中显示的内容。启用后,服务器会检查每个项目的作者是否具有对存储库的推送访问权限。私有存储库不受影响,合作者可以完全访问自己的内容。
./github-mcp-server --lockdown-mode使用Docker运行时,设置相应的环境变量:
docker run -i --rm \
-e GITHUB_PERSONAL_ACCESS_TOKEN= \
-e GITHUB_LOCKDOWN_MODE=1 \
ghcr.io/github/github-mcp-server锁定模式的行为取决于调用的工具。
当作者缺少推送访问权限时,以下工具将返回错误:
issue_read:getpull_request_read:get
以下工具将过滤掉缺乏推送访问权限的用户的内容:
issue_read:get_commentsissue_read:get_sub_issuespull_request_read:get_commentspull_request_read:get_review_commentspull_request_read:get_reviews
i18n/覆盖性描述
通过创建 github-mcp-server-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 旗帜。
此标志将保留您在添加时所做的任何翻译/覆盖 自上次您使用二进制文件以来添加到二进制文件中的任何新翻译 出口。
./github-mcp-server --export-translations
cat github-mcp-server-config.json您还可以使用ENV变量来覆盖描述。环境 变量名与JSON文件中的键相同,前缀为 GITHUB_MCP_ 全部大写。
例如,要覆盖 TOOL_ADD_ISSUE_COMMENT_DESCRIPTION 工具,你可以 设置以下环境变量:
export GITHUB_MCP_TOOL_ADD_ISSUE_COMMENT_DESCRIPTION="an alternative description"图书馆使用情况
该模块导出的Go API当前应被视为不稳定,并可能发生中断更改。未来,我们可能会提供稳定;如果存在有价值的用例,请提交一个问题。
许可证
该项目根据麻省理工学院开源许可证条款获得许可。请参考 麻省理工学院 完整的条款。
