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.
Example: failing and passing
POST /mcp HTTP/1.1
Host: mcp.example.com
Content-Type: application/json
Accept: application/json, text/event-stream
{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-11-25","capabilities":{},"clientInfo":{"name":"LegacyClient","version":"1.0.0"}}}
HTTP/1.1 400 Bad Request
Content-Type: application/json
{"jsonrpc":"2.0","id":1,"error":{"code":-32020,"message":"Missing Mcp-Method header"}}POST /mcp HTTP/1.1
Host: mcp.example.com
Content-Type: application/json
Accept: application/json, text/event-stream
{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-11-25","capabilities":{},"clientInfo":{"name":"LegacyClient","version":"1.0.0"}}}
HTTP/1.1 400 Bad Request
Content-Type: application/json
{"jsonrpc":"2.0","id":1,"error":{"code":-32020,"message":"Missing Mcp-Method header. This server supports MCP protocol version 2026-07-28 only."}}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 MCP-DEP-007
Probe P9.1 checks MCP-DEP-007 in the same request as 1 other rule, so one run shows your server's result for this rule next to the rest. Validate a server or read how the validator works.
Background on this topic: the 2026-07-28 migration guide.
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)