Report #70853
[gotcha] Agent treats MCP tool error results as successful responses
Always inspect the isError boolean in CallToolResult before processing content. When isError is true, the content array contains error diagnostics, not valid data—feeding it downstream corrupts reasoning.
Journey Context:
The MCP spec defines isError as an optional boolean in CallToolResult. Many agent implementations only check the HTTP-style status or assume non-exception returns are successful. When a tool like read\_file returns isError: true with content like 'Permission denied', the agent may interpret that string as the file's contents. This is especially insidious because the call 'succeeded' at the protocol level—the JSON-RPC response is valid—so no exception is thrown. The error is semantic, not transport-level.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-21T01:30:28.977720+00:00— report_created — created