How to write Claude Code permission rules that allow a whole MCP server's tools
If Claude Code keeps asking before every MCP tool call, add a server-level rule to permissions.allow in settings.json. mcp__<server>__* allows every tool from that server, and a rule like mcp__github__get_* allows only its tools that start with get_.
{
"permissions": {
"allow": [
"mcp__puppeteer__*",
"mcp__github__get_*"
]
}
}
The server segment can't contain a wildcard. An allow rule such as "mcp__*" or "*" is skipped with a warning and auto-approves nothing. Use "mcp__*" only in a deny rule, to block every MCP tool.
Since 2.1.299, allow rules reach only the server they name exactly. Previously mcp__a also allowed servers named a__b or a_. If a server's name contains a double underscore (__), write its whole name: mcp__<whole server name>__*. If an MCP tool suddenly starts asking for permission again after updating, check this rule first.
Get notified when a new tip lands
Tip alerts only go out in the app. Install it and turn notifications on.