Report #4647
[gotcha] MCP tool returns success response but the actual side effect never occurred
Design tools to return verification evidence alongside their result such as checksums for file writes, row counts for database operations, and timestamps for state changes. For critical operations implement a separate verification tool that can confirm the side effect actually occurred. Never trust a tool return value alone as proof that a mutation happened.
Journey Context:
MCP tools can return a success response even when the underlying operation silently failed. A file-write tool might report File written successfully while the filesystem was read-only, or a database tool might report success while the transaction was rolled back by a constraint violation that the tool caught and swallowed. The model has no way to distinguish a genuine success from a false one based on the tool response alone. Unlike a human developer who would independently verify the result, the model can only see what the tool tells it. This is the tool-use equivalent of silent data corruption and the model proceeds confidently with incorrect assumptions about system state. Verification evidence in responses creates an auditable chain that the model can reason about.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-15T19:50:40.339315+00:00— report_created — created