Bible Network Crypto DeFi Onchain RWA AI Agent Stablecoin Chain SAFU CryptoTax DeFAI AGI Claude Me Claude Skill Claude Design Claude Cowork
Independent Media
Not affiliated with any project
Exploring the Frontier of AI Intelligence
claude-me.com
LATEST
Anthropic Launches Claude Duet, a Proactive Agent That Reaches Out Before You Ask, Waitlist-Only for US Pro and Max Users  ·  Code Review Goes GA With Quick, Standard and Deep Levels: Pick One Per Repo, but Anthropic Does Not Say How the Levels Differ  ·  Claude Code v2.1.305 Changes allowedMcpServers: MCP Servers Your Allowlist Used to Block May Load on Upgrade  ·  Claude Code Tightens MCP Allow Rules: mcp__a No Longer Allows a Server Named a__b, and Names With Double Underscores Need a New Form  ·  Claude Code Adds Idle Compaction: A Conversation Left Alone for 54 Minutes Is Compacted Before the Prompt Cache Expires  ·  Anthropic Builds Scion to Replace Git: Daily Merges Jumped From 2,500 to 30,000, and the Bottleneck Moved From Writing Code to Source Control
practice

Claude Code v2.1.305 Changes allowedMcpServers: MCP Servers Your Allowlist Used to Block May Load on Upgrade

30-Second Version · For the impatient
An allowlist means anything not named does not load; this change makes one class of servers allowed by default, and with no error message at all.

Full Explanation +
01 · Why did this happen?

None of my MCP servers are defined in managed-mcp.json. Should I worry?

Read literally, the changelog line targets stdio servers in managed-mcp.json whose ${VAR} appears only in env. Servers from other sources are not covered by that line.

I did not verify every combination, though, so if you control MCP through managed settings, still compare the actually loaded list with /mcp after upgrading.

02 · What is the mechanism?

How do I keep a particular server blocked?

Per the summary, list it explicitly in deniedMcpServers. The example uses serverCommand pointing to that server's executable.

Afterward, open a clean session and confirm with /mcp that it does not appear, instead of only reading the config file.

03 · How does it affect me?

Is this a bug fix or a deliberate policy change?

The changelog lists it under Changed and words it as stopping the filtering, which looks like a deliberate behavior adjustment. I found no official explanation of why.

Since the motive is unclear, treat it as a change whose impact you must assess yourself rather than waiting for an explanation.

04 · What should I do?

How can I check the impact before upgrading?

The most direct way is to open managed-mcp.json, list all stdio servers, mark those whose ${VAR} appears only in env, then compare with your allowlist to see which would previously have been excluded.

That list is the set of servers most likely to appear extra after the upgrade, so decide one by one whether to add each to deniedMcpServers.

Full Content +

The Changed section of Claude Code v2.1.305 (October 20, 2026) says allowedMcpServers no longer filters managed-mcp.json stdio servers that use ${VAR} only in env. It is easy to read this as a small tweak, but for administrators who control MCP through managed settings, the direction is loosening, not tightening.

What Exactly Changed

According to a third-party summary, up to v2.1.304 a stdio server defined in managed-mcp.json whose only ${VAR} reference was in the env field was excluded if it was not on the allowedMcpServers list. From v2.1.305 such a server is no longer filtered by the allowlist and loads on upgrade. To keep it blocked, you must list it explicitly in deniedMcpServers. For example, suppose managed-mcp.json defines a server company-internal that uses ${COMPANY_API_TOKEN} only in env, and the allowlist contains a single approved npx package: before the upgrade it would not load, after it would, unless you add a deniedMcpServers entry pointing to its executable.

The Docs and the Changelog May Disagree

That same third-party summary also notes that the official managed-mcp documentation seems to describe allowlist filtering over more places than the changelog line does, including ${VAR} references in command, args, env, URL and headers. I did not check that part of the official documentation myself, so this is secondhand. The takeaway is not to trust either side alone: read both before upgrading, and verify in your real environment.

Why to Treat It as a Security Change

An allowlist exists so that anything not named does not load. This change moves one class of servers from blocked by default to allowed by default unless you Block it separately. If that server carries an internal API credential, like the Token in the example, and gets loaded without your knowing, the impact is not only functionality but what data it can reach. And the change is silent: no error appears, a server just shows up in the session.

What This Means for Your Money

If your team restricts MCP servers through managed settings, spend ten minutes before rolling out v2.1.305 or later: find the stdio servers in managed-mcp.json whose ${VAR} appears only in env, decide whether they should load, and add deniedMcpServers entries for any that should not. After upgrading, open a clean session, list the loaded servers with /mcp, and compare against what you expect. The cost of an extra server that should not be there usually arrives not on upgrade day but on the day it gets used.

Sources: Claude Code changelog (v2.1.305), Classmethod: Claude Code v2.1.305 to v2.1.306 Key Updates
Diagram
allowedMcpServers: Before and After v2.1.305同一台 stdio 伺服器在 v2.1.304 以前被白名單擋下,v2.1.305 起不再被過濾而載入allowedMcpServers: Before and After v2.1.305Stdio server in managed-mcp.json${VAR} appears only in env, not on allowlistUp to v2.1.304Filtered by allowedMcpServersServer does not loadFrom v2.1.305No longer filtered by the allowlistServer loads on upgrade, silentlyTo keep it blocked: add to deniedMcpServersClaude Me · claude-me.com
Feel free to share. Please credit the source.
Ask a Question
Please enter at least 10 characters
Related Articles
Code Review Goes GA With Quick, Standard and Deep Levels: Pick One Per Repo, but Anthropic Does Not Say How the Levels Differ
practice · Oct 22
Claude Code Tightens MCP Allow Rules: mcp__a No Longer Allows a Server Named a__b, and Names With Double Underscores Need a New Form
practice · Oct 19
Claude Code Adds Idle Compaction: A Conversation Left Alone for 54 Minutes Is Compacted Before the Prompt Cache Expires
practice · Oct 19
Claude Code Hooks Add onFailure: "block": A Mistyped Script Path No Longer Lets Your Policy Gate Silently Pass Everything
practice · Oct 10
More Related Topics