MCP servers are add-ons that give Claude extra tools. Claude Code talks to them through an MCP client. It used to choose between an older v1 client and the newer v2 client using a switch controlled remotely, which picked v2 unless told otherwise.
That choice is gone. Claude Code now always uses the v2 client. If you set the environment variable MCP_SDK_GENERATION=v1, Claude Code no longer switches back. It logs a warning that this build has only the v2 client, and describes v1 as the one using the older handshake and relaxed sign-in checks.
There is no longer a way back to the v1 client. If you used MCP_SDK_GENERATION=v1 to work around a problem with an MCP server, that workaround no longer has any effect.
tengu_brindle_causeway 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.323: not a boolean we can read
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.323. It isn't a statement about your account. What a flag value here can and cannot tell you
Changed MCP_SDK_GENERATION=v1 to run the v2 MCP client in a compatibility mode (earlier handshake, relaxed OAuth sign-in checks), because…