Skip to main content

为组织或企业配置 MCP 服务器访问

可以配置 MCP 注册表 URL 和访问控制策略,以确定开发人员可以使用 GitHub Copilot 在受支持的 IDE 中发现和使用哪些 MCP 服务器。

谁可以使用此功能?

Enterprise owners and organization owners

Copilot Enterprise or Copilot Business

注意

  • 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 允许列表策略

  1. 在 GitHub 的右上角,单击你的个人资料图片。
  2. 根据环境,单击“你的企业”,或单击“你的企业”,然后单击要查看的企业********。
  3. 在页面顶部,单击“ Policies”。 1. 在“Policies”部分中,单击“Copilot”****。 1. **** 如果页面上未列出策略,请单击“Policies”选项卡。
  4. 在“Features”下,确保“MCP servers in Copilot”中的 MCP 服务器设置为“Enabled”********。
  5. 在“MCP Registry URL (optional)”字段中,输入符合规范的 MCP 注册表的 URL****。
  6. 单击“ 保存”。
  7. 在“Restrict MCP access to registry servers”旁,从下拉列表中选择以下选项之一****:
    • Allow all:无限制****。 可以使用所有 MCP 服务器。

    • Registry only:只有注册表中的服务器才能运行****。

    注意

    如果未设置注册表 URL,“Registry only”选项将阻止所有 MCP 服务器。

所选策略将立即应用于企业内的开发人员。

为组织配置 MCP 允许列表策略

  1. 在 GitHub 的右上角,单击个人资料图片,然后单击“ Your organizations”****。
  2. 在组织旁边,单击“设置”。
  3. 在边栏的“Code, planning, and automation”下,单击“ Copilot”,然后单击“Policies”********。
  4. 在“Features”下,确保“MCP servers in Copilot”中的 MCP 服务器设置为“Enabled”********。
  5. 在“MCP Registry URL (optional)”字段中,输入符合规范的 MCP 注册表的 URL****。
  6. 单击“ 保存”。
  7. 在“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 会自动解决冲突并应用单个活动策略。

解决逻辑为:

  1. 作用域:父企业设置的策略将替代组织设置的策略。 企业策略会渗透到该企业中的所有组织和成员。
  2. 强制严格性Registry only 级别高于 Allow all
  3. 注册表上传新近性:如果两个策略的作用域和严格性相同,则最近上传(已保存)的注册表将获胜****。
  4. 平局:如果所有其他条件相同,则最低内部 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_countupdated_at

Azure API 中心

对于需要动态选项和完全托管选项的企业,可以将 Azure API 中心(包含在 Azure API 管理中)用作 MCP 注册表。 它提供治理功能、发现 UI 以及与现有 API 目录的集成。

使用 Azure API 中心进行设置的步骤:

  1. 转到 Azure API 中心门户。
  2. 创建新的 API 中心实例(或重复使用现有实例)。
  3. 将 MCP 服务器添加为 API,包括其清单和元数据。
  4. 发布 API 中心实例。
  5. 复制 API 中心终结点 URL - 这将成为 MCP 注册表 URL。
  6. 将此 URL 粘贴到 GitHub Enterprise 或组织设置中的“MCP Registry URL (optional)”字段中****。

注意

Azure API 中心包含用于基本 API 目录编制和发现的免费层。 大型组织可能选择使用付费 Azure API 管理计划来实现更大规模和更高级的治理。

有关详细信息,请参阅 Azure API 中心文档Azure API 中心快速入门