如果你用 DeepSeek、元宝AI、Copilot 等 AI 代为编写轩辕镜像的 docker pull、修改 compose 镜像地址,或排查拉取失败等问题,请让 AI 先读规则再动手,只要在 AI 对话里直接发送下面这句话即可:
生成 docker pull、修改 compose 的 image,或排查拉取失败前,请先阅读并严格遵守 https://xuanyuan.cloud/agents.md 中的规则。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
GitHub MCP Server 将AI工具直接连接到GitHub平台。这使AI代理、助手和聊天机器人能够读取仓库和代码文件、管理议题和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中使用GitHub Enterprise的OAuth时,您还需要配置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
# 添加到.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)要求在配置文件中硬编码令牌。
repo - 仓库操作read:packages - Docker镜像访问read:org - 组织团队访问chmod 600 ~/.your-app/config.json
标志--gh-host和环境变量GITHUB_HOST可用于设置GitHub Enterprise Server或具有数据驻留的GitHub Enterprise Cloud的主机名。
https:// URI方案为前缀,否则默认使用http://,而GitHub Enterprise Server不支持该方案。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:// "
}
}
如需快速安装,请使用上方的一键安装按钮之一。完成该流程后,切换代理模式(位于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.
未指定工具集时,将使用默认工具集。
使用 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
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:仓库所有者。(字符串,必填)
page:分页页码(最小值 1)(数字,可选)
perPage:每页结果数(最小值 1,最大值 100)(数字,可选)
ref:要列出结果的 Git 引用。(字符串,可选)
repo:仓库名称。(字符串,必填)
severity:按严重性筛选代码扫描警报(字符串,可选)
state:按状态筛选代码扫描警报。默认为“open”(字符串,可选)
tool_name:用于代码扫描的工具名称。(字符串,可选)
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:分页游标。对于GraphQL API,使用上一页PageInfo中的endCursor。(字符串,可选)
discussionNumber:讨论编号(数字,必填)
includeReplies:设为true时,每个顶级评论将包含其嵌套的回复(每条评论最多100条回复,这是GitHub API的上限)。默认为false。(布尔值,可选)
owner:仓库所有者(字符串,必填)
perPage:分页结果每页数量(最小1,最大100)(数字,可选)
repo:仓库名称(字符串,必填)
list_discussion_categories - 列出讨论分类
所需OAuth作用域:repo
owner:仓库所有者(字符串,必填)
repo:仓库名称。如果未提供,将在组织级别查询讨论分类。(字符串,可选)
list_discussions - 列出讨论
所需OAuth作用域:repo
after:分页游标。对于GraphQL API,使用上一页PageInfo中的endCursor。(字符串,可选)
category:按讨论分类ID筛选的可选参数。如果提供,仅列出具有此分类的讨论。(字符串,可选)
direction:排序方向。(字符串,可选)
orderBy:讨论排序字段。如果提供,还需提供'direction'。(字符串,可选)
owner:仓库所有者(字符串,必填)
perPage:分页结果每页数量(最小1,最大100)(数字,可选)
repo:仓库名称。如果未提供,将在组织级别查询讨论。(字符串,可选)
Gists
create_gist - 创建Gist
所需OAuth作用域:gist
content:用于创建简单单文件Gist的内容(字符串,必填)
description:Gist的描述(字符串,可选)
filename:用于创建简单单文件Gist的文件名(字符串,必填)
public:Gist是否公开(布尔值,可选)
get_gist - 获取Gist内容
gist_id:Gist的ID(字符串,必填)
list_gists - 列出Gists
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
repoowner:仓库所有者(用户名或组织)(字符串,必填)path_filter:用于过滤树结果的可选路径前缀(例如,'src/'仅显示src目录中的文件)(字符串,可选)recursive:将此参数设为true会返回树引用的对象或子树。默认为false(布尔值,可选)repo:仓库名称(字符串,必填)tree_sha:树的SHA1值或引用(分支或标签)名称。默认为仓库的默认分支(字符串,可选)Issues
add_issue_comment - 向议题添加评论
所需OAuth作用域:repo
body:评论内容(字符串,必填)
issue_number:要评论的议题编号(数字,必填)
owner:仓库所有者(字符串,必填)
repo:仓库名称(字符串,必填)
get_label - 从仓库获取特定标签
所需OAuth作用域:repo
name:标签名称。(字符串,必填)
owner:仓库所有者(用户名或组织名称)(字符串,必填)
repo:仓库名称(字符串,必填)
issue_read - 获取议题详情
所需OAuth作用域:repo
issue_number:议题编号(数字,必填)
method:对单个议题执行的读取操作。
选项包括:
owner:仓库所有者(字符串,必填)
page:分页页码(最小1)(数字,可选)
perPage:分页结果每页数量(最小1,最大100)(数字,可选)
repo:仓库名称(字符串,必填)
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,可选)
search_issues - 搜索issues
Required OAuth Scopes: repo
order: 排序顺序(string,可选)
owner: 可选的仓库所有者。如果与repo一起提供,仅列出此仓库的issues。(string,可选)
page: 分页页码(最小值1)(number,可选)
perPage: 分页结果数(最小值1,最大值100)(number,可选)
query: 使用GitHub issues搜索语法的搜索查询(string,必填)
repo: 可选的仓库名称。如果与owner一起提供,仅列出此仓库的issues。(string,可选)
sort: 按匹配类别数量排序的字段,默认为最佳匹配(string,可选)
sub_issue_write - 更改子issue
Required OAuth Scopes: repo
after_id: 要排在其后的子issue ID(应指定after_id或before_id中的一个)(number,可选)
before_id: 要排在其前的子issue ID(应指定after_id或before_id中的一个)(number,可选)
issue_number: 父issue的编号(number,必填)
method: 对单个子issue执行的操作
选项包括:
'add' - 向GitHub仓库中的父issue添加子issue。
'remove' - 从GitHub仓库中的父issue移除子issue。
'reprioritize' - 更改父issue中子issue的顺序。使用'after_id'或'before_id'指定新位置。 (string,必填)
owner: 仓库所有者(string,必填)
replace_parent: 当为true时,替换子issue当前的父issue。仅与'add'方法一起使用。(boolean,可选)
repo: 仓库名称(string,必填)
sub_issue_id: 要添加的子issue ID。ID与issue编号不同(number,必填)
get_label - 从仓库获取特定标签
Required OAuth Scopes: repo
name: 标签名称。(string,必填)
owner: 仓库所有者(用户名或组织名称)(string,必填)
repo: 仓库名称(string,必填)
label_write - 对仓库标签执行写入操作
Required OAuth Scopes: repo
color: 标签颜色,为6位十六进制代码,不带'#'前缀(例如'f29513')。'create'操作必填,'update'操作可选。(string,可选)
description: 标签描述文本。'create'和'update'操作可选。(string,可选)
method: 要执行的操作:'create'、'update'或'delete'(string,必填)
name: 标签名称 - 所有操作都必填(string,必填)
new_name: 标签的新名称(仅用于'update'方法重命名)(string,可选)
owner: 仓库所有者(用户名或组织名称)(string,必填)
repo: 仓库名称(string,必填)
list_label - 列出仓库中的标签
Required OAuth Scopes: repo
owner: 仓库所有者(用户名或组织名称)- 所有操作都必填(string,必填)
repo: 仓库名称 - 所有操作都必填(string,必填)
dismiss_notification - 关闭通知
Required OAuth Scopes: notifications
state: 通知的新状态(read/done)(string,必填)
threadID: 通知线程的ID(string,必填)
get_notification_details - 获取通知详情
Required OAuth Scopes: notifications
notificationID: 通知的ID(string,必填)
list_notifications - 列出通知
Required OAuth Scopes: notifications
before: 仅显示在指定时间之前更新的通知(ISO 8601格式)(string,可选)
filter: 要筛选的通知类型,未指定时使用默认值。已读通知是用户已确认的通知。参与通知是用户直接参与的通知,例如他们评论或创建的issues或拉取请求。(string,可选)
owner: 可选的仓库所有者。如果与repo一起提供,仅列出此仓库的通知。(string,可选)
page: 分页页码(最小值1)(number,可选)
perPage: 分页结果数(最小值1,最大值100)(number,可选)
repo: 可选的仓库名称。如果与owner一起提供,仅列出此仓库的通知。(string,可选)
since: 仅显示在指定时间之后更新的通知(ISO 8601格式)(string,可选)
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
发给 Cursor、ChatGPT、豆包等 AI 的说明文档
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
docker search 限制
站内搜不到镜像
原仓库同步与拉取
离线 save/load
插件要用 plugin install
WSL 拉取慢
安全与 digest
新手拉取配置
镜像合规机制
不支持 push
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
Schema 1 已废弃
406 OCI index
422 Unknown
400 TAG_INVALID
TLS 证书失败
DNS 超时
域名连通性排查
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务