A developer is porting an older MCP client to revision 2026-07-28 and reviews four methods it uses. Which one is still part of the protocol in this revision?
Select an answer to reveal the explanation.
Short Explanation
You'll notice the stateless rewrite cleared out the old housekeeping. No handshake, no ping, no global log dial. What's left is the real work, and calling a tool is the real work, so tools/call is the survivor.
Full Explanation
Revision 2026-07-28 makes MCP stateless. The initialize and notifications/initialized handshake is gone; every request instead carries io.modelcontextprotocol/protocolVersion and io.modelcontextprotocol/clientCapabilities in _meta, and servers must implement server/discover so clients can learn versions and capabilities when they want to. The same revision removes ping, logging/setLevel and notifications/roots/list_changed. tools/call is unchanged as the request clients send to invoke a tool by name with arguments, and it is one of only three requests, with resources/read and prompts/get, that may answer with an InputRequiredResult. ping fails because it was removed; with no long-lived session, a separate liveness check has nothing to keep alive. initialize fails because per-session negotiation was replaced by per-request _meta; it survives only as a legacy fallback a dual-version client may try against old servers. logging/setLevel fails because log level is now set per request with io.modelcontextprotocol/logLevel in _meta, and the Logging feature itself is deprecated. Exam caveat: a client supporting both old and new servers over stdio should send server/discover first and fall back only when it fails. Operational check: send each method to a 2026-07-28 server and confirm the removed ones return method not found.