首页/文章/Claude Code 2.1.305 升级前先查 MCP 白名单:被你挡掉的 server 可能悄悄加载

Claude Code 2.1.305 升级前先查 MCP 白名单:被你挡掉的 server 可能悄悄加载

· Zumac.Ai

这次改了什么

@nextaurame、@hazemomier、@AICodingOpsJP 不约而同提醒管理员:Claude Code 2.1.305 改动了 MCP 白名单的行为。官方 CHANGELOG 原文是:allowedMcpServers 不再过滤 managed-mcp.json 中只在 env 里使用 ${VAR} 的 stdio server;白名单里没写的这类 server,升级后会加载;想让它保持关闭,要用 deniedMcpServers。

为什么容易踩坑

按官方 Managed MCP 文档,allowedMcpServers 原本就不管 managed-mcp.json 里的 server,只有一个例外:定义里用了 ${VAR} 展开的 server 仍要过白名单,因为它的实际配置取决于每个用户的环境变量。文档还写明,这类变化会在用户首次启动新版本时生效,没有提示,也没有通知;能从这些 server 里「减掉」的只有 deniedMcpServers。

2.1.305 把「只在 env 里用变量」的情形也排除出了这个例外。如果你过去是靠「白名单不写它」来让某个 server 不启动,那么升级之后它会开始运行。

升级前的检查清单

  1. 列出 managed-mcp.json 里所有 stdio server,标出哪些只在 env 块里用了 ${VAR}。
  2. 对照 allowedMcpServers:凡是你本来希望它不加载、又不在白名单上的,都属于这次会「复活」的对象。
  3. 改用 deniedMcpServers 明确拒绝:文档建议用 serverCommand 或 serverUrl 条目,而不是 serverName——名字只是用户自己起的标签,任何 server 都可以叫 github,不是安全控制。
  4. 另一个办法是按用户分组部署不同的 managed-mcp.json,让不需要的 server 根本不出现在那台机器上。
  5. 先在一台机器上升级验证,用 /mcp 看实际加载了哪些 server,再推给全团队。

对个人用户的意义

即使你不是管理员,这条也提醒了一个原则:白名单「没写」不等于「禁止」。凡是一定不能运行的 MCP server,都要写成明确的拒绝规则,并在每次大版本升级后复查一次。

如果你想把 Claude Code 放在一台常开、整机独享的新加坡 Mac mini 上长期运行,可以了解 Zumac.Ai,咨询 Telegram @singatao。

来源

Zumac.Ai 新加坡 Mac mini M6,整机独享,¥999/月起,联系 Telegram @singatao。
查看方案与费用 · 帮助中心

返回首页 · 更多文章

Telegram 客服