MCP Settings and Policy
These settings decide which MCP servers may run and which ones a project may use.
Administrators use them for allow lists and deny lists.
For example, { "enableAllProjectMcpServers": true } approves every server in a project .mcp.json file.
Most keys also work in your own settings. They live in settings files, ~/.claude.json, .mcp.json, and managed-mcp.json. The switches are disabledMcpjsonServers, enableAllProjectMcpServers, deniedMcpServers, --strict-mcp-config, and disableClaudeAiConnectors.
Settings Keys
Source: Connect Claude Code to Tools via MCP, Control MCP Server Access for Your Organization, Settings Reference, and Channels Reference. The keys with their types are also on MCP and Channels Settings.
| Key | Status | What It Does | How It Works | Where |
|---|---|---|---|---|
enable | Documented | Approves all . servers. | Boolean. Ignored in an untrusted folder when it comes from the checked-in .. | Settings files |
enabled | Documented | Lists approved . servers. | Array of names. Same trust rule. | Settings files |
disabled | Documented | Lists rejected . servers. | Array of names. It blocks in every permission mode and every folder. | Settings files |
managed | Documented | Gives servers to every user. | Object keyed by name. Only http and sse. No command, args, env, or headers, no ${VAR}, and the URL must start with https://. Users cannot remove them. denied still applies. | Managed only |
allowed | Documented | Allowlist of servers users may use. | Array of entries. Each entry has exactly one of server, server (an exact array), or server (a wildcard pattern such as https://). Not set means allow all. | Settings, mainly managed |
denied | Documented | Denylist of servers. | Same entry shapes. It applies in all scopes, also for the organization. | Settings, mainly managed |
allow | Documented | Reads the allowlist from managed settings only. | denied still merges from all sources. Users can still add servers, but only the admin allowlist applies. | Managed only |
allow | Documented | Lets connectors load beside managed-. | Off by default, which keeps the lockdown. | Managed only |
allow | Documented | Lets Claude in Chrome run beside managed-. | Device managed settings only. denied and the organization Chrome setting still block it. | Device managed |
disable | Documented | Turns off the connectors Claude Code fetches. | true in any source wins. It also stops a claudeai- server from --. | Any scope |
channels | Documented | Organization opt-in for channel notifications. | Teams and Enterprise: off by default. Console: on by default unless managed settings exist. | Managed |
allowed | Documented | Organization allowlist of channel plugins. | Replaces the default allowlist. Needs channels. | Managed |
xaa | Undocumented | Stores the IdP connection for XAA. | Object { issuer, client. Written by claude mcp xaa setup. See MCP Authentication. | User settings |
State Keys in ~/.claude.json
These keys sit under projects["<path>"].
| Key | Status | What It Does | How It Works |
|---|---|---|---|
disabled | Documented | A per-project opt-out list. | Covers user, plugin, managed, connector, and default-on built-in servers. A connector uses its display name, such as claude.. |
enabled | Documented | A per-project opt-in list. | Only for built-in servers that default to off, such as computer-. Other entries are ignored. |
has | Documented | The workspace trust flag. | true lets a headers of a project or local server run without the dialog. |
Files and Flags
| Item | Status | What It Does | How It Works |
|---|---|---|---|
. | Documented | Holds project servers. | At the project root. Interactive sessions ask for approval. claude -, the SDK, and cloud sessions load it without a prompt. |
~/. | Documented | Holds local and user servers. | Written by claude mcp add. |
managed- | Documented | A fixed server set from the organization. | Gives the organization exclusive control. Claude Code warns and ignores other sources. Claude in Chrome and connectors stay blocked unless the two allow keys above are set. |
-- | Documented | Loads servers from files or strings. | Space-separated. Scope dynamic. headers runs in the primary working folder. |
-- | Documented | Uses only the -- servers. | Skips the approval prompt for project servers it does not load (2. and later). |
-- | Undocumented | Loads an inline plugin without its MCP servers. | Hidden flag. The SDK form is skip. |
-- | Documented | Registers channel notifications of the listed servers. | Hidden flag. Space-separated names. See MCP Runtime. |
⚠️ -- | Documented | Loads channel servers that are not on the allowlist. | Hidden flag for local channel development. Shows a confirmation dialog. |
-- | Documented | Excludes project settings. | Keeps a project . out. |
Approval Rules
claude mcp listandclaude mcp getread approvals only from files outside the repository until you trust the folder.- In an untrusted folder, these sources apply:
~/.claude/settings.json, managed settings, and--settings. - An untracked
.claude/settings.local.jsonapplies only in a trusted folder. Before2.1.207it always applied. - In
bypassPermissionsmode, Claude Code skips the project prompt whenskipDangerousModePermissionPromptis set in user or managed settings.
Example
Managed settings: lock down MCP
{
"allowManagedMcpServersOnly": true,
"allowedMcpServers": [
{ "serverName": "github" },
{ "serverUrl": "https://*.example.com/*" }
],
"deniedMcpServers": [
{ "serverCommand": ["bunx", "untrusted-server"] }
],
"disableClaudeAiConnectors": true
}
How It Works
Related Pages
- MCP
- Server Configuration
- MCP Commands for
claude mcp reset-project-choices - MCP and Channels Settings