Dokumentacja konfiguracji klientów MCP
Każdy klient MCP odczytuje konfigurację serwerów z innego miejsca, używa własnego klucza, a czasem także własnego formatu. Ta tabela pokazuje, gdzie jej szuka, jakiej struktury oczekuje i czy obsługuje OAuth dla zdalnych serwerów.
| Klient | Plik konfiguracyjny | Klucz główny | Format | Zdalny OAuth | Dodawanie przez CLI |
|---|---|---|---|---|---|
| Claude Desktop | ~/Library/Application Support/Claude/claude_desktop_config.json | mcpServers | json | Tak | Nie |
| Claude Code | .mcp.json | mcpServers | json | Tak | Tak |
| Cursor | .cursor/mcp.json | mcpServers | json | Tak | Nie |
| VS Code (GitHub Copilot) | .vscode/mcp.json (key 'servers') or portable .mcp.json (key 'mcpServers') | servers | json | Tak | Tak |
| Windsurf / Devin Desktop | .devin/mcp_config.json (Devin CLI / Devin Local project scope) | mcpServers | json | Tak | Tak |
| Zed | ~/.config/zed/settings.json | context_servers | json | Tak | Nie |
| OpenAI Codex CLI | .codex/config.toml (trusted projects only) | mcp_servers | toml | Tak | Tak |
| Gemini CLI | .gemini/settings.json | mcpServers | json | Tak | Tak |
| ChatGPT | Tylko ekran ustawień | — | — | Tak | Nie |
| OpenClaw | ~/.openclaw/openclaw.json | mcp.servers | json5 | Tak | Tak |
| Cline | ~/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json | mcpServers | json | Brak dokumentacji | Tak |
| Continue | .continue/mcpServers/<name>.yaml (or drop a Claude/Cursor/Cline-style mcp.json into .continue/mcpServers/) | mcpServers | yaml | Brak dokumentacji | Nie |
| JetBrains AI Assistant | Tylko ekran ustawień | mcpServers | json (pasted in UI) | Brak dokumentacji | Nie |
Różnice, które psują konfigurację
VS Code używa klucza servers
.vscode/mcp.json przechowuje wpisy pod kluczem servers, a nie mcpServers, więc wklejenie bez zmian konfiguracji z Cursor lub Claude nie zadziała. Nowsze, przenośne pliki .mcp.json i ~/.copilot/mcp-config.json używają klucza mcpServers.
Gemini CLI: httpUrl, nie url
Gemini CLI wybiera transport na podstawie nazwy pola. httpUrl oznacza Streamable HTTP, url oznacza starszy transport SSE, a command — stdio. Nowoczesny zdalny serwer wymaga pola httpUrl.
OpenClaw i Cline domyślnie używają SSE
Jeśli pominiesz transport we wpisie zdalnego serwera, oba klienty domyślnie użyją starszego SSE. W OpenClaw ustaw transport na streamable-http, a w Cline — type na streamableHttp.
Claude Code wymaga pola type
W .mcp.json zdalny wpis z url, ale bez type, jest błędny. Dodaj type http obok url; wpisy stdio wymagają type stdio.
Codex używa TOML, osobna tabela dla każdego serwera
Codex nie używa pliku JSON. Każdy serwer ma własną tabelę [mcp_servers.<name>] w config.toml, args to tablica TOML, a env_vars przekazuje sekrety z powłoki według nazwy.
Continue wymaga listy YAML
W Continue mcpServers to lista wpisów, z których każdy zawiera name, a nie mapa, której kluczami są nazwy. Każdy plik bloku musi też mieć na początku name, version i schema: v1.