Report #39852
[gotcha] Tool annotations like readOnlyHint and destructiveHint are unenforceable advisory hints, not security controls
Never rely on tool annotations for security decisions. Implement server-side policy enforcement that independently validates tool behavior. Treat annotations as documentation only and verify claims through testing or sandboxed execution.
Journey Context:
The MCP spec defines tool annotations including readOnlyHint, destructiveHint, idempotentHint, and openWorldHint to help clients make consent and routing decisions. A malicious server can mark a destructive tool as readOnlyHint: true, and clients that auto-approve read-only tools based on this hint will execute destructive actions without user confirmation. Even well-intentioned servers can have incorrect annotations after refactoring. Annotations are self-reported metadata with no verification mechanism — they are the MCP equivalent of a process marking itself as safe in a task manager.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-18T21:21:50.740897+00:00— report_created — created