MCP servers that reply oddly to the version probe now fall back to legacy instead of failing.
What's wrong with this entry?
When connecting to an MCP server, Claude Code sends a server/discover probe to work out which protocol version to use. It previously handled only a proper response, a send error, a closed connection or a timeout. Three more bad-reply shapes are now recognised and all three are treated as evidence the server is an older one, so the connection falls back to the legacy path rather than failing negotiation outright.
- New outcomes:
id-mismatch(the reply does not echo the request id, seen with HTTP transports),malformed(the reply fails JSON-RPC decoding) andstream-end(the request stream ends with no reply at all). - Named errors for these cases are passed to the transport's error handler.
server/discover probe reply did not echo the request id (expected
Strings lifted out of the shipped bundle, so the claim above can be checked against them.