A client declares support for an extension, but the server it calls does not support that extension. According to the extension negotiation rules, how must the supporting side behave?
Select an answer to reveal the explanation.
Short Explanation
If you speak French and your listener doesn't, you switch to the language you share, or you politely end the conversation if French was essential. The trap is talking French louder and hoping it works.
Full Explanation
The versioning rules state that if one party supports an extension but the other does not, the supporting party must either revert to core protocol behaviour or reject the request with an appropriate error, and extensions should document their expected fallback. For example, a server offering UI-enhanced tools should still return meaningful text content for clients that do not render MCP Apps, while a server that requires a particular authorization extension can reject clients that lack it. Sending initialize again belongs to the legacy handshake model; in revision 2026-07-28 the protocol version and capabilities travel with every request, and raising the version cannot add an extension the other side does not implement. Sending extension-specific messages anyway risks failures, because an unknown method returns a method-not-found error and an unrecognized resultType must be treated as invalid, so nothing is safely discarded. HTTP+SSE is a deprecated transport from 2024-11-05 with no special extension negotiation; extension support is advertised in capabilities, independent of transport. Exam caveat: the choice between fallback and rejection depends on whether the extension is optional for the feature at hand or essential to it. Operational check: compare the client's declared extensions with the server's server/discover capabilities and test that the core-only path returns a usable result.