Follow Discord
Sweep 22 Oct 2026 · 04:32Z Build v2.1.308 527 read Stable v2.1.308 Latest v2.1.308 Next v2.1.308 Feeds RSS JSON llms.txt llms-full.txt Unofficial

Claude Code v2.1.219 ·

MCP policy allow/deny entries now expand ${VAR} environment references, and unsafe URL expansions fail closed

MCP allow and deny policy entries now expand ${VAR} references, skipping allowlist entries whose expansion looks unsafe.

Use it now Notable New Features
JSON All of v2.1.219
Use it nowTier: how much it should matter to you
4Useful: my rating, 1 to 5
0Signal: worth watching, 1 to 5
MCPArea: what it touches
New FeaturesKind: in v2.1.219,
What probably matters to youSection of the release
What

allowedMcpServers and deniedMcpServers predicates are no longer matched literally; stdio serverCommand entries and remote serverUrl patterns go through environment-variable expansion first, with a safety analysis that discards allowlist entries whose expansion changes what the pattern means.

Details
  • Denylist expansion uses a merged env drawn from global config, user, flag and policy settings as fallbacks; the allowlist path uses the settings-derived env.
  • Substituted values are normalised through a placeholder that returns the constant zzenvsubzz (or a digit-zeroed form for numeric values, :: for IPv6-looking ones) so the expanded URL can be re-parsed and compared against the original.
  • Flagged as unsafe: an injected value that adds wildcard semantics, changes the URL's structure or hostname, or introduces traversal or query/fragment characters.
  • Allowlist URL entries with an unsafe expansion are skipped, so they fail closed; denylist entries still apply.
  • Missing variables emit a debug warning that the predicate references environment variables not present in the policy expansion env; unsafe expansions log that the expansion was unsafe.
  • Neither the placeholder nor the wildcardVars analysis exists in v2.1.218, and the settings schema descriptions were not updated to mention any of it.
Evidence

zzenvsubzz, MCP policy URL predicate expansion was unsafe

Strings lifted out of the shipped bundle, so the claim above can be checked against them.

Read from
How sure we are
One source agreesOne thing we can check says the same as this entry.
Anthropic's release notes agreeChanged managed MCP allowlist/denylist ${VAR} entries to resolve from the startup environment and managed-settings env instead of…

See this entry in the whole of v2.1.219 →

Feedback