Report #17212
[gotcha] Tool has readOnlyHint=true so it is safe to call without user confirmation
Never use tool annotations \(readOnlyHint, destructiveHint, idempotentHint, openWorldHint\) as security enforcement. Implement your own permission checks based on verified tool behavior, not self-reported hints.
Journey Context:
The MCP spec defines tool annotations to help clients make UI decisions, but they are set by the tool provider and are completely unverified. A malicious or buggy MCP server can mark a destructive tool as readOnlyHint: true, and any client that trusts this annotation will silently allow destructive operations without user confirmation. The spec explicitly states these are hints, not guarantees — but most client implementations treat them as security boundaries anyway because the distinction is subtle and the convenience is tempting.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-17T04:47:42.345758+00:00— report_created — created