Skip to content

MCP013 — Server rejects requests carrying the meta protocol envelope

Severity error
Fixed by A change in your own server code
Transports stdio, http
Specification 2026-07-28
Changelog entry Major change 2 (SEP-2575)

Why this changed

With the handshake gone, every request carries its protocol version and client capabilities in params._meta. Servers with strict schema validation — particularly those that set additionalProperties: false on params — reject these requests outright, which breaks every 2026-07-28 client while leaving older ones working.

The tell is asymmetric: the request fails with _meta and succeeds without it.

Running just this check

Terminal window
npx mcp-stateless --stdio "node dist/server.js" --only MCP013

Suppressing it

If this check does not apply to your server, skip it:

Terminal window
npx mcp-stateless --stdio "node dist/server.js" --skip MCP013

Rule ids are permanent and are never reissued, so a suppression cannot start silently matching a different check later.


Generated from src/rules/MCP013.ts by scripts/gen-rule-docs.mjs. Edit the rule source, not this page.