{"meta":{"title":"为企业配置 MCP 服务器允许列表","intro":"定义用户无需专用注册表即可使用且无法使用的 MCP 服务器。","product":"GitHub Copilot","breadcrumbs":[{"href":"/zh/copilot","title":"GitHub Copilot"},{"href":"/zh/copilot/how-tos","title":"操作方法"},{"href":"/zh/copilot/how-tos/administer-copilot","title":"管理 Copilot"},{"href":"/zh/copilot/how-tos/administer-copilot/manage-mcp-usage","title":"管理 MCP 使用情况"},{"href":"/zh/copilot/how-tos/administer-copilot/manage-mcp-usage/configure-enterprise-allowlist","title":"配置企业允许列表"}],"documentType":"article"},"body":"# 为企业配置 MCP 服务器允许列表\n\n定义用户无需专用注册表即可使用且无法使用的 MCP 服务器。\n\n## 关于允许列表\n\n可以定义允许列表和拒绝列表来控制企业中的哪些 MCP 服务器用户可以在客户端中 Copilot 运行。 这些列表定义在贵企业的 `managed-settings.json` 中，而该 `managed-settings.json` 可以存储在 GitHub 上。\n\n有关详细信息，请参阅“[公司中的 MCP 服务器使用情况](/zh/copilot/concepts/mcp-management)”。\n\n## 先决条件\n\n* 要运行任何 MCP 服务器，必须为企业或允许 MCP 服务器的组织启用策略**中的 CopilotMCP 服务器**。\n* 如果当前将 MCP 服务器限制为自定义注册表，建议关闭此限制，以避免与新的允许列表冲突并维护单个事实来源。 将 **“限制 MCP 访问注册表服务器** ”策略设置为 **“允许所有**”，并选择性地清除 **MCP 注册表 URL** 的值。\n\n可以在策略的 <svg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon octicon-mcp\" aria-label=\"MCP\" role=\"img\"><path d=\"M5.52 1.12a3.578 3.578 0 0 1 6.078 2.98 3.578 3.578 0 0 1 2.982 6.08l-3.292 3.293a.252.252 0 0 0 0 .354l.843.843a.749.749 0 1 1-1.06 1.06l-.844-.843a1.75 1.75 0 0 1 0-2.474L13.52 9.12a2.08 2.08 0 0 0 0-2.94 2.08 2.08 0 0 0-2.94 0L7.731 9.03A.75.75 0 0 1 6.67 7.97l2.85-2.85a2.08 2.08 0 0 0 0-2.94 2.08 2.08 0 0 0-2.94 0l-4.799 4.8A.75.75 0 0 1 .72 5.92Z\"></path><path d=\"M7.52 3.12a.749.749 0 1 1 1.06 1.06L5.731 7.03A2.079 2.079 0 0 0 8.67 9.97l2.85-2.85a.749.749 0 1 1 1.06 1.06l-2.849 2.85A3.578 3.578 0 0 1 4.67 5.97Z\"></path></svg>**MCP** 部分找到这些设置Copilot。 请参阅“[管理企业中 GitHub Copilot 的策略和功能](/zh/copilot/how-tos/administer-copilot/manage-for-enterprise/manage-enterprise-policies)”。\n\n## 定义允许列表或拒绝列表\n\n1. 为您的企业创建`managed-settings.json`文件。 大多数企业将此文件存储在存储库中 `.github-private` 。 还可以使用移动设备管理直接在用户的计算机上安装它。 请参阅“[配置企业管理设置](/zh/copilot/how-tos/administer-copilot/manage-for-enterprise/manage-agents/configure-enterprise-managed-settings#deploying-server-managed-settings)”。\n2. 编辑文件以定义 MCP 服务器的允许列表和拒绝列表。 可以按名称、服务器 URL 或特定命令进行匹配。 有关语法详细信息，请参阅“企业托管设置”中的 [allowedMcpServers](/zh/copilot/reference/enterprise-administrators/enterprise-managed-settings#allowedmcpservers) 和 [deniedMcpServers](/zh/copilot/reference/enterprise-administrators/enterprise-managed-settings#deniedmcpservers) 。\n\n   以下示例允许与这三个允许列表条目中的任何一个匹配的服务器。 配置为访问根文件系统的文件系统服务器始终被阻止，即使它也与允许列表条目匹配。\n\n   ```json copy\n   {\n     \"allowedMcpServers\": [\n       { \"serverUrl\": \"https://api.githubcopilot.com/*\" },\n       { \"serverCommand\": [\"npx\", \"@playwright/mcp@latest\"] },\n       { \"serverCommand\": [\"cmd\", \"/c\", \"uvx\", \"markitdown-mcp\"] }\n     ],\n     \"deniedMcpServers\": [\n       {\n         \"serverCommand\": [\n           \"npx\",\n           \"-y\",\n           \"@modelcontextprotocol/server-filesystem\",\n           \"/\"\n         ]\n       }\n     ]\n   }\n   ```\n\n## 评估规则\n\nCopilot 客户端按以下顺序评估 MCP 服务器：\n\n1. 始终允许内置默认服务器，例如内置的 GitHub MCP 服务器。\n2. 如果服务器与 `deniedMcpServers` 中的任何条目匹配，则阻止该服务器。\n3. 如果存在 `allowedMcpServers`，且它与某个条目不匹配，则阻止该服务器。\n4. 如果服务器的 URL 或命令包含未解析的变量（例如 `${VARIABLE}` ，或者 `$VARIABLE`，客户端无法验证服务器），则阻止服务器。\n\n如果客户端从多个 `managed-settings.json` 部署方法接收设置，则所有设置都适用。 来自任何源的拒绝规则会阻止服务器，服务器必须与定义服务器的每个层的允许列表条目匹配。\n\n如果允许列表或拒绝列表格式不正确（例如，JSON 无效），客户端会将策略视为空 `allowedMcpServers` 列表。 这会阻止除内置默认服务器之外的所有服务器。\n\n如果客户端由于检索或设备发现错误而无法确定策略层，它将保留以前强制执行的策略。 有效策略可能会变得更加严格，但限制性不小。"}