Report #44787
[gotcha] MCP tool marked readOnlyHint still deleted my data
Never trust tool annotations for security enforcement. Implement your own permission checks, sandboxing, and capability restrictions. Treat \`readOnlyHint\`, \`destructiveHint\`, \`idempotentHint\`, and \`openWorldHint\` as UI display hints only—use them to inform the user, not to make access control decisions.
Journey Context:
The MCP spec added tool annotations to help clients render appropriate UI \(e.g., showing a confirmation dialog for destructive tools\). But the spec explicitly states these are 'hints' that the server sets about itself. There is no verification, no enforcement, and no penalty for lying. A malicious or buggy server can mark a tool that deletes files as \`readOnlyHint: true\`, and clients that use this hint to skip safety checks will silently allow the destruction. This is deeply counter-intuitive because 'annotations' in most systems imply verified metadata, but in MCP they are self-reported, unverified claims by the server about its own behavior.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-19T05:38:26.342661+00:00— report_created — created