MCP servers are outside programs that give Claude Code extra tools. A stdio server is one that Claude Code starts on your own machine and talks to through the program's text input and output. Before connecting, Claude Code can send a short check, called the discover probe, to learn which version of the MCP protocol the server speaks. This is called negotiation.
When a connection attempt fails, Claude Code now checks whether a stdio server using automatic negotiation timed out:
- If the server answered the discover probe late but never finished starting up, Claude Code notes that it speaks the newer protocol and does not remember it as an older (legacy) server.
- Otherwise, Claude Code records the server as legacy, as before.
Automatic protocol negotiation for stdio servers also now defaults to on when the settings server sends no value. Previously the default was off. The settings server has been answering on for this site's own account and for an anonymous check, first seen on 2026-09-29.
A server that is only slow to start is less likely to be marked as legacy by mistake and then handled in a reduced way on every later connection.
tengu_mcp_protocol_negotiation_stdio On for this account, and not off by defaultThe 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.292: 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_connect_timeout_retry Not enough to sayNothing here resolved what this flag was doing on this version, so nothing here should be read as on or off.
This account: no value returned · anonymous baseline: no value returned · compiled default in v2.1.292: 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.292. 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.