如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
GitHub MCP Server 将AI工具直接连接到GitHub平台。这使AI智能体、助手和聊天机器人能够读取仓库和代码文件、管理issues和PRs、分析代码以及自动化工作流。所有这些都通过自然语言交互实现。
专为希望将其AI工具连接到GitHub上下文和功能的开发者打造,支持从简单的自然语言查询到复杂的多步骤智能体工作流。
如需快速安装,请使用上方的一键安装按钮之一。完成该流程后,切换智能体模式(位于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
}
]
}
[!NOTE] 每个MCP主机应用程序需要配置GitHub App或OAuth App以支持通过OAuth进行远程访问。任何支持远程MCP服务器的主机应用程序都应支持使用PAT身份验证的远程GitHub服务器。配置详情和支持级别因主机而异。请务必参考主机应用程序的文档以获取更多信息。
工具集配置
有关远程服务器配置、工具集、标头和高级用法的完整详情,请参见远程服务器文档。该文件提供了在VS Code和其他MCP主机中连接、自定义和安装远程GitHub MCP Server的全面说明和示例。
未指定工具集时,将使用默认工具集。
预览版模式
抢先体验新功能! 远程服务器提供预览版,可抢先体验新功能和实验性工具。
使用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"
}
}
}
}
有关更多详情和示例,请参见远程服务器文档,有关可用功能的完整列表,请参见预览版功能。
GitHub企业版
具有数据驻留的GitHub Enterprise Cloud(ghe.com)
GitHub Enterprise Cloud也可以使用远程服务器。
使用GitHub PAT令牌的https://octocorp.ghe.com示例:
{
...
"github-octocorp": {
"type": "http",
"url": "https://copilot-api.octocorp.ghe.com/mcp",
"headers": {
"Authorization": "Bearer ${input:github_mcp_pat}"
}
},
...
}
[!NOTE] 使用VS Code和GitHub Copilot通过OAuth与GitHub企业版配合使用时,还需要将VS Code设置配置为指向您的GitHub企业版实例 - 参见https://docs.github.com/en/enterprise-cloud@latest/copilot/how-tos/configure-personal-settings/authenticate-to-ghecom
GitHub Enterprise Server
GitHub Enterprise Server不支持远程服务器托管。请参考本地服务器配置中的GitHub Enterprise Server和具有数据驻留的Enterprise Cloud(ghe.com)。
ghcr.io/github/github-mcp-server。该镜像是公开的;如果拉取时出现错误,您可能有过期的令牌,需要执行docker logout ghcr.io。为确保您的GitHub PAT安全并可在不同MCP主机间重用:
export GITHUB_PAT=your_token_here
或者创建.env文件:
GITHUB_PAT=your_token_here
如需快速安装,请使用上方的一键安装按钮之一。完成该流程后,切换代理模式(位于 Copilot 聊天文本输入框旁边),服务器将启动。
有关在 VS Code 中使用 MCP 服务器工具的更多信息,请参阅 代理模式文档。
将以下 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 的文件中。这将允许您与接受相同格式的其他宿主应用程序共享配置。
不含 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/github/github-mcp-server"
],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "${input:github_token}"
}
}
}
}
对于其他 MCP 宿主应用程序,请参阅我们的安装指南:
有关所有安装选项的完整概述,请参阅我们的 安装指南索引。
[!NOTE] 任何支持本地 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": " "
}
}
}
}
}
github-mcp-server 二进制文件包含一些有助于调试和探索服务器的 CLI 子命令。
github-mcp-server tool-search " " 按名称、描述和输入参数名称搜索工具。使用 --max-results 返回更多匹配项。
示例(彩色输出需要 TTY;在 Docker 中运行时使用 docker run -t(或 -it)):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 标志启用或禁用特定功能组。这使您能够控制 AI 工具可使用哪些 GitHub API 功能。仅启用所需的工具集有助于 LLM 选择工具并减少上下文大小。
Toolsets are not limited to Tools. Relevant MCP Resources and Prompts are also included where applicable.
未指定工具集时,将使用 默认工具集。
[!NOTE] 寻找示例?请参阅 服务器配置指南,了解最小设置、只读模式以及工具与工具集组合等常见方案。
指定工具集
要指定 LLM 可用的工具集,您可以通过两种方式传递允许列表:
github-mcp-server --toolsets repos,issues,pull_requests,actions,code_security
GITHUB_TOOLSETS="repos,issues,pull_requests,actions,code_security" ./github-mcp-server
"all" 工具集
特殊工具集 all 可用于启用所有可用工具集,无论其他配置如何:
./github-mcp-server --toolsets all
或者使用环境变量:
GITHUB_TOOLSETS="all" ./github-mcp-server
"default" 工具集
默认工具集 default 是在未指定任何工具集时传递给服务器的配置。
默认配置包括:
要保留默认配置并添加其他工具集:
GITHUB_TOOLSETS="default,stargazers" ./github-mcp-server
Copilot
assign_copilot_to_issue - 将 Copilot 分配给议题
必填 OAuth 作用域:repo
base_ref:代理开始工作的 Git 引用(例如分支)。如果未指定,默认为仓库的默认分支(字符串,可选)
custom_instructions:超出议题正文的可选自定义指令,用于指导代理。使用此参数提供议题描述中未包含的额外上下文、约束或指导(字符串,可选)
issue_number:议题编号(数字,必填)
owner:仓库所有者(字符串,必填)
repo:仓库名称(字符串,必填)
request_copilot_review - 请求 Copilot 审核
必填 OAuth 作用域:repo
owner:仓库所有者(字符串,必填)
pullNumber:拉取请求编号(数字,必填)
repo:仓库名称(字符串,必填)
Gists
create_gist - 创建 Gist
Required OAuth Scopes:gist
content:用于创建简单单文件 Gist 的内容(string,必填)
description:Gist 的描述(string,可选)
filename:用于创建简单单文件 Gist 的文件名(string,必填)
public:Gist 是否公开(boolean,可选)
get_gist - 获取 Gist 内容
gist_id:Gist 的 ID(string,必填)
list_gists - 列出 Gists
page:分页页码(最小值 1)(number,可选)
perPage:分页每页结果数(最小值 1,最大值 100)(number,可选)
since:仅返回在此时间之后更新的 Gist(ISO 8601 时间戳)(string,可选)
username:GitHub 用户名(若要获取已认证用户的 Gist,可省略)(string,可选)
update_gist - 更新 Gist
Required OAuth Scopes:gist
content:文件内容(string,必填)
description:Gist 的更新描述(string,可选)
filename:要更新或创建的文件名(string,必填)
gist_id:要更新的 Gist 的 ID(string,必填)
Git
repoowner:仓库所有者(用户名或组织)(string,必填)path_filter:用于过滤树结果的可选路径前缀(例如,'src/' 仅显示 src 目录中的文件)(string,可选)recursive:将此参数设置为 true 会返回树引用的对象或子树。默认为 false(boolean,可选)repo:仓库名称(string,必填)tree_sha:树的 SHA1 值或引用(分支或标签)名称。默认为仓库的默认分支(string,可选)Issues
add_issue_comment - 为 issue 添加评论
Required OAuth Scopes:repo
body:评论内容(string,必填)
issue_number:要评论的 issue 编号(number,必填)
owner:仓库所有者(string,必填)
repo:仓库名称(string,必填)
get_label - 从仓库获取特定标签
Required OAuth Scopes:repo
name:标签名称。(string,必填)
owner:仓库所有者(用户名或组织名称)(string,必填)
repo:仓库名称(string,必填)
issue_read - 获取 issue 详情
Required OAuth Scopes:repo
issue_number:issue 的编号(number,必填)
method:对单个 issue 执行的读取操作。选项包括:1. get - 获取特定 issue 的详情。2. get_comments - 获取 issue 评论。3. get_sub_issues - 获取 issue 的子 issue。4. get_labels - 获取分配给 issue 的标签。(string,必填)
owner:仓库所有者(string,必填)
page:分页页码(最小值 1)(number,可选)
perPage:分页每页结果数(最小值 1,最大值 100)(number,可选)
repo:仓库名称(string,必填)
issue_write - 创建或更新 issue
Required OAuth Scopes:repo
assignees:要分配到此 issue 的用户名(string[],可选)
body:issue 正文内容(string,可选)
duplicate_of:此 issue 重复的 issue 编号。仅当 state_reason 为 'duplicate' 时使用。(number,可选)
issue_number:要更新的 issue 编号(number,可选)
labels:要应用于此 issue 的标签(string[],可选)
method:对单个 issue 执行的写入操作。选项包括:- 'create' - 创建新 issue。- 'update' - 更新现有 issue。(string,必填)
milestone:里程碑编号(number,可选)
owner:仓库所有者(string,必填)
repo:仓库名称(string,必填)
state:新状态(string,可选)
state_reason:状态变更的原因。除非状态已更改,否则将被忽略。(string,可选)
title:issue 标题(string,可选)
type:此 issue 的类型。仅当仓库已配置 issue 类型时使用。使用 list_issue_types 工具获取组织的有效类型值。如果仓库不支持 issue 类型,请省略此参数。(string,可选)
list_issue_types - 列出可用的 issue 类型
Required OAuth Scopes:read:org
Accepted OAuth Scopes:admin:org、read:org、write:org
owner:仓库的组织所有者(string,必填)
list_issues - 列出 issues
Required OAuth Scopes:repo
after:分页游标。对于 GraphQL API,使用上一页 PageInfo 中的 endCursor。(string,可选)
direction:排序方向。如果提供,还需要提供 'orderBy'。(string,可选)
labels:按标签过滤(string[],可选)
orderBy:按字段对 issues 排序。如果提供,还需要提供 'direction'。(string,可选)
owner:仓库所有者(string,必填)
perPage:分页每页结果数(最小值 1,最大值 100)(number,可选)
repo:仓库名称(string,必填)
since:按日期过滤(ISO 8601 时间戳)(string,可选)
state:按状态过滤,未提供时默认返回开放和已关闭的 issues(string,可选)
repoorder:排序顺序(字符串,可选)owner:可选的仓库所有者。如果与repo一同提供,仅列出该仓库的议题。(字符串,可选)page:分页页码(最小值1)(数字,可选)perPage:分页每页结果数(最小值1,最大值100)(数字,可选)query:使用GitHub议题搜索语法的搜索查询(字符串,必填)repo:可选的仓库名称。如果与owner一同提供,仅列出该仓库的议题。(字符串,可选)sort:按分类匹配数排序字段,默认为最佳匹配(字符串,可选)repoafter_id:要排在其后的子议题ID(必须指定after_id或before_id)(数字,可选)before_id:要排在其前的子议题ID(必须指定after_id或before_id)(数字,可选)issue_number:父议题编号(数字,必填)method:对单个子议题执行的操作
选项包括:
owner:仓库所有者(字符串,必填)replace_parent:设为true时,替换子议题当前的父议题。仅与'add'方法一同使用。(布尔值,可选)repo:仓库名称(字符串,必填)sub_issue_id:要添加的子议题ID。ID与议题编号不同(数字,必填)get_label - 获取仓库中的特定标签
所需OAuth作用域:repo
name:标签名称。(字符串,必填)
owner:仓库所有者(用户名或组织名)(字符串,必填)
repo:仓库名称(字符串,必填)
label_write - 仓库标签的写操作
所需OAuth作用域:repo
color:标签颜色,6位十六进制代码,不带'#'前缀(例如,'f29513')。'create'操作必填,'update'操作可选。(字符串,可选)
description:标签描述文本。'create'和'update'操作可选。(字符串,可选)
method:要执行的操作:'create'(创建)、'update'(更新)或'delete'(删除)(字符串,必填)
name:标签名称 - 所有操作都必填(字符串,必填)
new_name:标签的新名称(仅用于'update'方法重命名)(字符串,可选)
owner:仓库所有者(用户名或组织名)(字符串,必填)
repo:仓库名称(字符串,必填)
list_label - 列出仓库中的标签
所需OAuth作用域:repo
owner:仓库所有者(用户名或组织名)- 所有操作都必填(字符串,必填)
repo:仓库名称 - 所有操作都必填(字符串,必填)
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:要执行的操作:忽略(ignore)、关注(watch)或删除(delete)通知订阅。(字符串,必填)
notificationID:通知线程ID。(字符串,必填)
manage_repository_notification_subscription - 管理仓库通知订阅
所需OAuth作用域:notifications
action:要执行的操作:忽略(ignore)、关注(watch)或删除(delete)仓库通知订阅。(字符串,必填)
owner:仓库的账户所有者。(字符串,必填)
repo:仓库名称。(字符串,必填)
mark_all_notifications_read - 将所有通知标记为已读
所需OAuth作用域:notifications
lastReadAt:描述最后检查通知的时间点(可选)。默认值:现在(字符串,可选)
owner:可选的仓库所有者。如果与repo一同提供,仅将该仓库的通知标记为已读。(字符串,可选)
repo:可选的仓库名称。如果与owner一同提供,仅将该仓库的通知标记为已读。(字符串,可选)
read:orgadmin:org、read:org、write:orgorder:排序顺序(字符串,可选)page:分页页码(最小值1)(数字,可选)perPage:分页每页结果数(最小值1,最大值100)(数字,可选)query:组织搜索查询。示例:'microsoft'、'location:california'、'created:>=2025-01-01'。搜索会自动限定为type:org。(字符串,必填)sort:按分类排序字段(字符串,可选)来自真实用户的反馈,见证轩辕镜像的优质服务