如果你使用 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 和 PR、分析代码以及自动化工作流——所有这些都通过自然语言交互实现。
专为希望将其 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 的全面说明和示例。
未指定工具集时,将使用默认工具集。
预览版模式(Insiders Mode)
[!NOTE] 抢先体验新功能!远程服务器提供预览版(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"
}
}
}
}
有关更多详情和示例,请参见 远程服务器文档;有关可用功能的完整列表,请参见 预览版功能。
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}"
}
},
...
}
[!NOTE] 在 VS Code 和 GitHub Copilot 中使用 OAuth 连接 GitHub Enterprise 时,您还需要将 VS Code 设置配置为指向您的 GitHub Enterprise 实例——请参见 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。安全处理 PAT
为确保您的 GitHub PAT 安全并可在不同 MCP 宿主间复用:
export GITHUB_PAT=your_token_here
或创建 .env 文件:
GITHUB_PAT=your_token_here
.env 文件# 添加到 .gitignore 以防止意外提交
echo ".env"
>> .gitignore
# CLI 用法
claude mcp add github -e GITHUB_PERSONAL_ACCESS_TOKEN=$GITHUB_PAT -- docker run -i --rm -e GITHUB_PERSONAL_ACCESS_TOKEN ghcr.io/github/github-mcp-server
# 在配置文件中(如支持)
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "$GITHUB_PAT"
}
[!NOTE] 环境变量支持因宿主应用和 IDE 而异。某些应用程序(如 Windsurf)要求在配置文件中硬编码令牌。
使用 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 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
# 工具与工具集组合使用(叠加)
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" 工具集
特殊工具集 all 可用于启用所有可用工具集,无论其他任何配置如何:
./github-mcp-server --toolsets all
或使用环境变量:
GITHUB_TOOLSETS="all" ./github-mcp-server
"default" 工具集
默认工具集 default 是在未指定任何工具集时传递给服务器的配置。
默认配置包括:
要保留默认配置并添加其他工具集:
GITHUB_TOOLSETS="default,stargazers" ./github-mcp-server
本地 GitHub MCP Server 提供内测版(insiders),可提前访问新功能和实验性工具。
./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 Actions 工作流和 CI/CD 操作相关工具 | |
code_security | 代码安全相关工具,例如 GitHub Code Scanning | |
copilot | Copilot 相关工具 | |
dependabot | Dependabot 相关工具 | |
discussions | GitHub Discussions 相关工具 | |
gists | GitHub Gist 相关工具 | |
git | 用于底层 Git 操作的 GitHub Git API 相关工具 | |
issues | GitHub Issues 相关工具 | |
labels | GitHub Labels 相关工具 | |
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 相关工具 |
| 工具集 | 描述 |
|---|---|
copilot | Copilot 相关工具(例如 Copilot Coding Agent) |
copilot_spaces | Copilot Spaces 相关工具 |
github_support_docs_search | 搜索文档以解答 GitHub 产品和支持问题 |
actions_get - 获取 GitHub Actions 资源(工作流、工作流运行、作业和制品)的详细信息
repomethod:要执行的方法(字符串,必填)owner:仓库所有者(字符串,必填)repo:仓库名称(字符串,必填)resource_id:资源的唯一标识符。根据提供的 "method" 不同而有所变化,请确保提供正确的 ID:
actions_list - 列出仓库中的 GitHub Actions 工作流
repomethod:要执行的操作(字符串,必填)owner:仓库所有者(字符串,必填)page:分页页码(默认:1)(数字,可选)per_page:每页结果数(默认:30,最大值:100)(数字,可选)repo:仓库名称(字符串,必填)resource_id:资源的唯一标识符。根据提供的 "method" 不同而有所变化,请确保提供正确的 ID:
workflow_jobs_filter:工作流作业过滤器。仅在 method 为 'list_workflow_jobs' 时使用(对象,可选)workflow_runs_filter:工作流运行过滤器。仅在 method 为 'list_workflow_runs' 时使用(对象,可选)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:仓库所有者。(字符串,必填)
page:分页页码(最小值1)(数字,可选)
perPage:分页每页结果数(最小值1,最大值100)(数字,可选)
ref:要列出结果的Git引用。(字符串,可选)
repo:仓库名称。(字符串,必填)
severity:按严重性筛选代码扫描警报(字符串,可选)
state:按状态筛选代码扫描警报。默认为“open”(字符串,可选)
tool_name:用于代码扫描的工具名称。(字符串,可选)
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:要获取团队的用户名。如果未提供,则使用已认证用户。(字符串,可选)
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:仓库名称(字符串,必填)
get_dependabot_alert - 获取Dependabot警报
所需OAuth作用域:security_events
接受的OAuth作用域:repo、security_events
alertNumber:警报编号。(数字,必填)
owner:仓库所有者。(字符串,必填)
repo:仓库名称。(字符串,必填)
list_dependabot_alerts - 列出Dependabot警报
所需OAuth作用域:security_events
接受的OAuth作用域:repo、security_events
owner:仓库所有者。(字符串,必填)
page:分页页码(最小值1)(数字,可选)
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:仓库名称(字符串,必填)
create_gist - 创建 Gist
gistcontent:用于创建简单单文件 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:仅返回此时间之后更新的 Gists(ISO 8601 时间戳)(string,可选)username:GitHub 用户名(省略则返回已认证用户的 Gists)(string,可选)update_gist - 更新 Gist
gistcontent:文件内容(string,必填)description:Gist 的更新描述(string,可选)filename:要更新或创建的文件名(string,必填)gist_id:要更新的 Gist 的 ID(string,必填)repoowner:仓库所有者(用户名或组织)(string,必填)path_filter:用于过滤树结果的可选路径前缀(例如,'src/' 仅显示 src 目录中的文件)(string,可选)recursive:将此参数设置为 true 会返回树引用的对象或子树。默认为 false(boolean,可选)repo:仓库名称(string,必填)tree_sha:树的 SHA1 值或引用(分支或标签)名称。默认为仓库的默认分支(string,可选)add_issue_comment - 为议题添加评论
repobody:评论内容(string,必填)issue_number:要评论的议题编号(number,必填)owner:仓库所有者(string,必填)repo:仓库名称(string,必填)get_label - 从仓库获取特定标签
reponame:标签名称。(string,必填)owner:仓库所有者(用户名或组织名称)(string,必填)repo:仓库名称(string,必填)issue_read - 获取议题详情
repoissue_number:议题编号(number,必填)method:对单个议题执行的读取操作。
选项包括:
owner:仓库所有者(string,必填)page:分页页码(最小值 1)(number,可选)perPage:分页每页结果数(最小值 1,最大值 100)(number,可选)repo:仓库名称(string,必填)issue_write - 创建或更新议题
repoassignees:要分配给此议题的用户名(string[],可选)body:议题正文内容(string,可选)duplicate_of:此议题所重复的议题编号。仅在 state_reason 为 'duplicate' 时使用。(number,可选)issue_number:要更新的议题编号(number,可选)labels:要应用于此议题的标签(string[],可选)method:对单个议题执行的写入操作。
选项包括:
milestone:里程碑编号(number,可选)owner:仓库所有者(string,必填)repo:仓库名称(string,必填)state:新状态(string,可选)state_reason:状态变更的原因。仅在状态变更时生效。(string,可选)title:议题标题(string,可选)type:此议题的类型。仅在仓库配置了议题类型时使用。使用 list_issue_types 工具获取组织的有效类型值。如果仓库不支持议题类型,省略此参数。(string,可选)list_issue_types - 列出可用议题类型
read:orgadmin:org、read:org、write:orgowner:仓库的组织所有者(string,必填)list_issues - 列出议题
repoafter:分页游标。对于 GraphQL API,使用前一页 PageInfo 中的 endCursor。(string,可选)direction:排序方向。如果提供,还需提供 'orderBy'。(string,可选)labels:按标签过滤(string[],可选)orderBy:议题排序字段。如果提供,还需提供 'direction'。(string,可选)owner:仓库所有者(string,必填)perPage:分页每页结果数(最小值 1,最大值 100)(number,可选)repo:仓库名称(string,必填)since:按日期过滤(ISO 8601 时间戳)(string,可选)state:按状态过滤,未提供时默认返回开放和已关闭的议题(string,可选)search_issues - 搜索议题
所需OAuth权限范围:repo
order:排序顺序(字符串,可选)
owner:可选的仓库所有者。如果与repo一同提供,仅列出该仓库的议题。(字符串,可选)
page:分页页码(最小值1)(数字,可选)
perPage:分页每页结果数(最小值1,最大值100)(数字,可选)
query:使用GitHub议题搜索语法的搜索查询(字符串,必选)
repo:可选的仓库名称。如果与owner一同提供,仅列出该仓库的议题。(字符串,可选)
sort:按分类匹配数排序的字段,默认为最佳匹配(字符串,可选)
sub_issue_write - 修改子议题
所需OAuth权限范围:repo
after_id:要排在其后的子议题ID(必须指定after_id或before_id)(数字,可选)
before_id:要排在其前的子议题ID(必须指定after_id或before_id)(数字,可选)
issue_number:父议题编号(数字,必选)
method:对单个子议题执行的操作
选项包括:
'add' - 向GitHub仓库中的父议题添加子议题。
'remove' - 从GitHub仓库中的父议题移除子议题。
'reprioritize' - 更改GitHub仓库中父议题内子议题的顺序。使用'after_id'或'before_id'指定新位置。 (字符串,必选)
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:要执行的操作:忽略、关注或删除通知订阅。(字符串,必选)
notificationID:通知线程ID。(字符串,必选)
manage_repository_notification_subscription - 管理仓库通知订阅
所需OAuth权限范围:notifications
action:要执行的操作:忽略、关注或删除仓库通知订阅。(字符串,必选)
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:按分类排序的字段(字符串,可选)项目
来自真实用户的反馈,见证轩辕镜像的优质服务