Referencia de configuración de clientes MCP
Cada cliente MCP lee los servidores desde una ubicación distinta, con su propia clave y, a veces, su propio formato. Esta tabla muestra dónde los busca cada uno, qué estructura espera y si admite OAuth para servidores remotos.
| Cliente | Archivo de configuración | Clave de nivel superior | Formato | OAuth remoto | Añadir con 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 desde la pantalla de ajustes | — | — | 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 | Sin documentación | Sí |
| Continue | .continue/mcpServers/<name>.yaml (or drop a Claude/Cursor/Cline-style mcp.json into .continue/mcpServers/) | mcpServers | yaml | Sin documentación | No |
| JetBrains AI Assistant | Solo desde la pantalla de ajustes | mcpServers | json (pasted in UI) | Sin documentación | No |
Diferencias que pueden hacer fallar la configuración
VS Code usa servers
.vscode/mcp.json incluye las entradas en servers, no en mcpServers, así que una configuración de Cursor o Claude pegada sin cambios no se cargará. Los formatos portátiles más recientes .mcp.json y ~/.copilot/mcp-config.json sí usan mcpServers.
Gemini CLI: httpUrl, no url
Gemini CLI determina el transporte por el nombre del campo. httpUrl significa Streamable HTTP, url significa el antiguo transporte SSE y command significa stdio. Un servidor remoto moderno necesita httpUrl.
OpenClaw y Cline usan SSE de forma predeterminada
Si omites el transporte en una entrada remota, ambos recurren al SSE heredado. En OpenClaw, establece transport en streamable-http; en Cline, establece type en streamableHttp.
Claude Code necesita un type
En .mcp.json, una entrada remota con url pero sin type es un error. Añade type http junto a url; las entradas stdio usan type stdio.
Codex usa TOML, una tabla por servidor
Codex no usa archivos JSON. Cada servidor tiene su propia tabla [mcp_servers.<name>] en config.toml; args es un array TOML y env_vars reenvía secretos de tu shell por nombre.
Continue espera una lista YAML
En Continue, mcpServers es una lista de entradas que incluyen name, no un mapa cuyas claves sean los nombres. Además, cada archivo de bloque necesita name, version y schema: v1 al principio.