跳到正文
FunCoding

搜索

搜索文档、Skill 和 MCP

托管插件与 MCP

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

市场来源、插件启用状态和 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执行了指纹验证请求就认定其具备不可绕过的隔离保证。