Claude Code MCP prompts again? Check permission and server scope
If Claude Code asks again before using an MCP tool in a new session, first identify which approval is being requested: permission to call a tool, approval of a project MCP server, or a restriction from another rule or policy. Current Anthropic docs put user permission rules in settings files and describe server approvals separately. Issue #26765 is a closed duplicate reporting Claude Code 2.1.47; it is one historical report, not evidence of a current general bug. Documentation checked November 3, 2026.
Is this an MCP server approval or a tool permission prompt?
Check the exact prompt and tool name. A project server declared in .mcp.json can remain pending until you trust the workspace and approve it. The CLI exposes that state through claude mcp list or claude mcp get <server>; a pending project server is shown as Pending approval. Approve only a server you recognize and intend to use.
A permission rule for an MCP tool is a different control. Anthropic’s current permission syntax uses the complete tool name such as mcp__github__search_repositories, or a server-scoped rule such as mcp__github__*. A server may connect successfully while a specific tool still prompts.
Which files should contain cross-session permission rules?
Current settings documentation lists ~/.claude/settings.json for your personal rules across projects, .claude/settings.json for shared project rules, and .claude/settings.local.json for one user in one project. The separate ~/.claude.json file stores MCP server configuration, project state, account details, and global config keys; Anthropic says Claude Code writes it for itself and you do not need to edit it. Issue #26765 reports a permission list in that file, but the current docs describe permission rules in settings JSON, so verify the supported location for your installed version before copying that older layout.
For a narrow user rule, add one known tool to ~/.claude/settings.json and preserve any existing JSON:
{
"permissions": {
"allow": [
"mcp__github__search_repositories"
]
}
}
Replace the example with the exact tool name shown by your MCP server. The wildcard form mcp__github__* allows all tools from that named server, so prefer the single-tool rule unless the broader access is intended. Do not paste tokens or other credentials into settings examples or issue reports.
How do I confirm the right settings loaded?
- In the session that prompts, run
/statusand inspect the Setting sources line. It confirms which settings files loaded, but does not show which file supplied an individual rule. - Run
claude doctorto see settings entries Claude Code rejected, including malformed permission rules. Check its output for a typo or invalid JSON rather than assuming a saved entry was accepted. - Check whether the project folder is trusted. Current docs say project
permissions.allowrules wait for folder trust; a shared or local project rule may not apply before that step. - Review every applicable settings scope for a matching
askordenyrule and check whether organization-managed rules restrict user rules. Permission lists generally merge; a saved allow does not automatically cancel an ask or deny rule. - Check the exact MCP tool name and rule syntax. The server segment in an allow wildcard must name one configured server; a generic
mcp__*allow rule is not accepted as an auto-approval pattern. - Start a fresh session and repeat one harmless tool call. Record the Claude Code version, prompt text, server scope, tool name, and settings sources. Compare only one changed setting at a time.
Can an allow rule still leave a prompt?
Yes, depending on what is prompting. Anthropic documents that MCP tools marked requiresUserInteraction still prompt even if allowed. Organization policy can also constrain rules, and a project server may still need server approval before its tools are available. Diagnose these cases separately; do not disable permission checks or broaden all MCP access just to remove a prompt.
What does issue #26765 establish?
The report says a user on Claude Code 2.1.47 saw repeated MCP tool permission prompts despite entries in ~/.claude.json. GitHub marks it closed as a duplicate. That establishes one reported symptom and version, not the cause, a confirmed regression, or current behavior. The checks above follow current Anthropic documentation and do not claim to reproduce or resolve that report on every version.
How should I report a repeatable case?
Record the version from claude --version, whether the server is local, project, or user scope, the exact tool name, the wording of the prompt, and the settings-source names shown in /status. Include only a redacted minimal rule and relevant claude doctor warnings. Remove access tokens, private endpoints, customer data, and full configuration files before posting.
This is a documentation-based diagnostic, not a runtime test of all Claude Code releases, MCP servers, or managed policies. For a browser cloud session, see why MCP allow rules may not carry over to Claude Code on the web. Related: map Claude Code MCP configuration scopes, choose Claude Code permission rule scopes, and troubleshoot MCP proxy connections.
Sources and scope
- Anthropic settings files and precedence documents settings locations,
/status,claude doctor, and permission-rule merging. - Anthropic permission configuration documents MCP tool rule syntax and cases where prompts remain.
- Anthropic MCP documentation documents server scopes, pending project approval, and MCP status commands.
- Claude Code issue #26765 is a closed duplicate with one report against version 2.1.47; it is not treated as current product guidance.
Methodology and limitations
This diagnostic follows Anthropic’s settings, permissions, and MCP documentation checked November 3, 2026. Claude Code issue #26765 reports one user’s experience on version 2.1.47 and is closed as a duplicate; it is included as a qualitative historical symptom only. The page does not claim a current defect, root cause, or cross-version reproduction.
Affiliate placeholder {{AFF_TOOLNAME}} — referral link not configured.