createmcps.com

MCP-ERR-001

Unsupported version returns -32022 with data.supported[]

If the server does not implement the requested version, it MUST respond with an UnsupportedProtocolVersionError listing the versions it does support.spec anchor

How to fix this

Reject a protocol version you do not implement with `-32022`, and list the versions you do support in `data.supported`. Without that array a client has nothing to retry with.

How the validator checks this

Probe P4.2, against a streamable-http server on the modern protocol. What it reports:

pass
Rejected version 1900-01-01 with -32022 and listed supported versions
warn
Returned -32022 but without data.supported[] — a client with no fall-forward mechanism has nothing to retry with
fail
Accepted protocol version 1900-01-01 — an unimplemented version must be rejected with -32022

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.

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 Error codes rules

  • MCP-ERR-002Unknown method returns HTTP 404 and JSON-RPC -32601
  • MCP-ERR-003Resource-not-found uses -32602, not the retired -32002
  • MCP-ERR-004The retired -32042 code is never emitted
  • MCP-ERR-005No undefined code is emitted in the reserved -32020…-32099 range
  • MCP-ERR-006Missing required _meta field returns HTTP 400 + JSON-RPC -32602
  • MCP-ERR-007Missing client capability returns -32021 with data.requiredCapabilities
  • MCP-ERR-008New implementation-defined codes avoid the legacy -32000…-32019 range