MCP destructive tools silently denied without prompt in acceptEdits mode — misleading error message
Resolved 💬 6 comments Opened Apr 14, 2026 by FrankLedo Closed Jun 25, 2026
Summary
When Claude Code is in acceptEdits permission mode, calling a destructive MCP tool (e.g. delete-many on a MongoDB MCP server) that is not in permissions.allow results in a silent denial with no user-facing prompt. The error returned to the model says "User did not confirm the execution" — which is misleading because the user never saw any confirmation dialog.
Steps to Reproduce
- Set
defaultMode: "acceptEdits"in~/.claude/settings.json - Have a destructive MCP tool available (e.g.
mcp__mongo-prod-MC-MetaData__delete-many) that is NOT inpermissions.allow - Ask Claude to invoke that tool
- Observe: no prompt appears, tool is silently denied
Expected Behavior
Either:
- A confirmation prompt is shown to the user (consistent with the mode name "acceptEdits" which implies non-edit tools are prompted)
- OR a clear error message is shown: "Tool not permitted — add
<tool-name>to permissions.allow to enable it"
Actual Behavior
- No prompt is shown to the user
- Claude receives the error:
"User did not confirm the execution of the <tool> tool so the operation was not performed" - This message incorrectly implies the user actively denied the tool, when in fact the system auto-denied it silently
Additional Notes
- Switching to "ask before edits" mode mid-session also does not surface a prompt for these tools
- Adding the tool to
permissions.allowinsettings.jsonmid-session does not take effect until a full session restart (no hot-reload) - The combination of these behaviors makes it impossible to run a legitimately-approved destructive MCP operation within a session without restarting
Environment
- Claude Code VSCode extension
defaultMode: "acceptEdits"- macOS Darwin 25.4.0
This issue has 6 comments on GitHub. Read the full discussion on GitHub ↗