{"version":"2.1.292","anchor":"stdio-mcp-servers-now-get-a-stable-identity-hash-and-a-late","canonical_anchor":"stdio-mcp-servers-now-get-a-stable-identity-hash-and-a-late","heading":"Slow stdio MCP servers are no longer treated as legacy, and stdio servers get a stable identity","tier":"notice","area":"MCP","scope":"individual","heads_up":true,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.292\/e\/stdio-mcp-servers-now-get-a-stable-identity-hash-and-a-late","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.292","markdown":"### Slow stdio MCP servers are no longer treated as legacy, and stdio servers get a stable identity\n\nA stdio MCP server that answers the protocol probe late is no longer remembered as old-protocol, and stdio servers now get a hashed identity\n\n**What**\n\nMCP servers let Claude Code use outside tools. A stdio server is one Claude Code starts as a local program and talks to through its input and output. When connecting, Claude Code sends a `server\/discover` probe to learn whether the server speaks the newer protocol. A server that does not answer in time is treated as a legacy (old-protocol) server and remembered that way.\n\n- A stdio server whose probe timed out is now tracked (`_anthropicProbeTimedOut`, `answeredProbeLate`). If it answers late, it counts as slow to start rather than old, and is not recorded as a legacy server.\n\n- If it answers after it has already connected as legacy, a callback (`onAnsweredProbeLate`) forgets that legacy record.\n\n- The condition that sends a connection down the legacy path was widened from one flag to `(Ie || er)`.\n\n- Servers configured with a `command` now get an identity: an id hashed from the command, its arguments, its environment variables in sorted order and a project folder. Before, only http servers got one.\n\nOne finding links this to the built-in default of `tengu_mcp_protocol_negotiation_stdio` moving from off to on; the other could not confirm that link. Readings of that gate came from the flag server, which returned on for this site's account and for the anonymous baseline, switched on since the previous reading; no reading has been taken under this release yet.\n\n**Why**\n\nA stdio MCP server that is simply slow to start no longer gets stuck on the old protocol path.\n\n- Flag `tengu_mcp_protocol_negotiation_stdio`: On for this account, and not off by default (read for one account on one subscription tier against v2.1.292; this account: on, anonymous baseline: on, compiled default: 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.\n- Area: MCP\n- Tier: You'll notice\n- Useful: 2\/5\n- Signal: 1\/5\n- Scope: individual\n- Heads-up: yes"}