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

MCP protocol-era negotiation (2026-07-28 "modern" revision) added behind per-transport gates

Not switched on
Useful3 Signal4
MCP Notable not in their notes

A newer MCP protocol handshake exists per transport but every gate falls back to legacy here.

Per-transport MCP protocol negotiation is wired for http, stdio and proxies, all defaulting to legacy; MCP_PROTOCOL_NEGOTIATION overrides it.

Feature flag
tengu_mcp_protocol_negotiation_http 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.

tengu_mcp_protocol_negotiation_claudeai 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.

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=legacyMCP_PROTOCOL_NEGOTIATION=auto
What

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.

Details
  • 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|auto overrides 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.
Evidence

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.

See this entry in the whole of v2.1.221 →