Per-transport MCP protocol negotiation is wired for http, stdio and proxies, all defaulting to legacy; MCP_PROTOCOL_NEGOTIATION overrides it.
Connecting to an MCP server can now probe for a new protocol era instead of initializing directly, but every gate involved falls back to legacy in this build.
- The connect path builds a negotiation config per transport and passes it to the client as
versionNegotiation; only http, claudeai-proxy, ccr-proxy and stdio are eligible at all. - Each eligible transport asks its own gate:
Je("tengu_mcp_protocol_negotiation_http", !1),tengu_mcp_protocol_negotiation_claudeai,tengu_mcp_protocol_negotiation_stdio. All of them fall back to{ mode: "legacy" }when there is no remote value, so on this build alone nothing negotiates. - The supported revision list is
["2026-07-28", "2025-11-25", "2025-06-18", "2025-03-26", "2024-11-05", "2024-10-07"], the first two via constants. MCP_PROTOCOL_NEGOTIATION=legacy|autooverrides the gates; any other value logs a warning and is ignored.- The negotiated era is threaded into auth-failure diagnostics and into the claude/channel setup, which now skips registration on modern connections.
tengu_mcp_protocol_negotiation_http, connection negotiated a modern protocol revision with no unsolicited notification path
Strings lifted out of the shipped bundle, so the claim above can be checked against them.
tengu_mcp_protocol_negotiation_http 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.
tengu_mcp_protocol_negotiation_claudeai 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.
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: tengu_mcp_protocol_negotiation_claudeai