createmcps.com

MCP-HDR-006

Header names compared case-insensitively

Header names (called "field names" in RFC 9110) are case-insensitive. Clients and servers MUST use case-insensitive comparisons for header names.spec anchor

How to fix this

Compare header names case-insensitively, per RFC 9110. `mcp-method`, `Mcp-Method` and `MCP-METHOD` are the same field, and rejecting one of them rejects a valid request.

How the validator checks this

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

pass
Accepted headers spelled in a different case, as RFC 9110 requires
fail
Rejected a valid request whose header names differed only in case (HTTP …, code …). Header field names are case-insensitive.
info
Inconclusive — the case-variant request returned HTTP … for a reason other than header validation

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 Request metadata headers rules

  • MCP-HDR-001Missing Mcp-Method rejected with 400 + HeaderMismatch
  • MCP-HDR-002Missing Mcp-Name on tools/call rejected with 400 + HeaderMismatch
  • MCP-HDR-003Mcp-Name header must match the request body
  • MCP-HDR-004Missing MCP-Protocol-Version rejected (modern-only servers)
  • MCP-HDR-005MCP-Protocol-Version header must match _meta.protocolVersion
  • MCP-HDR-007Base64 sentinel-encoded header values decoded before comparison
  • MCP-HDR-008Mcp-Param-{Name} validated against body when x-mcp-header is declared
  • MCP-HDR-009Mcp-Param-{Name} containing invalid characters is rejected
  • MCP-HDR-010Header validation runs before method dispatch