企业如何控制Copilot可连接的MCP服务器?

企业托管设置 · 匹配规则与策略叠加 · 试点验收清单

软件开发更新于 2026/8/2629 阅读

说明GitHub Copilot企业MCP白名单的配置方法、三种匹配器、多层策略计算、三种交付方式、服务器准入核对、沙箱与业务系统权限分工,以及从策略启用到扩大部署的试点验收步骤。

概述

GitHub Copilot企业MCP服务器白名单准入控制架构
企业通过managed-settings.json配置allowedMcpServers与deniedMcpServers, Copilot客户端依据匹配规则和多层策略判断MCP服务器的允许或拒绝状态。

企业如何控制Copilot可连接的MCP服务器?

GitHub Copilot已正式开放企业MCP白名单。企业所有者可在copilot/managed-settings.json中用allowedMcpServersdeniedMcpServers控制Copilot客户端可连接的MCP服务器,按远程URL、本地启动命令或服务器名称进行准入匹配。GitHub于2026年8月6日将该能力标记为Generally Available,适用计划为Copilot Business与Copilot Enterprise。8月6日公告列出的执行客户端包括GitHub Copilot app、Copilot CLI和VS Code;8月18日扩展至JetBrains IDEs。

本文所称MCP客户端,是指负责加载企业托管设置、匹配服务器并决定连接结果的Copilot客户端。

本文解决四个问题:

  • 适用对象:使用Copilot Business或Copilot Enterprise,需要控制研发客户端可连接MCP服务器的企业IT与安全治理团队。
  • 准入范围:MCP白名单决定Copilot客户端可以运行哪些服务器,并按URL、命令或名称执行允许与拒绝策略。
  • 控制边界:MCP服务器的工具范围、数据权限、OAuth与服务账号、Secret存放、网络范围和操作日志由服务器及业务系统分别配置。
  • 试点方法:先启用"MCP servers in Copilot"策略,再用一个允许服务器、一个拒绝服务器和一个未匹配服务器完成最小验证。

MCP服务器准入、数据授权、命令隔离和仓库变更审查共同组成企业研发工具治理链路。MCP服务器安全还需要覆盖身份认证、最小权限、凭据轮换、网络范围、操作日志和退出机制。

控制层 主要对象 本文覆盖方式
MCP白名单 Copilot可连接哪些MCP服务器 本文主线,说明服务器准入、匹配规则与策略计算
Copilot沙箱 本地文件、网络、命令、凭据、MCP与LSP进程 独立主题页承接执行环境隔离
业务系统权限 仓库、数据库、工单和文档的账号与数据权限 由各业务系统配置并单独验收
Agentic Workflows GitHub Actions令牌、审批和输出控制 独立主题页承接工作流权限

GitHub Copilot MCP白名单上线了什么?

GitHub企业托管设置新增两项MCP控制键,并提供服务器管理、MDM管理和本地文件三种策略交付方式。

项目 当前状态 企业检查点
发布状态 2026年8月6日正式可用 记录启用日期、策略负责人和变更审批人
适用角色与计划 企业所有者;Copilot Business或Copilot Enterprise 确认企业计划、治理源组织和管理员权限
允许列表 allowedMcpServers 仅放入已完成安全与数据范围审查的服务器
拒绝列表 deniedMcpServers 明确阻止已知命令、URL或服务器名称
匹配方式 serverUrlserverCommandserverName 远程服务器优先按URL,本地服务器优先按完整命令匹配
执行客户端 GitHub Copilot app、Copilot CLI、VS Code(8月6日);JetBrains IDEs(8月18日扩展) 分别验证策略加载与服务器连接结果
服务器管理文件 .github-private仓库中的copilot/managed-settings.json 纳入Pull Request、代码所有者和默认分支保护

企业应先在GitHub的Copilot策略中启用"MCP servers in Copilot",再配置允许与拒绝列表。使用既有自定义MCP Registry限制策略的环境,可以先统一准入来源,减少注册表规则与managed-settings.json同时维护造成的策略冲突。

企业怎样配置Copilot的MCP服务器白名单?

每个列表条目只使用一种匹配属性。下面的结构展示远程URL、本地命令和明确拒绝项的组合方式,示例地址与命令需要替换为企业已经审核的实际值。

{
  "allowedMcpServers": [
    { "serverUrl": "https://mcp.example.com/*" },
    { "serverCommand": ["approved-mcp-command", "--profile", "production"] }
  ],
  "deniedMcpServers": [
    { "serverCommand": ["blocked-mcp-command", "--scope", "all"] }
  ]
}

