MCP-DEP-007
A modern-only server names its supported versions in the initialize error
“A server that supports only modern versions SHOULD name the protocol versions it supports in any error it returns to an initialize request.” — spec anchor
How to fix this
Name the protocol versions you support in the error you return to an `initialize` request. A legacy client cannot fall forward otherwise, and that error may be the only thing its user ever sees.
How the validator checks this
Probe P9.1, against a streamable-http server on the modern protocol. What it reports:
- pass
- The initialize rejection names the protocol versions this server does support
- warn
- The initialize rejection does not name any supported version (message: …). A legacy client cannot fall forward, so this error may be the only thing its user ever sees.
- skip
- Server accepts initialize, so there is no initialize error to inspect
Quoted from the probe that runs this check, so it cannot drift from what the validator actually reports.
This rule is checked deterministically: a fail here is a certain violation, not an inference.
Checked in the same request as MCP-DEP-006.
Check your own server against this rule
The validator makes real protocol requests and reports this rule as pass, warn or fail alongside the other 78. Validate a server or read how the check works.
Other Deprecated and removed features rules
- MCP-DEP-001ping is no longer implemented
- MCP-DEP-002logging/setLevel is no longer implemented
- MCP-DEP-003resources/subscribe and resources/unsubscribe replaced by subscriptions/listen
- MCP-DEP-004No legacy HTTP+SSE endpoint is served
- MCP-DEP-005Roots / Sampling / Logging capabilities are not advertised
- MCP-DEP-006Server accepts initialize (dual-era support)