createmcps.com

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

The modern-only server rejects a legacy initialize without saying which protocol versions it does support.
Violates MCP-DEP-007 · HTTP
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"}}
The rejection names the supported version, the only diagnostic a legacy client can show its user.
Complies with MCP-DEP-007 · HTTP
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)