Skip to main content

为企业配置 MCP 服务器允许列表

定义用户无需专用注册表即可使用且无法使用的 MCP 服务器。

谁可以使用此功能?

Enterprise owners

Copilot Enterprise or Copilot Business

关于允许列表

可以定义允许列表和拒绝列表来控制企业中的哪些 MCP 服务器用户可以在客户端中 Copilot 运行。 这些列表定义在贵企业的 managed-settings.json 中,而该 managed-settings.json 可以存储在 GitHub 上。

有关详细信息,请参阅“公司中的 MCP 服务器使用情况”。

先决条件

  • 要运行任何 MCP 服务器,必须为企业或允许 MCP 服务器的组织启用策略中的 CopilotMCP 服务器
  • 如果当前将 MCP 服务器限制为自定义注册表,建议关闭此限制,以避免与新的允许列表冲突并维护单个事实来源。 将 “限制 MCP 访问注册表服务器 ”策略设置为 “允许所有”,并选择性地清除 MCP 注册表 URL 的值。

可以在策略的 MCP 部分找到这些设置Copilot。 请参阅“管理企业中 GitHub Copilot 的策略和功能”。

定义允许列表或拒绝列表

  1. 为您的企业创建managed-settings.json文件。 大多数企业将此文件存储在存储库中 .github-private 。 还可以使用移动设备管理直接在用户的计算机上安装它。 请参阅“配置企业管理设置”。

  2. 编辑文件以定义 MCP 服务器的允许列表和拒绝列表。 可以按名称、服务器 URL 或特定命令进行匹配。 有关语法详细信息,请参阅“企业托管设置”中的 allowedMcpServersdeniedMcpServers

    以下示例允许与这三个允许列表条目中的任何一个匹配的服务器。 配置为访问根文件系统的文件系统服务器始终被阻止,即使它也与允许列表条目匹配。

    JSON
    {
      "allowedMcpServers": [
        { "serverUrl": "https://api.githubcopilot.com/*" },
        { "serverCommand": ["npx", "@playwright/mcp@latest"] },
        { "serverCommand": ["cmd", "/c", "uvx", "markitdown-mcp"] }
      ],
      "deniedMcpServers": [
        {
          "serverCommand": [
            "npx",
            "-y",
            "@modelcontextprotocol/server-filesystem",
            "/"
          ]
        }
      ]
    }
    

评估规则

Copilot 客户端按以下顺序评估 MCP 服务器:

  1. 始终允许内置默认服务器,例如内置的 GitHub MCP 服务器。
  2. 如果服务器与 deniedMcpServers 中的任何条目匹配,则阻止该服务器。
  3. 如果存在 allowedMcpServers,且它与某个条目不匹配,则阻止该服务器。
  4. 如果服务器的 URL 或命令包含未解析的变量(例如 ${VARIABLE} ,或者 $VARIABLE,客户端无法验证服务器),则阻止服务器。

如果客户端从多个 managed-settings.json 部署方法接收设置,则所有设置都适用。 来自任何源的拒绝规则会阻止服务器,服务器必须与定义服务器的每个层的允许列表条目匹配。

如果允许列表或拒绝列表格式不正确(例如,JSON 无效),客户端会将策略视为空 allowedMcpServers 列表。 这会阻止除内置默认服务器之外的所有服务器。

如果客户端由于检索或设备发现错误而无法确定策略层,它将保留以前强制执行的策略。 有效策略可能会变得更加严格,但限制性不小。