1. Preserve the candidate boundary
The target set was locked as a release candidate on May 21, 2026 and points to July 28, 2026. As of this guide, the final specification is not published; recheck the official changelog before every production decision.
2. Remove implicit state
Remove initialize, initialized and Mcp-Session-Id dependencies. Every request should carry the client context it needs and tolerate a server that remembers no prior session.
3. Make routing explicit
Adopt Mcp-Method and Mcp-Name where applicable, expose server/discover and return a useful UnsupportedProtocolVersionError. serverInfo moves onto each result instead of remaining attached to an initial handshake.
4. Revisit interactions and extensions
Require resultType in MRTR, model input_required, migrate subscriptions to subscriptions/listen and handle Tasks, extensions, Roots, Sampling and Logging according to their new status. Verify JSON Schema 2020-12, external references and deterministic tool order.
5. Close authorization and tracing gaps
Validate iss, application_type and credentials-issuer binding; evaluate Client ID Metadata Documents and propagate W3C Trace Context. Then run real interoperability tests: aligned declarations do not certify runtime behavior.
Frequently asked questions
H/M Blindspot · hogarmas.net
Is MCP 2026 already a final specification?
No. This page covers the locked 2026-07-28 candidate and keeps visible that the final document may still change.
Does the checker upload code or endpoints?
No. It processes declared answers in the browser, and exports omit code, project names, repositories, endpoints and credentials.
Does declared-ready mean compatible?
No. It means no applicable declaration check remained blocked or unknown. It does not replace a conformance suite or interoperability testing.
