Riferimento alla configurazione dei client MCP
Ogni client MCP legge i server da una posizione diversa, con una propria chiave e talvolta un formato specifico. Questa tabella mostra dove li cerca, quale struttura si aspetta e se gestisce OAuth per i server remoti.
| Client | File di configurazione | Chiave di primo livello | Formato | OAuth remoto | Aggiunta da CLI |
|---|---|---|---|---|---|
| Claude Desktop | ~/Library/Application Support/Claude/claude_desktop_config.json | mcpServers | json | Sì | No |
| Claude Code | .mcp.json | mcpServers | json | Sì | Sì |
| Cursor | .cursor/mcp.json | mcpServers | json | Sì | No |
| VS Code (GitHub Copilot) | .vscode/mcp.json (key 'servers') or portable .mcp.json (key 'mcpServers') | servers | json | Sì | Sì |
| Windsurf / Devin Desktop | .devin/mcp_config.json (Devin CLI / Devin Local project scope) | mcpServers | json | Sì | Sì |
| Zed | ~/.config/zed/settings.json | context_servers | json | Sì | No |
| OpenAI Codex CLI | .codex/config.toml (trusted projects only) | mcp_servers | toml | Sì | Sì |
| Gemini CLI | .gemini/settings.json | mcpServers | json | Sì | Sì |
| ChatGPT | Solo dalla schermata delle impostazioni | — | — | Sì | No |
| OpenClaw | ~/.openclaw/openclaw.json | mcp.servers | json5 | Sì | Sì |
| Cline | ~/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json | mcpServers | json | Non documentato | Sì |
| Continue | .continue/mcpServers/<name>.yaml (or drop a Claude/Cursor/Cline-style mcp.json into .continue/mcpServers/) | mcpServers | yaml | Non documentato | No |
| JetBrains AI Assistant | Solo dalla schermata delle impostazioni | mcpServers | json (pasted in UI) | Non documentato | No |
Differenze che possono compromettere la configurazione
VS Code usa servers
.vscode/mcp.json elenca le voci sotto servers, non mcpServers, quindi una configurazione per Cursor o Claude incollata senza modifiche non verrà caricata. I nuovi file portabili .mcp.json e ~/.copilot/mcp-config.json usano invece mcpServers.
Gemini CLI: httpUrl, non url
Gemini CLI determina il trasporto in base al nome del campo. httpUrl indica Streamable HTTP, url indica il vecchio trasporto SSE e command indica stdio. Un server remoto moderno richiede httpUrl.
OpenClaw e Cline usano SSE per impostazione predefinita
Se ometti il trasporto da una voce remota, entrambi usano il vecchio protocollo SSE. In OpenClaw imposta transport su streamable-http e in Cline imposta type su streamableHttp.
Claude Code richiede un campo type
In .mcp.json, una voce remota con url ma senza type è un errore. Aggiungi type http accanto a url; le voci stdio richiedono type stdio.
Codex usa TOML, una tabella per server
Codex non usa un file JSON. Ogni server ha una propria tabella [mcp_servers.<name>] in config.toml; args è un array TOML ed env_vars inoltra i secret dalla shell usando i relativi nomi.
Continue richiede un elenco YAML
In Continue, mcpServers è un elenco di voci, ognuna con un name, non una mappa indicizzata per nome. Inoltre, ogni file di blocco deve avere name, version e schema: v1 all'inizio.