两项配置的状态差异如下:

配置状态 非默认MCP服务器的处理方式
省略allowedMcpServers 允许运行,同时继续执行deniedMcpServers规则
allowedMcpServers: [] 所有非默认服务器进入阻止状态
allowedMcpServers包含条目 只有匹配至少一项的服务器进入允许状态
服务器匹配deniedMcpServers 拒绝规则优先,服务器进入阻止状态
受信任的第一方内置服务器 GitHub内置MCP服务器等受信任第一方服务器始终豁免于允许与拒绝列表

这组差异直接影响上线方式。准备建立严格准入基线的企业,可以先在测试设备组使用空允许列表确认默认状态,再逐项加入经过审核的远程URL和本地命令。正式配置通过JSON格式检查、代码审查和测试客户端验证后,再扩大到更多团队。

MCP服务器白名单的三种匹配方式有什么区别?

serverUrlserverCommandserverName对应不同的服务器身份。企业应根据实际连接方式选择匹配器,并把配置中使用的完整值保存到资产清单。

匹配器 适用对象 匹配规则 适合记录的证据
serverUrl HTTP或SSE远程服务器 支持*通配符;客户端规范化URL后匹配,协议和主机不区分大小写,路径区分大小写 服务域名、路径范围、证书、服务所有者和变更记录
serverCommand 通过stdio启动的本地服务器 按命令及每个参数的内容和顺序精确匹配,不使用通配符或命令行展开 可执行文件、包来源、参数、版本锁定和安装方式
serverName 用户分配的服务器标签及内存服务器 名称精确匹配;允许列表中的名称使用[A-Za-z0-9_-]+,不支持通配符 名称规范、客户端配置和责任人

serverCommand精确匹配命令名称及每个参数的内容和顺序,匹配过程中不使用通配符或命令行展开。serverName用于便捷识别,名称由用户配置。远程服务器具备稳定URL时优先使用serverUrl,本地stdio服务器具备固定启动方式时优先使用serverCommand,由此把准入判断绑定到更稳定的服务器身份。

serverUrl匹配前会进行URL规范化,包括协议与主机名小写化、国际化主机名转Punycode、移除默认端口(HTTP :80、HTTPS :443)、解码主机名中的百分号编码、移除URL fragment和DNS尾点;authority部分的通配符不会跨越/边界进入路径匹配。

URL模式还需要控制通配符范围。https://mcp.example.com/*表示该主机下的路径前缀,https://*.internal.example.com/*会覆盖相应子域。企业可以从具体主机和具体路径开始配置,再按实际服务器数量扩大范围。

GitHub Copilot MCP白名单serverUrl、serverCommand与serverName三种匹配器对比
三种匹配器分别适用于远程HTTP/SSE服务器、本地stdio服务器和用户标签, 各自的匹配规则、通配符支持和适用场景一一对应。

多层MCP策略怎样计算允许与拒绝结果?

企业托管设置可以来自MDM管理、服务器管理、文件管理和用户设置。GitHub对MCP允许与拒绝列表采用叠加判断:允许范围取各层允许列表的交集,拒绝范围取各层拒绝列表的并集。一般托管设置的来源优先级顺序为MDM管理、服务器管理、文件管理和用户设置。

客户端按以下顺序判断一台MCP服务器:

  1. 识别受信任的第一方内置服务器;
  2. 检查服务器是否匹配任意一层deniedMcpServers
  3. 对每一层已配置的allowedMcpServers执行匹配;
  4. 检查URL或命令中的变量是否已经解析;
  5. 所有策略层均通过后启动服务器。

任意策略源中的拒绝项都会阻止服务器;配置了允许列表的每一层都需要匹配成功。格式错误的允许或拒绝列表会按空allowedMcpServers处理,使非默认服务器进入阻止状态。策略读取或设备发现发生错误时,客户端保留此前已经应用的策略;有效策略可以变得更严格,但不会变得更宽松。

服务器管理方式适合通过.github-private仓库集中审查和保留变更历史,配置提交到默认分支后,支持的客户端通常在约一小时内自动应用,重启客户端或再次登录可触发即时刷新。MDM管理的客户端每小时检查一次策略更新。基于文件的管理方式把managed-settings.json放到各平台指定位置,需要重启客户端以加载更新后的策略文件。

