注意
- VS Code 稳定版和预览体验计划版支持基于配置的 MCP 注册表显示可用的 MCP 服务器。
- “Registry only”设置的策略强制目前仅在 VS Code 预览体验计划版中提供,对 VS Code 稳定版的支持将于 2025 年 10 月推出。 在接下来的几个月中,MCP 注册表和允许列表支持将向所有其他 Copilot IDE 推出。
概述
MCP 注册表是模型上下文协议 (MCP) 服务器的目录,其作用类似于 IDE 和 Copilot(以及其他主机应用程序)的目录。 每个注册表项都指向该服务器的清单,该清单描述服务器公开的工具、资源和提示。
作为企业或组织所有者,你可以配置 MCP 注册表 URL 和访问控制策略,以确定开发人员可以使用 GitHub Copilot 在受支持的 IDE 中查看和运行哪些 MCP 服务器****。
通过配置 MCP 注册表,可以:
- 提供开发人员可以发现和使用的 MCP 服务器的特选目录****
- 限制对未经批准的服务器的访问,以实现更精细的访问控制****
- 在策略阻止服务器时向开发人员提供清晰的说明****
如果尚未设置 MCP 注册表,请参阅本文后面的设置 MCP 注册表。
关于 MCP 策略设置
以下设置可用于控制如何在组织或企业中发现和访问 MCP 服务器。
MCP 服务器策略
首先,必须设置完整的“Copilot 中的 MCP 服务器”策略****:
- 启用:允许 MCP 服务器(默认行为取决于注册表配置)
- 禁用:此企业或组织中任何拥有 Copilot 席位的用户都不能使用 MCP 服务器
- 无策略(仅限企业):子组织可以设置自己的 MCP 策略
MCP 注册表 URL
“MCP Registry URL”是一个可选字段,可在其中指定可发现或受限的内部 MCP 注册表的终结点****。
配置时:
- 注册表中列出的服务器显示在支持 MCP 的 IDE 中
- 启用“Restrict MCP access to registry servers”选项
“Restrict MCP access to registry servers”设置
在“Restrict MCP access to registry servers”设置下,选择如何严格强制执行基于注册表的访问****:
- Allow all(默认):开发人员可以运行任何本地和远程 MCP 服务器****。 注册表服务器仍作为特选列表显示在 IDE 目录中,以便更易于发现。
- Registry only:开发人员只能运行已上传的 MCP 注册表中显式列出的 MCP 服务器****。 所有其他服务器 - 无论是远程(托管)还是本地服务器(在用户计算机上运行客户端)- 都会在运行时被阻止。 在 IDE UI 中,被阻止的服务器显示为灰色,并显示警告消息。 在
mcp.json配置文件中,它们也可能显示"run": "blocked"。
警告
- 如果不提供具有有效格式的 MCP 注册表 URL 并单击“Save”,则无法配置“Registry only”选项。
- “Registry only”强制目前仅在 VS Code 预览体验计划版本中处于活动状态****。 未来几个月将添加对其他 Copilot 环境的支持。
为企业配置 MCP 允许列表策略
- 在 GitHub 的右上角,单击你的个人资料图片。
- 根据环境,单击“你的企业”,或单击“你的企业”,然后单击要查看的企业********。
- 在页面顶部,单击“ Policies”。 1. 在“Policies”部分中,单击“Copilot”****。 1. **** 如果页面上未列出策略,请单击“Policies”选项卡。
- 在“Features”下,确保“MCP servers in Copilot”中的 MCP 服务器设置为“Enabled”********。
- 在“MCP Registry URL (optional)”字段中,输入符合规范的 MCP 注册表的 URL****。
- 单击“ 保存”。
- 在“Restrict MCP access to registry servers”旁,从下拉列表中选择以下选项之一****:
-
Allow all:无限制****。 可以使用所有 MCP 服务器。
-
Registry only:只有注册表中的服务器才能运行****。
注意
如果未设置注册表 URL,“Registry only”选项将阻止所有 MCP 服务器。
-
所选策略将立即应用于企业内的开发人员。
为组织配置 MCP 允许列表策略
- 在 GitHub 的右上角,单击个人资料图片,然后单击“ Your organizations”****。
- 在组织旁边,单击“设置”。
- 在边栏的“Code, planning, and automation”下,单击“ Copilot”,然后单击“Policies”********。
- 在“Features”下,确保“MCP servers in Copilot”中的 MCP 服务器设置为“Enabled”********。
- 在“MCP Registry URL (optional)”字段中,输入符合规范的 MCP 注册表的 URL****。
- 单击“ 保存”。
- 在“Restrict MCP access to registry servers”旁,从下拉列表中选择以下选项之一****:
-
Allow all:无限制****。 可以使用所有 MCP 服务器。
-
Registry only:只有注册表中的服务器才能运行****。
注意
如果未设置注册表 URL,“Registry only”选项将阻止所有 MCP 服务器。
-
所选策略将立即应用于组织内的开发人员。
如何强制执行 MCP 允许列表?
GitHub 对 MCP 允许列表强制使用以下策略。
本地服务器
MCP 允许列表强制也适用于本地 MCP 服务器。 配置“Registry only”时,必须将本地服务器包含在要允许的注册表中。
在注册表中包括本地服务器:
- 本地服务器必须在注册表中列出并具有正确的服务器 ID
- 注册表项中的服务器 ID 和已安装服务器的服务器 ID 必须完全匹配
- 有关服务器的规范 ID,请查阅服务器的文档或清单
- 要在组织中进行一致的部署,请提供安装说明,确保用户安装具有预期 ID 的服务器
具有多个席位的用户的策略解决
MCP 允许列表强制始终与分配 GitHub Copilot 席位的组织或企业相关联。 如果用户有多个席位(例如,来自多个组织或来自企业及其子组织),则 GitHub 会自动解决冲突并应用单个活动策略。
解决逻辑为:
- 作用域:父企业设置的策略将替代组织设置的策略。 企业策略会渗透到该企业中的所有组织和成员。
- 强制严格性:
Registry only级别高于Allow all。 - 注册表上传新近性:如果两个策略的作用域和严格性相同,则最近上传(已保存)的注册表将获胜****。
- 平局:如果所有其他条件相同,则最低内部 ID 将获胜(极少数边缘事例)****。
重要
目前,只能向一位用户应用一个注册表 URL。 即使多个组织或企业提供不同的注册表,也只会使用获胜注册表(由上述规则确定)。
建议:为确保一致性并避免多个组织之间的冲突,请尽可能在“企业”级别设置和维护 MCP 注册表 URL 和允许列表策略********。
设置 MCP 注册表
如果尚未配置 MCP 注册表,可通过几种不同的方式根据需要创建注册表。
简单/静态注册表
注册表的核心只是提供 MCP 服务器清单列表的 HTTPS 终结点。 可以在 GitHub Pages、S3 桶或任何 Web 服务器上将此内容发布为静态 JSON 文件。 这是最快、最轻量的选项。
注册表格式示例
注册表必须返回具有以下结构的 JSON 响应:
{
"servers": [
{
"id": "github",
"name": "GitHub MCP Server",
"description": "Tools and resources for GitHub repos, issues, PRs, and Actions.",
"manifest_url": "https://registry.yourcompany.com/servers/github/manifest.json",
"categories": ["code", "devops", "github"],
"version": "1.0.0",
"release_date": "2025-09-01T00:00:00Z",
"latest": true
},
{
"id": "local-linter",
"name": "Local Linter",
"description": "Runs lint checks against local files",
"manifest_url": "file:///path/to/local/manifest.json",
"categories": ["linting", "local", "devtools"],
"version": "1.0.0",
"release_date": "2025-09-01T00:00:00Z",
"latest": true
}
],
"total_count": 2,
"updated_at": "2025-09-09T12:00:00Z"
}
必填字段:
id:服务器的唯一标识符name:服务器的显示名称description:有关服务器功能的简短说明manifest_url:指向服务器的 MCP 清单的 URL
提供其他元数据的可选字段:
categories:类别标记的数组version:版本标识符release_date:ISO 格式发布日期latest:指示此版本是否为最新版本的布尔值- 根级别的其他字段,例如
total_count和updated_at
Azure API 中心
对于需要动态选项和完全托管选项的企业,可以将 Azure API 中心(包含在 Azure API 管理中)用作 MCP 注册表。 它提供治理功能、发现 UI 以及与现有 API 目录的集成。
使用 Azure API 中心进行设置的步骤:
- 转到 Azure API 中心门户。
- 创建新的 API 中心实例(或重复使用现有实例)。
- 将 MCP 服务器添加为 API,包括其清单和元数据。
- 发布 API 中心实例。
- 复制 API 中心终结点 URL - 这将成为 MCP 注册表 URL。
- 将此 URL 粘贴到 GitHub Enterprise 或组织设置中的“MCP Registry URL (optional)”字段中****。
注意
Azure API 中心包含用于基本 API 目录编制和发现的免费层。 大型组织可能选择使用付费 Azure API 管理计划来实现更大规模和更高级的治理。
有关详细信息,请参阅 Azure API 中心文档和 Azure API 中心快速入门。