A trainer asks which message patterns the core protocol in revision 2026-07-28 defines for composing requests, responses and notifications. Which list is correct?
Select an answer to reveal the explanation.
Short Explanation
Revision 2026-07-28 boils interaction down to three moves: you ask and get an answer, you ask and the server needs something back first, or you subscribe and listen. Anything with a handshake, a GET stream or a server-sent request is the old playbook.
Full Explanation
The message patterns page defines three ways a client and server compose JSON-RPC messages. In request and response, the client sends a request and the server answers with a result or an error, optionally preceded by notifications scoped to that request such as progress. In multi round-trip requests, a server that needs client input answers with an InputRequiredResult, and the client retries the request with inputResponses. In subscribe and notify, the client sends subscriptions/listen and receives a long-lived stream of the requested notification types. Every interaction begins with the client, and servers MUST NOT initiate JSON-RPC requests. The initialize handshake and server-initiated requests belong to legacy revisions; this revision removed the handshake and moved server needs into results. HTTP GET push and Last-Event-ID resumption are also legacy Streamable HTTP behaviours; a lost response stream now means re-issuing the request with a new id. Batch requests, topic-based publish and subscribe, and peer-to-peer broadcasts are not MCP patterns at all. Exam caveat: all implementations MUST support the message patterns, and every transport carries them unchanged, so the list does not differ between stdio and Streamable HTTP. Operational check: map each interaction in an implementation to one of the three patterns and flag any that rely on a server sending its own request.