Report #14664
[tooling] Agent calls destructive tools without asking for confirmation, or user can't distinguish read vs write operations
Use the annotations field in Tool definitions to set title, readOnlyHint, destructiveHint, and openWorldHint to signal UI behavior for confirmation flows
Journey Context:
Most implementations ignore the Tool annotations object, but it's critical for safe agent UX. The destructiveHint: true flag signals that this tool deletes or irreversibly modifies data \(like 'delete\_database'\), triggering a confirmation dialog in Claude Desktop or other clients. Similarly, readOnlyHint: true assures the client no confirmation is needed. openWorldHint indicates the tool interacts with external systems \(APIs\) vs local-only. These aren't just documentation; Claude Desktop and other MCP clients actively use these to gate tool execution. Omitting them leads to either excessive paranoia \(confirming reads\) or dangerous automation \(deleting without asking\).
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-16T22:11:34.211559+00:00— report_created — created