MCP clients can probe for a modern protocol era with per-transport budgets; auto mode is not enabled in this build.
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.
- 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
negotiatedProtocolVersionandprotocolEra, and clients are constructed with an explicitjsonSchemaValidator. - An invalid
MCP_PROTOCOL_NEGOTIATIONvalue is warned about and ignored. - None of this machinery exists in 2.1.220.
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.
tengu_mcp_protocol_negotiation_stdio Off by default, switched on for this accountThe shipped code defaults this off, and the flag server returned on for the one account this site reads on this version. That is the reading that makes the entry above worth a second look, and it still says nothing about your account.
This account: on · anonymous baseline: on · compiled default in v2.1.221: off
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
A reading is one sample. Claude Code evaluates its flags remotely, so no client sees the targeting rule behind a value and this says nothing about your account.
A reading is one sample. Claude Code evaluates its flags remotely, so no client sees the targeting rule behind a value and this says nothing about your account.
A reading is one sample. Claude Code evaluates its flags remotely, so no client sees the targeting rule behind a value and this says nothing about your account.
A reading is one sample. Claude Code evaluates its flags remotely, so no client sees the targeting rule behind a value and this says nothing about your account.
A reading is one sample. Claude Code evaluates its flags remotely, so no client sees the targeting rule behind a value and this says nothing about your account.
A reading is one sample. Claude Code evaluates its flags remotely, so no client sees the targeting rule behind a value and this says nothing about your account.
A reading is one sample. Claude Code evaluates its flags remotely, so no client sees the targeting rule behind a value and this says nothing about your account.
A reading is one sample. Claude Code evaluates its flags remotely, so no client sees the targeting rule behind a value and this says nothing about your account.
New in this build: MCP_PROTOCOL_NEGOTIATION