MCP permission wildcards (mcp__*, mcp__server__*) don't auto-allow tools
Resolved 💬 3 comments Opened Mar 15, 2026 by jplimack-ai Closed Mar 19, 2026
Bug
MCP tool permission wildcards documented in https://code.claude.com/docs/en/permissions don't work. Users are still prompted for permission despite having matching wildcard rules in ~/.claude/settings.json.
Patterns tested (all failed to auto-allow)
"*"— global wildcard, matches non-MCP tools but not MCP tools"mcp__*"— documented as catch-all for all MCP servers"mcp__cachebro__*"— documented as matching all tools from a server"mcp__cachebro"— documented as equivalent tomcp__cachebro__*
What works
Only fully qualified tool names auto-allow without prompting:
"mcp__cachebro__cache_status",
"mcp__cachebro__read_file",
"mcp__cachebro__read_files",
"mcp__cachebro__cache_clear"
Steps to reproduce
- Add
"mcp__cachebro__*"(or any wildcard form) topermissions.allowin~/.claude/settings.json - Restart Claude Code
- Use any cachebro MCP tool
- Expected: tool runs without prompting
- Actual: user is prompted for permission
Environment
- macOS (Darwin 25.3.0)
- Claude Code (native install)
- MCP servers configured in
~/.claude.json(user scope) - No
settings.local.jsonor project-level overrides /permissionsUI confirms the wildcard rule is loaded with no conflicting ask/deny rules
Workaround
Enumerate every MCP tool explicitly in the allow list.
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