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.221 Home All releases olderv2.1.220 v2.1.222newer

New MCP protocol-era negotiation with probe and legacy fallback

Not switched on
Useful3 Signal4
MCP Notable not in their notes

In auto mode MCP connections would probe for a modern protocol and fall back to legacy, but nothing enables it.

MCP clients can probe for a modern protocol era with per-transport budgets; auto mode is not enabled in this build.

Feature flag
tengu_mcp_protocol_negotiation_stdio On for this account, and not off by default

The flag server returned on for the one account this site reads, and nothing in this release compiles it off by default. The compiled default is shown below, and says which it is when we cannot read one: a fifth of gates compile in a string or a number rather than on or off, and most published releases have no gate table behind them at all. No client can see what the server returns for your account.

This account: on · anonymous baseline: on · compiled default in v2.1.221: on

These values were read against a different version of Claude Code, so treat them as the nearest reading available instead of one taken on this release.

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

MCP_PROTOCOL_NEGOTIATION
What

When negotiation is in auto mode, the client probes for a modern protocol era and falls back to a pinned legacy connection if the probe fails.

Details
  • Selection is per transport: http, claudeai-proxy and stdio each consult their own gate and default to legacy absent a remote value; sse, ws, ide, in-process, ccr-proxy and sdk-control are always legacy.
  • Probe budgets differ per transport; stdio uses min(3000, connect-timeout/3).
  • Connected clients record negotiatedProtocolVersion and protocolEra, and clients are constructed with an explicit jsonSchemaValidator.
  • An invalid MCP_PROTOCOL_NEGOTIATION value is warned about and ignored.
  • None of this machinery exists in 2.1.220.
Evidence

MCP_PROTOCOL_NEGOTIATION=${t} is invalid; expected 'legacy' or 'auto' — ignoring, tengu_mcp_protocol_negotiation_stdio

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.221 →