Report #54850
[gotcha] Relying on MCP tool annotations for access control or safety enforcement
Never use annotation hints like readOnlyHint or destructiveHint as security boundaries; implement actual server-side enforcement of read-only and destructive constraints; treat annotations as UI hints only and always verify behavior independently
Journey Context:
The MCP spec defines tool annotations including readOnlyHint, destructiveHint, and idempotentHint to help clients and LLMs make decisions about tool usage. However, the spec explicitly states these are hints—the server is not obligated to honor them. A tool marked readOnlyHint: true can still perform destructive writes. Clients that gate actions based on these hints, such as auto-approving tools that claim to be read-only, are vulnerable to privilege escalation. The counter-intuitive part is that the spec provides these fields specifically for safety decisions, yet they provide zero actual safety guarantees.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-19T22:33:44.428320+00:00— report_created — created