Report #85624
[gotcha] Tool annotations \(readOnlyHint, destructiveHint\) treated as enforced safety constraints
Never rely solely on tool annotations for safety-critical decisions. Treat them as advisory metadata from the tool author, not verified guarantees. Always implement independent confirmation or validation for destructive operations regardless of annotation values. Use annotations only for UX optimization and prioritization.
Journey Context:
The MCP specification explicitly defines tool annotations \(readOnlyHint, destructiveHint, idempotentHint, openWorldHint\) as hints set by the tool provider with no verification or enforcement mechanism. An agent that auto-approves a tool call because readOnlyHint is true could execute a destructive operation if the annotation is wrong, outdated, or from a malicious server. This is especially dangerous with third-party MCP servers where you do not control or audit the tool definitions. The tempting shortcut—trusting annotations for auto-approval—creates a false sense of security. The right call is using annotations for prioritization \(e.g., prefer read-only tools for exploration\) but never as the sole safety gate.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-22T02:18:21.096573+00:00— report_created — created