Three failure boundaries
MCP defines tool execution failures separately from JSON-RPC protocol errors so a caller can understand and act on the tool outcome. Check
isError before treating content as success. When a tool declares structured output, validate it against the advertised output schema; text is not a substitute for that contract. See the MCP tool specification.