A protocol that removes things without warning is not a protocol; it's a moving target. MCP's discipline: any feature being removed lands first in a revision marked deprecated, with the replacement shipping in parallel, and is removed no sooner than the next next revision. That gives implementations at least one full revision cycle to migrate.
The 2025-11-25 deprecation of HTTP+SSE is the live example. The 2024 spec defined two endpoints (POST for requests, GET for SSE). The 2025-03-26 revision introduced Streamable HTTP. The 2025-11-25 revision marks HTTP+SSE deprecated and labels Streamable HTTP as the path forward; servers that don't migrate before whichever revision finally removes HTTP+SSE will eventually fail to handshake with new clients.
Deprecation also flows through capabilities. A capability that is being phased out is still advertised — so old clients can detect and use it — but the spec marks it with a sunset note and the SDK marks it deprecated in code. New code should not start consuming a capability that is already on the way out, even if it currently works.