Skip to content
FunCoding

Search

Search docs, Skills and MCP

托管插件与 MCP

限制插件市场和服务器身份,理解空列表、逐条锁定与跨来源匹配。

This page has not been translated into English yet. The original Chinese version is shown below.

市场来源、插件启用状态和 MCP 服务器允许范围是三个管理对象。允许安装某插件,不等于其服务器可以绕过 MCP 策略。

插件和市场

配置用途
enabledPlugins以 PLUGIN@MARKETPLACE 为键,true 要求启用,false 要求禁用
extraKnownMarketplaces提供可用市场及来源,可指定 autoUpdate
strictKnownMarketplaces将安装限制在指定市场列表

extraKnownMarketplaces 支持 github、git、directory 来源。autoUpdate 明确 true / false 时,用户不能改变该市场的自动更新决定;仍须先满足 strictKnownMarketplaces。

strictKnownMarketplaces 空数组锁定所有市场,包括内置市场,不表示“只限制用户添加的市场”。托管 enabledPlugins 与 extraKnownMarketplaces 按条目合并,固定条目不能本地禁用或重指向,其余个人条目仍可管理。

MCP 匹配

{
  "allowedMcpServers": [
    { "serverUrl": "https://mcp.example.com/*" },
    { "serverCommand": ["npx", "-y", "@example/mcp-server"] }
  ],
  "deniedMcpServers": [
    { "serverName": "untrusted-server" }
  ]
}

替换为实际服务器。每个条目只能有一个 matcher。

  • serverUrl 匹配远程 HTTP / SSE,支持星号;scheme、host 忽略大小写,path 区分大小写。
  • serverCommand 精确匹配 stdio 可执行命令及参数顺序,不支持命令通配。
  • serverName 精确匹配用户赋予的标签,适合标记但不足以稳定验证服务身份。

CLI 专门参考要求允许列表 serverName 为字母数字、下划线和连字符;拒绝列表可为任意非空名。有对应 URL / command matcher 时,该类型服务器必须按它匹配,不能再用一个容易重命名的标签绕过。

允许与拒绝

不设置 allowedMcpServers 不加允许列表限制;空数组拒绝所有非默认服务器。deniedMcpServers 不设或空数组不新增拒绝。deny 永远优先。

多个来源的 allowed 取交集,denied 取并集。可信第一方内置服务器豁免这些列表,不能用这里的规则禁止它们。不要把空数组与未设置混为一谈。

匹配前 URL 会规范化,包括 scheme / host 小写、Punycode、移除默认端口、片段和 DNS 尾点;authority 中的通配不会跨 / 扩展到路径。命令变量展开与远程 URL 规范化是不同过程,身份规则应以实际连接定义核对。

与企业注册表区别

设备级 allowedMcpServers / deniedMcpServers 独立于企业注册表允许列表。后者由 CLI 对非默认服务器计算指纹并向企业服务验证;服务不可用时失败关闭。两种管理能力可同时存在,应分别排查阻止原因。

支持矩阵显示 cloud agent 不支持这两个托管 MCP 列表键,不能直接将 CLI 配置套到云端;云端 MCP 要按它自身的配置和策略章节处理。

企业允许列表的完整判定、格式错误和获取失败处理,见托管允许列表。私有Registry参考仍明确名称/ID匹配可被配置修改绕过,不能因CLI执行了指纹验证请求就认定其具备不可绕过的隔离保证。