Claude Code — MCP Configs
- File format
- JSON
- Discovery paths
-
.claude.json,.mcp.json - Syllago install method
- JSON merge
- Symlink support
- No
- Config file
-
.mcp.json - Transports
-
stdio,sse,streamable-http
Features
How each feature converts to syllago's canonical format. See format conversion for what these statuses mean.
Fields
Native frontmatter or config fields this provider exposes. The first column is the provider's own field name; the canonical key column links to syllago's cross-provider equivalent.
| Config key | Conversion | Canonical key | Summary |
|---|---|---|---|
oauth | Translated Conversion type: Translated Actively mapped to the target provider’s equivalent field during conversion. Learn more → | — | OAuth 2.0 for HTTP servers: dynamic client registration or CIMD auto-discovery; pre-configured credentials via --client-id/--client-secret; fixed callback port via --callback-port or oauth.callbackPort; oauth.scopes pins requested scope set (space-separated string per RFC 6749 §3.3; offline_access appended automatically if server advertises it); oauth.authServerMetadataUrl overrides discovery chain; token storage in keychain/credentials file with auto-refresh; MCP_CLIENT_SECRET env var for scripted credential supply. |
transport | Translated Conversion type: Translated Actively mapped to the target provider’s equivalent field during conversion. Learn more → | — | Three transport types: stdio (local process), SSE (deprecated), HTTP/streamable-HTTP (recommended for remote with OAuth support). |
allowedMcpServers | Conversion type: No canonical equivalent — appended as prose in a conversion notes block so nothing is silently lost. Learn more → | — | Enterprise control via managed-mcp.json (exclusive — users cannot add or modify servers) or allowedMcpServers/deniedMcpServers (policy — users can add servers within constraints) keyed by serverName, serverCommand, or serverUrl. |
ENABLE_TOOL_SEARCH | Not portable Conversion type: Not portable Unique to this provider — can’t be carried across providers. Learn more → | — | MCP tool schemas are deferred via ToolSearch; controlled by ENABLE_TOOL_SEARCH (unset=default defer, true=force defer including Vertex/non-first-party, auto=threshold 10%, auto:N=custom %, false=load all upfront); requires Sonnet 4+ or Opus 4+; Haiku models do not support tool search; disabled by default on Vertex AI and when ANTHROPIC_BASE_URL points to non-first-party host. Per-server alwaysLoad: true (CC v2.1.121+) exempts a server from deferral and blocks startup until connected. Per-tool _meta anthropic/alwaysLoad: true does same for individual tools. |
headersHelper | Not portable Conversion type: Not portable Unique to this provider — can’t be carried across providers. Learn more → | — | headersHelper field specifies a shell command that runs at connection time (10-second timeout) and returns JSON headers; enables Kerberos, short-lived tokens, or custom SSO. Sets CLAUDE_CODE_MCP_SERVER_NAME and CLAUDE_CODE_MCP_SERVER_URL env vars. For project/local scope, runs only after workspace trust dialog acceptance. |
MAX_MCP_OUTPUT_TOKENS | Not portable Conversion type: Not portable Unique to this provider — can’t be carried across providers. Learn more → | — | MAX_MCP_OUTPUT_TOKENS (default 25k) caps tool output; warning displayed at 10k tokens. Per-tool _meta anthropic/maxResultSizeChars raises text limit up to 500k chars for that tool; applies independently of MAX_MCP_OUTPUT_TOKENS for text content. Image data still subject to MAX_MCP_OUTPUT_TOKENS. Oversized results spill to file. |
mcpServers | Not portable Conversion type: Not portable Unique to this provider — can’t be carried across providers. Learn more → | — | Plugins bundle MCP servers via .mcp.json or plugin.json mcpServers key; uses ${CLAUDE_PLUGIN_ROOT}/${CLAUDE_PLUGIN_DATA} variables; reload with /reload-plugins during a session. |
Other features
Behaviors, conventions, and capabilities that aren't tied to a single named field — things like path-based activation, discovery rules, and lifecycle behavior.
| Feature | Conversion | Summary |
|---|---|---|
| Dynamic Tool Updates via list_changed Notifications | Translated Conversion type: Translated Actively mapped to the target provider’s equivalent field during conversion. Learn more → | Claude Code honors MCP list_changed notifications, auto-refreshing available tools/prompts/resources without reconnecting. |
enterprise_management | Translated Conversion type: Translated Actively mapped to the target provider’s equivalent field during conversion. Learn more → | mcp_managed_config: managed-mcp.json for exclusive control, or allowedMcpServers/deniedMcpServers in managed settings for policy-based control |
env_var_expansion | Translated Conversion type: Translated Actively mapped to the target provider’s equivalent field during conversion. Learn more → | mcp_env_var_expansion: ${VAR} and ${VAR:-default} syntax in command, args, env, url, and headers fields of .mcp.json |
| Environment Variable Expansion in .mcp.json | Translated Conversion type: Translated Actively mapped to the target provider’s equivalent field during conversion. Learn more → | ${VAR} and ${VAR:-default} expansion in command, args, env, url, and headers fields of .mcp.json. Missing required variables with no default cause a config parse failure. |
oauth_support | Translated Conversion type: Translated Actively mapped to the target provider’s equivalent field during conversion. Learn more → | mcp_oauth_authentication: OAuth 2.0 for HTTP MCP servers; dynamic client registration or CIMD auto-discovery; token storage in macOS keychain or credentials file; auto-refresh; oauth.scopes pins requested scope set; authServerMetadataUrl overrides discovery chain |
resource_referencing | Translated Conversion type: Translated Actively mapped to the target provider’s equivalent field during conversion. Learn more → | mcp_resources: MCP resources accessible via @server:protocol://path syntax; appear in @ autocomplete; auto-fetched when referenced |
| Three Installation Scopes (local, project, user) | Translated Conversion type: Translated Actively mapped to the target provider’s equivalent field during conversion. Learn more → | Three install scopes: local (~/.claude.json per-project, default; was 'project' in older CC versions), project (.mcp.json shareable with team), user (~/.claude.json global across projects; was 'global' in older CC versions). Scope precedence: local > project > user > plugin-provided > claude.ai connectors. The workspace server name is reserved and skipped at load time. |
transport_types | Translated Conversion type: Translated Actively mapped to the target provider’s equivalent field during conversion. Learn more → | mcp_transport_types: stdio (local process), SSE (deprecated, still supported), HTTP/streamable-HTTP (recommended for remote) |
| MCP Elicitation (Mid-Task User Input) | Conversion type: No canonical equivalent — appended as prose in a conversion notes block so nothing is silently lost. Learn more → | MCP servers request mid-task user input via elicitation protocol (form or URL mode); interceptable by Elicitation hook events. |
| MCP Prompts as Slash Commands | Conversion type: No canonical equivalent — appended as prose in a conversion notes block so nothing is silently lost. Learn more → | MCP server prompts surface as /mcp__<servername>__<promptname> slash commands with space-separated arguments. Server and prompt names are normalized; spaces become underscores. |
| MCP Resources via @-Mention | Conversion type: No canonical equivalent — appended as prose in a conversion notes block so nothing is silently lost. Learn more → | MCP resources referenced via @server:protocol://path syntax; appear in @ autocomplete and auto-fetched when included. Resource paths are fuzzy-searchable. |
| Automatic Reconnection with Exponential Backoff | Not portable Conversion type: Not portable Unique to this provider — can’t be carried across providers. Learn more → | HTTP and SSE servers reconnect automatically on disconnect: up to 5 attempts, starting at 1s, doubling each retry; initial connection retried up to 3 times for transient errors (CC v2.1.121+); authentication and not-found errors are not retried. stdio servers are not reconnected. |
| Claude Code as an MCP Server | Not portable Conversion type: Not portable Unique to this provider — can’t be carried across providers. Learn more → | claude mcp serve exposes Claude's internal tools (View, Edit, LS, etc.) over MCP for consumption by other clients. |
| Claude.ai Connector Servers | Not portable Conversion type: Not portable Unique to this provider — can’t be carried across providers. Learn more → | MCP servers configured in Claude.ai are automatically available in Claude Code when logged in with a Claude.ai account. Local server definitions take precedence over claude.ai connectors at the same endpoint. Disable via ENABLE_CLAUDEAI_MCP_SERVERS=false. |
| Import MCP Servers from Claude Desktop | Not portable Conversion type: Not portable Unique to this provider — can’t be carried across providers. Learn more → | claude mcp add-from-claude-desktop interactively imports server configs from Claude Desktop (macOS and WSL only). |
| MCP Channels for Push Messages | Not portable Conversion type: Not portable Unique to this provider — can’t be carried across providers. Learn more → | MCP servers declaring claude/channel capability can push messages into a session (CI results, alerts, webhooks); opted in via --channels flag. |
Sources
| Source |
|---|
| https://code.claude.com/docs/en/mcp.md |