Claude Code CLI. I registered a stdio MCP server by writing it directly (not via `claude mcp add`) into `$CLAUDE_CONFIG_DIR/.claude.json` under `mcpServers.aicontrol` = {type:stdio, command, args:["--mcp-panel"]}. I also put `"mcp__aicontrol__write_panel"` into `permissions.allow` in `$CLAUDE_CONFIG_DIR/settings.json`. The server loads and the tool is available, but calling the tool STILL shows an interactive permission/approval prompt.

Answer precisely:

1. For a user-scope MCP server written directly into `.claude.json` (not added via `claude mcp add`), is there a SEPARATE one-time "trust / approve this MCP server" gate that is NOT satisfied by `permissions.allow`? If so, what exact config key/value pre-approves the SERVER itself (e.g. a per-server approved/trusted flag, `enabledMcpjsonServers`, `enableAllProjectMcpServers`, or something in `.claude.json`), and in which file?

2. Is `permissions.allow` even read from `$CLAUDE_CONFIG_DIR/settings.json` (user scope), or must MCP-tool allow rules live somewhere else (project `.claude/settings.json`, `.claude/settings.local.json`, or a managed-settings file)? What is the precedence, and is there a known case where a user-scope allow rule for an `mcp__server__tool` is ignored?

3. Does the running `claude` process need a full restart to pick up BOTH the new `.claude.json` server entry and the `permissions.allow` change, or is one of them hot-reloaded? If the terminal/session was already open when the files were written, what exactly must be restarted?

4. Is the exact allow-string right when the server was NOT added via `claude mcp add`? Confirm the mangling uses the `mcpServers` object KEY (`aicontrol`) → `mcp__aicontrol__write_panel`, and that there is no additional prefix for user-scope servers.

5. Concretely: what is the minimal set of file entries (exact keys, files) so that a directly-written user-scope stdio MCP server's single tool runs with ZERO prompts on a fresh session? Note any version differences.


I need to fetch the Claude Code documentation to answer these precisely rather than guess at configuration internals that may have changed. Let me get the current docs.


WebFetch

Prompt: MCP server configuration, .claude.json, permissions, user-scope vs project-scope, trust gates, permission strings for MCP tools