MCP plugin tools skip permission prompt when not in allow or deny list
Status Open
Maintainer reply None cached
Activity 0 comments · opened Jul 22, 2026
Bug
MCP plugin tools that are not listed in settings.json's permissions.allow or permissions.deny execute without a permission prompt. The expected behavior is a permission prompt (the "ask-first" default for tools in neither list).
The deny list works correctly — denied tools are filtered out of the deferred tool set and the model never sees them. But the three-state permission model (allow / deny / ask-first) collapses to two states for MCP plugin tools: deny or auto-allow.
Repro
- Install an MCP plugin (e.g.
slack@claude-plugins-official) - In
settings.json, do not add any of its read tools to thepermissions.allowlist - Start a session. The plugin tools appear as deferred tools
- Load a tool via
ToolSearchand call it - Actual: tool executes without a permission prompt
- Expected: permission prompt shown (tool is in neither allow nor deny)
Minimal settings excerpt
{
"permissions": {
"allow": [
// ... no Slack tools listed ...
],
"deny": [
"mcp__plugin_slack_slack__slack_send_message"
// ... other write tools denied ...
]
},
"enabledPlugins": {
"slack@claude-plugins-official": true
}
}
Calling mcp__plugin_slack_slack__slack_search_users (not in allow or deny) executes without prompting. The permission_prompt notification hook does not fire, and the audit log has no entry for the call.
Impact
- Users cannot achieve "ask-first" for MCP plugin tools — the only options are auto-allow (not denied) or auto-deny (in deny list)
- Removing a tool from deny to make it ask-first (e.g.
slack_send_message_draft) silently auto-allows it instead permissions.allowentries for MCP plugin tools are redundant (all non-denied tools are already auto-allowed)- Breaks the security model for users restricting plugin tool access
Environment
- Claude Code CLI (latest)
- macOS 15 (Darwin 25.5.0)
- Plugins:
slack@claude-plugins-official,notion@claude-plugins-official