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 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和具有数据驻留的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 可用于启用所有可用工具集,无论其他配置如何:
./github-mcp-server --toolsets all
或者使用环境变量:
GITHUB_TOOLSETS="all" ./github-mcp-server
默认工具集 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:按分类排序字段(字符串,可选)探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
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(解压)
TLS 证书失败
DNS 超时
域名连通性排查
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务