---
title: "MCP client config: files and keys for 13 apps · DotsAgent"
description: "Where 13 MCP clients keep their servers, from Claude Code to Zed: config paths, top-level keys, formats, remote OAuth support and the quirks that break setups."
url: https://dotsagent.io/mcp/clients
---

Connect · 13 clients

# MCP client config reference

Every MCP client reads servers from its own place, under its own key and sometimes in its own format. This table shows where each one looks, what shape it wants and whether it handles OAuth for remote servers.

| Client | Config file | Top-level key | Format | Remote OAuth | CLI add |
| --- | --- | --- | --- | --- | --- |
| [Claude Desktop](https://dotsagent.io/mcp/clients/claude-desktop)Anthropic | `~/Library/Application Support/Claude/claude_desktop_config.json` | `mcpServers` | json | — | — |
| [Claude Code](https://dotsagent.io/mcp/clients/claude-code)Anthropic | `.mcp.json` | `mcpServers` | json | — | — |
| [Cursor](https://dotsagent.io/mcp/clients/cursor)Anysphere | `.cursor/mcp.json` | `mcpServers` | json | — | — |
| [VS Code (GitHub Copilot)](https://dotsagent.io/mcp/clients/vscode-copilot)Microsoft | `.vscode/mcp.json (key 'servers') or portable .mcp.json (key 'mcpServers')` | `servers` | json | — | — |
| [Windsurf / Devin Desktop](https://dotsagent.io/mcp/clients/windsurf)Cognition | `.devin/mcp_config.json (Devin CLI / Devin Local project scope)` | `mcpServers` | json | — | — |
| [Zed](https://dotsagent.io/mcp/clients/zed)Zed Industries | `~/.config/zed/settings.json` | `context_servers` | json | — | — |
| [OpenAI Codex CLI](https://dotsagent.io/mcp/clients/codex-cli)OpenAI | `.codex/config.toml (trusted projects only)` | `mcp_servers` | toml | — | — |
| [Gemini CLI](https://dotsagent.io/mcp/clients/gemini-cli)Google | `.gemini/settings.json` | `mcpServers` | json | — | — |
| [ChatGPT](https://dotsagent.io/mcp/clients/chatgpt)OpenAI | Settings screen only | — | — | — | — |
| [OpenClaw](https://dotsagent.io/mcp/clients/openclaw)OpenClaw | `~/.openclaw/openclaw.json` | `mcp.servers` | json5 | — | — |
| [Cline](https://dotsagent.io/mcp/clients/cline)Cline Bot Inc. | `~/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json` | `mcpServers` | json | — | — |
| [Continue](https://dotsagent.io/mcp/clients/continue)Continue Dev | `.continue/mcpServers/<name>.yaml (or drop a Claude/Cursor/Cline-style mcp.json into .continue/mcpServers/)` | `mcpServers` | yaml | — | — |
| [JetBrains AI Assistant](https://dotsagent.io/mcp/clients/jetbrains-ai)JetBrains | Settings screen only | `mcpServers` | json (pasted in UI) | — | — |

## Differences that break setups

### VS Code uses servers

.vscode/mcp.json lists entries under servers, not mcpServers, so a Cursor or Claude config pasted in unchanged won't load. The newer portable .mcp.json and ~/.copilot/mcp-config.json do use mcpServers.

### Gemini CLI: httpUrl, not url

Gemini CLI picks the transport from the field name. httpUrl means Streamable HTTP, url means the old SSE transport, and command means stdio. A modern remote server needs httpUrl.

### OpenClaw and Cline default to SSE

Leave out the transport on a remote entry and both fall back to legacy SSE. Set transport to streamable-http in OpenClaw and type to streamableHttp in Cline.

### Claude Code wants a type

In .mcp.json, a remote entry with a url but no type is an error. Add type http next to the url; stdio entries take type stdio.

### Codex is TOML, one table per server

Codex has no JSON file. Each server is its own [mcp_servers.<name>] table in config.toml, args is a TOML array, and env_vars forwards secrets from your shell by name.

### Continue expects a YAML list

In Continue, mcpServers is a list of entries that each carry a name, not a map keyed by name. Every block file also needs name, version and schema: v1 at the top.

[Generate a config →](https://dotsagent.io/mcp/config)

Independent reference for people who build AI agents. Not affiliated with any vendor named here.

© 2026 DotsAgent · Facts checked October 1, 2026
