Last reviewed
Correct answer: A. There is no negotiation handshake in this revision: every request declares its own version and capabilities.
Explanation
The principle — Per-request metadata replaces a session, and the handshake goes with the session.
Why the key is correct — There is no negotiation handshake. Instead, every request declares the protocol version it is using via the io.modelcontextprotocol/protocolVersion key in its _meta field, and the server accepts or rejects each request independently. A client written against this revision does not open a connection so much as start sending, and each message carries everything the server needs to decide whether it can serve it.
Why the others are wrong — There is no agree-once step to omit later. Nothing has failed. And the transport may mirror the version, but the body carries it and the protocol layer acts on it.
Remember this — No opening exchange; every request introduces itself. If you have read about MCP anywhere other than the current specification, this is the single fact most likely to be out of date in what you learned.
Sources — MCP first-party documentation.
Sources
“There is no negotiation handshake.”
“Every request declares the protocol version it is using via the io.modelcontextprotocol/protocolVersion key in its _meta field, and the server accepts or rejects each request independently.”
Practise 10 questions on this topic
Take MCP Fundamentals — Timed Test 1 (10 questions) — scored instantly, explanation for every question, no login.