平台 文件管理位置
Windows %ProgramFiles%\GitHubCopilot\managed-settings.json
macOS /Library/Application Support/GitHubCopilot/managed-settings.json
Linux /etc/github-copilot/managed-settings.json

在服务器管理部署中,企业可通过.github-private仓库中的copilot/team-mappings.jsoncopilot/teams/下的团队配置文件映射到不同企业团队;allowedMcpServersdeniedMcpServers均可使用overridable标记,以允许团队级配置覆盖企业默认值。企业基线负责统一底线,团队文件负责承载研发、数据、运维等不同岗位的服务器需求。

GitHub Copilot MCP多层策略允许交集与拒绝并集计算流程
多层策略中,允许范围取各层allowedMcpServers的交集,拒绝范围取各层deniedMcpServers的并集, 任意一层的拒绝项即可阻止服务器。

MCP服务器进入白名单前要核对哪些安全项?

MCP安全最佳实践从服务器身份、工具范围、数据权限、MCP身份认证、网络和审计记录开始。一台MCP服务器进入允许列表前,至少需要形成以下资产和权限记录:

核对项 需要记录的内容 验收方法
服务器身份 远程URL或本地完整命令、参数与名称 将资产清单值与客户端配置逐项比对
负责人 业务所有者、技术维护人和安全审批人 检查联系人与变更流程
工具范围 服务器开放的查询、读取、写入或执行工具 使用测试账号逐项调用并记录结果
数据范围 代码库、工单、文档、数据库或文件目录 以最小权限账号验证可见对象
身份认证 OAuth应用、服务账号、API Key或客户端证书 检查权限、有效期、轮换和撤销流程
本地运行条件 软件包来源、版本、安装路径和启动参数 重建测试设备并验证命令一致性
网络访问 目标域名、端口、代理和回调地址 核对防火墙、代理与连接日志
审计记录 连接时间、调用工具、目标资源和操作结果 将日志接入现有审计与告警流程
退出机制 停用条件、拒绝项和凭据撤销步骤 在试点环境执行一次停用演练

MCP白名单控制服务器准入,MCP服务器自身的工具配置和身份权限决定可访问的数据与操作。数据库只读账号、代码仓库角色、文档系统ACL、短期令牌与Secret轮换仍按各业务系统分别配置。

MCP白名单与沙箱、业务系统权限怎样分工?

白名单回答"这台MCP服务器是否获准运行",沙箱回答"本地进程可访问哪些文件、网络、凭据和命令"。两者可以组合成从服务器身份到执行环境的两层控制。

控制层 主要对象 验收重点
MCP白名单 远程服务器URL、本地启动命令和服务器名称 允许、拒绝、未匹配和多层策略结果
Copilot沙箱 本地命令、文件系统、网络、凭据、MCP与LSP进程 允许路径、拒绝路径、出站网络和凭据注入
业务系统权限 仓库、数据库、工单、文档和文件目录 账号角色、数据范围、写入权限和审计日志

需要继续验证本地与云端执行环境时,可参考GitHub Copilot沙箱隔离,把MCP服务器准入测试与文件、网络、凭据测试放入同一套试点验收表。

MCP工具怎样进入Agentic Workflows?

GitHub于2026年8月6日公布的MCP白名单执行客户端为GitHub Copilot app、Copilot CLI和VS Code,8月18日扩展至JetBrains IDEs。Agentic Workflows运行在GitHub Actions体系中,工具、令牌、仓库权限、网络和写入动作继续由工作流配置、Agent Workflow Firewall与Safe Outputs控制。

计划在智能体工作流中调用工具的企业,可以把两条治理路径分别验收:开发人员在Copilot客户端中使用MCP服务器时检查企业白名单;自动化任务在Actions中运行时检查工作流文件、GITHUB_TOKEN、工具配置、网络允许列表与受控输出。具体的令牌、审批和写入规则可继续查看GitHub Agentic Workflows权限控制

企业怎样试点和验收MCP白名单?

建议先选择一个低风险、只读、数据范围清晰的MCP服务器,在小规模设备组完成以下步骤:

  1. 确认企业或组织的"MCP servers in Copilot"策略已启用;
  2. 建立MCP服务器清单,记录URL、命令、名称、负责人、数据与工具范围;
  3. 选择服务器管理、MDM或文件管理方式,并确定策略源;
  4. 在测试分支编辑managed-settings.json,执行JSON格式检查和Pull Request审查;
  5. 配置一个允许服务器、一个拒绝服务器和一个未匹配服务器;
  6. 分别在GitHub Copilot app、Copilot CLI、VS Code和JetBrains IDEs验证执行结果;
  7. 测试允许项、拒绝项、未匹配项、未解析变量和格式错误配置;
  8. 检查服务器实际取得的数据、工具、凭据和网络范围;
  9. 记录策略版本、客户端版本、测试时间、执行结果与异常;
  10. 根据试点结果扩大设备组,并建立新增、变更、停用和复查流程。
