Source Intelligence

DisclaimerUnofficial, and not affiliated with Anthropic. Nearly all of this is read straight out of what ships: npm bundles, captured prompts, published docs. Anthropic's own notes go in verbatim, marked as theirs. The rest is my reading, and every entry carries the strings behind it. If one looks wrong, vote it down and say why.

All of v2.1.238 Home All releases olderv2.1.237 v2.1.239newer
Claude Code v2.1.238

The MCP discovery cache is now off unless explicitly turned on

You'll notice
Useful3 Signal4
MCP Notable not in their notes

The MCP discovery cache flipped from on-by-default to off unless the server or you enable it.

The cache now resolves "not-enabled" unless MCP_DISCOVERY_CACHE is exactly true, taking this release's whole MCP account-switch rework dark with it.

Feature flag
tengu_mcp_discovery_cache_enable Not enough to say

Nothing here resolved what this flag was doing on this version, so nothing here should be read as on or off.

This account: no value returned · anonymous baseline: no value returned · compiled default in v2.1.238: not a boolean we can read

Read once, for one account on one subscription tier, against v2.1.238. It isn't a statement about your account. What a flag value here can and cannot tell you

MCP_DISCOVERY_CACHE
What

The cache that remembers MCP server discovery between runs was previously armed with a kill switch defaulting to on. It is now controlled by tengu_mcp_discovery_cache_enable, whose built-in fallback is null, so it reports "not-enabled" unless the server returns true or MCP_DISCOVERY_CACHE is set to exactly true. Everything else in this release's MCP account-switch rework hangs off the same check and is therefore dark on a default build.

Details
  • With the cache off, the process-wide account epoch never advances, so every abort path that compares it is inert, along with cached-connection reuse, the background refresh tracking, the disabled-server check and the identity-purge helper.
  • When enabled, the cache now records settled cached-dial failures and refused rows, emits a "strike" on revalidation failure, and tracks in-flight refresh dials so a server is not reported connected while its refresh is pending.
  • An entry is dropped when the server negotiates a different protocol era on revalidation.
  • Two new ineligibility reasons: "identity-changed" for an account switch during the process, and "ambient-credential" for servers whose URL implies an ambient credential.
  • Corrupt or oversize entries now report telemetry under mcp_discovery_cache / corrupt_entry, and the log line names the entry's own reason instead of always saying "oversize".
Evidence

tengu_mcp_discovery_cache_enable, if (V.MCP_DISCOVERY_CACHE !== !0 && e !== !0) return "not-enabled";, Discovery cache entry dropped: server negotiated a different protocol era on revalidation

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

Related

Other releases about the same thing. Found by shared names or similar wording; neither means one caused the other.

See this entry in the whole of v2.1.238 →