MCP-RES-005
Response is application/json or text/event-stream; SSE terminates with the final response
“The server MUST return either Content-Type: application/json (a single JSON object) or Content-Type: text/event-stream (an SSE response stream).” — spec anchor
How to fix this
Set `Content-Type` to either `application/json` for a single JSON object or `text/event-stream` for a stream. An SSE stream ends with the final response.
How the validator checks this
Probe P1.1, against a streamable-http server on the modern protocol. What it reports:
- pass
- Every list response used application/json or text/event-stream
- fail
- Content-Type must be application/json or text/event-stream — got
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-DSC-001, MCP-DSC-002, MCP-DSC-003, MCP-DSC-004, MCP-DSC-005, MCP-STL-003, MCP-RES-001, MCP-RES-002.
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 Result and message shape rules
- MCP-RES-001Every result includes resultType
- MCP-RES-002resultType is a value defined by core or an advertised extension
- MCP-RES-003Server sends no independent JSON-RPC requests on a response stream
- MCP-RES-004Accepted notification POST returns 202 with no body
- MCP-RES-006SSE responses set X-Accel-Buffering: no
- MCP-RES-007tools/list returns a deterministic order