测试对象 预期结果 需要保存的证据
匹配允许列表的服务器 按策略进入允许状态 客户端、策略版本、匹配器与连接记录
匹配拒绝列表的服务器 进入阻止状态 拒绝规则、客户端提示与测试时间
未匹配允许列表的服务器 进入阻止状态 服务器配置与未匹配结果
URL或命令含未解析变量 进入阻止状态 原始配置、变量状态与客户端结果
多层策略中的冲突项 任意拒绝规则生效,并满足各层允许列表 MDM、服务器和文件策略的有效值
格式错误的策略 非默认服务器进入阻止状态 JSON检查结果与客户端加载记录

成都及西南企业怎样试点Copilot MCP治理?

成都及西南地区准备部署GitHub Copilot MCP服务器治理的企业,可以先整理以下准备材料:

  • Copilot计划与企业所有者权限;
  • 组织与团队结构;
  • 客户端类型与版本;
  • MCP服务器URL、命令与名称清单;
  • 各服务器的工具和数据范围;
  • 身份认证与审计要求;
  • 代码仓库与构建数据保护需求。

美步科技可协助梳理研发流程、代码仓库与构建数据保护需求,并结合企业现有权限和备份体系制定试点与验收清单。

成都及西南研发流程与数据保护服务

官方资料

操作步骤

  1. 1
    启用MCP策略
    在GitHub企业Copilot策略中启用MCP servers in Copilot,确认企业计划和管理员权限。
  2. 2
    建立服务器清单
    记录每台MCP服务器的URL或命令、负责人、工具范围、数据范围、身份认证和审计要求。
  3. 3
    编辑托管设置
    在.github-private仓库的copilot/managed-settings.json中配置allowedMcpServers与deniedMcpServers,通过Pull Request审查后提交到默认分支。
  4. 4
    验证执行结果
    在GitHub Copilot app、Copilot CLI、VS Code和JetBrains IDEs分别验证允许、拒绝和未匹配服务器的连接结果。
  5. 5
    扩大部署
    根据试点结果扩大设备组,建立新增、变更、停用和复查流程。

常见问题

GitHub MCP白名单目前是什么发布状态?

GitHub于2026年8月6日将企业MCP白名单标记为Generally Available,适用计划为Copilot Business与Copilot Enterprise,配置角色为企业所有者。

哪些客户端当前执行MCP白名单?

2026年8月6日公告列出的执行客户端为GitHub Copilot app、Copilot CLI和VS Code;8月18日扩展至JetBrains IDEs。

省略allowedMcpServers与配置空数组有什么区别?

省略allowedMcpServers时,非默认MCP服务器可以运行并继续执行deniedMcpServers规则;配置空数组时,所有非默认服务器进入阻止状态。

远程MCP服务器应该使用哪种匹配器?

具备稳定URL的远程HTTP或SSE服务器优先使用serverUrl,支持*通配符;客户端会对URL进行规范化后匹配,协议和主机匹配不区分大小写,路径匹配区分大小写。

本地MCP服务器怎样匹配?

通过stdio启动的本地服务器使用serverCommand,按命令及每个参数的内容和顺序精确匹配。

允许列表与拒绝列表同时匹配时怎样处理?

拒绝规则优先。允许范围取各层允许列表的交集,拒绝范围取各层拒绝列表的并集,任意策略源的拒绝项都会阻止服务器。

MCP白名单更新后多久生效?

服务器管理设置通常在约一小时内自动应用,重启客户端或再次登录可触发即时刷新;MDM管理的客户端每小时检查一次策略更新;基于文件的管理方式需要重启客户端以加载更新后的策略文件。

参考来源

  1. GitHub Changelog:MCP allowlists in enterprise managed settings
  2. GitHub Docs:Configuring an MCP server allowlist for your enterprise
  3. GitHub Docs:MCP server usage in your company
  4. GitHub Docs:Enterprise managed settings
  5. GitHub Docs:Configuring enterprise-managed settings