MCP-RES-002
resultType is a value defined by core or an advertised extension
“A resultType of any value unrecognized by the client MUST be considered invalid.” — spec anchor
How to fix this
Use `complete` for an ordinary result and `input_required` for a multi round-trip request. Any other value has to come from an extension the client advertised, or the client must treat the result as invalid.
How the validator checks this
Probe P1.1, against a streamable-http server on the modern protocol. What it reports:
- pass
- resultType "…" is defined by core
- fail
- resultType "…" is neither of the core values ("complete", "input_required"). The validator advertises no extensions, so an extension-defined value is unrecognized and the spec requires an unrecognized resultType be treated as invalid.
- skip
- No resultType was present to check — see MCP-RES-001 for the missing field itself
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-005.
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-003Server sends no independent JSON-RPC requests on a response stream
- MCP-RES-004Accepted notification POST returns 202 with no body
- MCP-RES-005Response is application/json or text/event-stream; SSE terminates with the final response
- MCP-RES-006SSE responses set X-Accel-Buffering: no
- MCP-RES-007tools/list returns a deterministic order