Tham khảo cấu hình MCP client
Mỗi MCP client đọc cấu hình server từ một vị trí riêng, dưới một khóa riêng và đôi khi theo định dạng riêng. Bảng này cho biết từng client tìm cấu hình ở đâu, yêu cầu cấu trúc như thế nào và có hỗ trợ OAuth cho server từ xa hay không.
| Client | File cấu hình | Khóa cấp cao nhất | Định dạng | OAuth từ xa | Thêm qua CLI |
|---|---|---|---|---|---|
| Claude Desktop | ~/Library/Application Support/Claude/claude_desktop_config.json | mcpServers | json | Có | Không |
| Claude Code | .mcp.json | mcpServers | json | Có | Có |
| Cursor | .cursor/mcp.json | mcpServers | json | Có | Không |
| VS Code (GitHub Copilot) | .vscode/mcp.json (key 'servers') or portable .mcp.json (key 'mcpServers') | servers | json | Có | Có |
| Windsurf / Devin Desktop | .devin/mcp_config.json (Devin CLI / Devin Local project scope) | mcpServers | json | Có | Có |
| Zed | ~/.config/zed/settings.json | context_servers | json | Có | Không |
| OpenAI Codex CLI | .codex/config.toml (trusted projects only) | mcp_servers | toml | Có | Có |
| Gemini CLI | .gemini/settings.json | mcpServers | json | Có | Có |
| ChatGPT | Chỉ qua màn hình cài đặt | — | — | Có | Không |
| OpenClaw | ~/.openclaw/openclaw.json | mcp.servers | json5 | Có | Có |
| Cline | ~/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json | mcpServers | json | Chưa có tài liệu | Có |
| Continue | .continue/mcpServers/<name>.yaml (or drop a Claude/Cursor/Cline-style mcp.json into .continue/mcpServers/) | mcpServers | yaml | Chưa có tài liệu | Không |
| JetBrains AI Assistant | Chỉ qua màn hình cài đặt | mcpServers | json (pasted in UI) | Chưa có tài liệu | Không |
Những khác biệt dễ làm hỏng cấu hình
VS Code dùng khóa servers
.vscode/mcp.json liệt kê các mục dưới khóa servers, không phải mcpServers. Vì vậy, cấu hình Cursor hoặc Claude được dán nguyên trạng sẽ không tải được. Các định dạng mới hơn, có thể dùng chung là .mcp.json và ~/.copilot/mcp-config.json, đều dùng mcpServers.
Gemini CLI dùng httpUrl, không phải url
Gemini CLI chọn transport dựa trên tên trường. httpUrl nghĩa là Streamable HTTP, url nghĩa là transport SSE cũ, còn command nghĩa là stdio. Server từ xa hiện đại cần httpUrl.
OpenClaw và Cline mặc định dùng SSE
Nếu không khai báo transport cho mục từ xa, cả hai sẽ chuyển về SSE cũ. Trong OpenClaw, đặt transport thành streamable-http; trong Cline, đặt type thành streamableHttp.
Claude Code yêu cầu có type
Trong .mcp.json, khai báo máy chủ từ xa có url nhưng không có type sẽ gây lỗi. Thêm type http bên cạnh url; các khai báo stdio dùng type stdio.
Codex dùng TOML, mỗi máy chủ một bảng
Codex không dùng tệp JSON. Mỗi máy chủ có bảng [mcp_servers.<name>] riêng trong config.toml, args là một mảng TOML, còn env_vars chuyển tiếp các bí mật từ shell theo tên biến.
Continue yêu cầu danh sách YAML
Trong Continue, mcpServers là danh sách các mục, mỗi mục có name, chứ không phải một map có khóa là tên. Mỗi tệp block cũng cần có name, version và schema: v1 ở đầu tệp.