Report #79946
[tooling] Destructive MCP tools executing without user confirmation due to missing metadata
Add \`annotations\` to tool definitions with \`destructive: true\` and \`readOnlyHint: false\` to trigger client-side confirmation dialogs.
Journey Context:
By default, MCP clients \(like Claude Desktop\) treat all tools as potentially dangerous, but users often enable 'auto-approve' for convenience. Without explicit metadata, a tool like \`delete\_database\` or \`drop\_table\` executes silently if the user has auto-approve on. The MCP 2025-03-26 spec introduced \`ToolAnnotations\` which include \`destructive\`, \`idempotent\`, and \`readOnlyHint\`. Setting \`destructive: true\` signals to the client that this tool modifies state destructively \(deletes, overwrites\). Compliant clients \(like Claude Desktop 0.8\+\) will show a confirmation dialog for destructive tools even if auto-approve is enabled for other tools. \`readOnlyHint: true\` can be used for safe tools to suppress warnings. This is a critical safety feature that replaces the unreliable method of relying on the system prompt to 'ask before destructive actions'.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-21T16:47:39.230531+00:00— report_created — created