企业如何控制Copilot可连接的MCP服务器?
企业托管设置 · 匹配规则与策略叠加 · 试点验收清单
说明GitHub Copilot企业MCP白名单的配置方法、三种匹配器、多层策略计算、三种交付方式、服务器准入核对、沙箱与业务系统权限分工,以及从策略启用到扩大部署的试点验收步骤。
概述

企业如何控制Copilot可连接的MCP服务器?
GitHub Copilot已正式开放企业MCP白名单。企业所有者可在copilot/managed-settings.json中用allowedMcpServers与deniedMcpServers控制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或服务器名称 |
| 匹配方式 | serverUrl、serverCommand、serverName |
远程服务器优先按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服务器白名单的三种匹配方式有什么区别?
serverUrl、serverCommand与serverName对应不同的服务器身份。企业应根据实际连接方式选择匹配器,并把配置中使用的完整值保存到资产清单。
| 匹配器 | 适用对象 | 匹配规则 | 适合记录的证据 |
|---|---|---|---|
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/*会覆盖相应子域。企业可以从具体主机和具体路径开始配置,再按实际服务器数量扩大范围。

多层MCP策略怎样计算允许与拒绝结果?
企业托管设置可以来自MDM管理、服务器管理、文件管理和用户设置。GitHub对MCP允许与拒绝列表采用叠加判断:允许范围取各层允许列表的交集,拒绝范围取各层拒绝列表的并集。一般托管设置的来源优先级顺序为MDM管理、服务器管理、文件管理和用户设置。
客户端按以下顺序判断一台MCP服务器:
- 识别受信任的第一方内置服务器;
- 检查服务器是否匹配任意一层
deniedMcpServers; - 对每一层已配置的
allowedMcpServers执行匹配; - 检查URL或命令中的变量是否已经解析;
- 所有策略层均通过后启动服务器。
任意策略源中的拒绝项都会阻止服务器;配置了允许列表的每一层都需要匹配成功。格式错误的允许或拒绝列表会按空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.json将copilot/teams/下的团队配置文件映射到不同企业团队;allowedMcpServers和deniedMcpServers均可使用overridable标记,以允许团队级配置覆盖企业默认值。企业基线负责统一底线,团队文件负责承载研发、数据、运维等不同岗位的服务器需求。

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服务器,在小规模设备组完成以下步骤:
- 确认企业或组织的"MCP servers in Copilot"策略已启用;
- 建立MCP服务器清单,记录URL、命令、名称、负责人、数据与工具范围;
- 选择服务器管理、MDM或文件管理方式,并确定策略源;
- 在测试分支编辑
managed-settings.json,执行JSON格式检查和Pull Request审查; - 配置一个允许服务器、一个拒绝服务器和一个未匹配服务器;
- 分别在GitHub Copilot app、Copilot CLI、VS Code和JetBrains IDEs验证执行结果;
- 测试允许项、拒绝项、未匹配项、未解析变量和格式错误配置;
- 检查服务器实际取得的数据、工具、凭据和网络范围;
- 记录策略版本、客户端版本、测试时间、执行结果与异常;
- 根据试点结果扩大设备组,并建立新增、变更、停用和复查流程。
| 测试对象 | 预期结果 | 需要保存的证据 |
|---|---|---|
| 匹配允许列表的服务器 | 按策略进入允许状态 | 客户端、策略版本、匹配器与连接记录 |
| 匹配拒绝列表的服务器 | 进入阻止状态 | 拒绝规则、客户端提示与测试时间 |
| 未匹配允许列表的服务器 | 进入阻止状态 | 服务器配置与未匹配结果 |
| URL或命令含未解析变量 | 进入阻止状态 | 原始配置、变量状态与客户端结果 |
| 多层策略中的冲突项 | 任意拒绝规则生效,并满足各层允许列表 | MDM、服务器和文件策略的有效值 |
| 格式错误的策略 | 非默认服务器进入阻止状态 | JSON检查结果与客户端加载记录 |
成都及西南企业怎样试点Copilot MCP治理?
成都及西南地区准备部署GitHub Copilot MCP服务器治理的企业,可以先整理以下准备材料:
- Copilot计划与企业所有者权限;
- 组织与团队结构;
- 客户端类型与版本;
- MCP服务器URL、命令与名称清单;
- 各服务器的工具和数据范围;
- 身份认证与审计要求;
- 代码仓库与构建数据保护需求。
美步科技可协助梳理研发流程、代码仓库与构建数据保护需求,并结合企业现有权限和备份体系制定试点与验收清单。
官方资料
操作步骤
- 1启用MCP策略在GitHub企业Copilot策略中启用MCP servers in Copilot,确认企业计划和管理员权限。
- 2建立服务器清单记录每台MCP服务器的URL或命令、负责人、工具范围、数据范围、身份认证和审计要求。
- 3编辑托管设置在.github-private仓库的copilot/managed-settings.json中配置allowedMcpServers与deniedMcpServers,通过Pull Request审查后提交到默认分支。
- 4验证执行结果在GitHub Copilot app、Copilot CLI、VS Code和JetBrains IDEs分别验证允许、拒绝和未匹配服务器的连接结果。
- 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管理的客户端每小时检查一次策略更新;基于文件的管理方式需要重启客户端以加载更新后的策略文件。