<!-- MCP config file locations: Claude, Cursor, VS Code and more · https://www.mcpdelta.com/guides/mcp-clients · updated 2026-10-07 -->

> Where Claude Desktop, Claude Code, Cursor, VS Code, Windsurf, Gemini CLI and Codex keep their MCP config: file path, JSON key, remote servers and tool limits.

[Delta MCP](https://www.mcpdelta.com/) [Guides](https://www.mcpdelta.com/guides)

Guide

# MCP config file locations: Claude, Cursor, VS Code and more

Updated 7 October 20266 min read By the Delta MCP team

The short answer

Most AI apps keep their MCP servers in one JSON file, under the key mcpServers. VS Code uses servers, Zed uses context\_servers and Codex a TOML table. Find your app below, edit its file, then quit and reopen it. Tool limits are rare: VS Code allows 128 per request and Windsurf 100.

## Where is each app’s MCP config file?

Most apps have one file for all your projects and one for a single project. The table gives both, how to open them, and the key your servers go under.

Jump to your app [Claude Code](#claude-code) [Claude Desktop](#claude-desktop) [Cursor](#cursor) [VS Code](#vscode) [Windsurf](#windsurf) [Gemini CLI](#gemini) [Codex](#codex) [LM Studio](#lmstudio) [Cline](#cline) [Roo Code](#roo) [Amazon Q](#amazonq) [Zed](#zed)

Where is each app’s MCP config file?
| App | Config file | Key |
| --- | --- | --- |
| Claude Code `claude mcp add`, or `/mcp` in a session | All projects `~/.claude.json` · One project `.mcp.json` Your own servers and each project’s are both in `~/.claude.json`. A project’s `.mcp.json` is meant to be shared with your team. | `mcpServers` |
| Claude Desktop Settings, Developer, Edit Config | macOS `~/Library/Application Support/Claude/claude_desktop_config.json` · Windows `%APPDATA%\Claude\claude_desktop_config.json` Local servers only. Claude Desktop is offered on macOS and Windows. | `mcpServers` |
| Cursor | All projects `~/.cursor/mcp.json` · One project `.cursor/mcp.json` | `mcpServers` |
| VS Code Command: `MCP: Open User Configuration` | macOS `~/Library/Application Support/Code/User/mcp.json` · Windows `%APPDATA%\Code\User\mcp.json` · Linux `~/.config/Code/User/mcp.json` · One project `.vscode/mcp.json` | `servers` VS Code’s own format. A portable `.mcp.json` at the project root uses `mcpServers`. |
| Windsurf Windsurf’s documentation now lives under Devin Desktop | macOS · Linux `~/.config/devin/mcp_config.json` · Windows `%APPDATA%\devin\mcp_config.json` · `~/.codeium/windsurf/mcp_config.json` The first path is the current one, under Devin Desktop. Earlier Windsurf versions use the last. | `mcpServers` |
| Gemini CLI | All projects `~/.gemini/settings.json` · One project `.gemini/settings.json` | `mcpServers` |
| Codex `codex mcp add <name> -- <command>` | All projects `~/.codex/config.toml` · One project `.codex/config.toml` The project file only applies to trusted projects. | `[mcp_servers.<name>]` A TOML table per server. |
| LM Studio Program tab, Install, Edit mcp.json | `~/.lmstudio/mcp.json` | `mcpServers` |
| Cline MCP Servers icon, Configure tab, Configure MCP Servers | `~/.cline/data/settings/cline_mcp_settings.json` · `…/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json` Set `CLINE_MCP_SETTINGS_PATH` to move the file. Inside VS Code it lives in the user settings folder. | `mcpServers` |
| Roo Code MCP settings, Edit Global MCP or Edit Project MCP | All projects `…/globalStorage/rooveterinaryinc.roo-cline/settings/mcp_settings.json` · One project `.roo/mcp.json` The project file takes precedence over the global one. | `mcpServers` |
| Amazon Q Chat panel, tools icon | All projects `~/.aws/amazonq/default.json` · One project `.amazonq/default.json` The panel writes `default.json`. The older `~/.aws/amazonq/mcp.json` and `.amazonq/mcp.json` are still read by default. | `mcpServers` In the older `mcp.json`. |
| Zed Command: `zed: open settings file` | macOS · Linux `~/.config/zed/settings.json` · Windows `%APPDATA%\Zed\settings.json` | `context_servers` |

`~` is your home folder: `C:\Users\you` on Windows.

## How do you set up a remote MCP server in each app?

A remote (HTTP) server needs a URL, but every app names the fields differently. The same entry does not paste from one app to another.

How do you set up a remote MCP server in each app?
| App | Fields | Good to know |
| --- | --- | --- |
| Claude Code | `"type": "http"` · `"url"` |  |
| Claude Desktop | — | Not written in this file. Add it as a custom connector under Connectors in the app’s settings. |
| Cursor | `"url"` · `"headers"` optional |  |
| VS Code | `"type": "http"` · `"url"` |  |
| Windsurf | `"serverUrl"` · `"url"` · `"headers"` optional | Either name works for the address. |
| Gemini CLI | `"httpUrl"` · `"url"` · `"headers"` optional | `httpUrl` is streamable HTTP, `url` is SSE. |
| Codex | `url` · `bearer_token_env_var` optional · `http_headers` optional | Written in the server’s TOML table. |
| LM Studio | `"url"` · `"headers"` optional |  |
| Cline | `"type": "streamableHttp"` · `"url"` · `"headers"` optional | Use `sse` for the older transport. |
| Roo Code | `"type": "streamable-http"` · `"url"` · `"headers"` optional | Use `sse` for the older transport. |
| Amazon Q | — | Set in the MCP panel: choose `http` as the transport, then the URL and optional headers. |
| Zed | `"url"` · `"headers"` optional |  |

## What is the MCP tool limit in each app?

Tool limits are rare. Two apps state one. The others deal with long tool lists in their own way.

What is the MCP tool limit in each app?
| App | Limit | What it does about long tool lists |
| --- | --- | --- |
| VS Code | **128 tools per request** | Beyond it, VS Code reports `Cannot have more than 128 tools per request`. Deselect tools or whole servers in the tools picker, or set `github.copilot.chat.virtualTools.threshold` so VS Code groups similar tools. |
| Windsurf | **100 tools at a time** | Switch tools off one by one with `disabledTools` in the server’s entry. |
| Cursor | None stated | Often cited at 40 tools. Cursor’s documentation gives no limit, and its January 2026 post describes loading MCP tool descriptions on demand. |
| Claude Code | None stated | Tool Search is on by default: only tool names enter your context until a tool is used. |
| Codex | None stated | Each server takes `enabled_tools` and `disabled_tools` lists. |
| Amazon Q | None stated | Each tool is set to Ask, Always allow or Deny. |

Claude Desktop, Gemini CLI, LM Studio, Cline, Roo Code and Zed state no tool limit.

A limit is about how many tools fit. The cost of those tools in tokens is a different question, and the guide below answers it. [Why MCP burns your tokens](https://www.mcpdelta.com/guides/reduce-mcp-token-usage)

## Why does your MCP server not show up?

Work down this list. It follows the MCP project’s troubleshooting guide, written for Claude Desktop. The first four steps apply to any app.

1.  **Quit the app completely, then reopen it**
    
    Claude Desktop’s guide says to quit it completely and start it again after you edit its file. Other apps may reload on their own: reopen yours if the server does not appear.
    
2.  **Check the JSON and the key**
    
    A syntax error, such as a missing quote or a stray comma, can stop the app from reading the file. Then check the key: `mcpServers` in most apps, `servers` in VS Code, `context_servers` in Zed.
    
3.  **Use absolute paths**
    
    The paths in `args` must be absolute, not relative.
    
4.  **Run the command yourself**
    
    Paste the server’s command and arguments into a terminal. If it fails there, the app cannot start it either.
    
5.  **Read the logs**
    
    Claude Desktop writes `mcp.log` and one `mcp-server-NAME.log` per server, in `~/Library/Logs/Claude` on macOS and `%APPDATA%\Claude\logs` on Windows.
    
6.  **On Windows, check APPDATA**
    
    If a log shows `${APPDATA}` inside a path, add `APPDATA` to the server’s `env` with its full value, such as `C:\Users\you\AppData\Roaming\`.
    

## Do you have to edit these files by hand?

Not to see them all in one place. Delta MCP reads the MCP settings of twelve AI apps, the ones in the tables above, without changing anything, and lists every server it finds.

To use those servers through Delta MCP, it switches an app over by adding one entry, named `mcpdelta`. It turns off the direct entry of each server it moves and keeps the original, to put back as it was. Ten apps are switched over for you; Codex and Zed are set up by hand for now. Before each change it saves a dated copy of the file.

[Supported apps, in detail](https://www.mcpdelta.com/docs/supported-apps)

### Try Delta MCP on your own tasks

Free, two minutes to set up, and you can put everything back in one click.

[Download for Mac](https://www.mcpdelta.com/download)

Free · No account · Put everything back in one click

## Questions

### Where is claude_desktop_config.json?

On macOS it is `~/Library/Application Support/Claude/claude_desktop_config.json`, and on Windows `%APPDATA%\Claude\claude_desktop_config.json`. The quickest way is Settings, Developer, Edit Config, which creates the file if it does not exist. Claude Desktop is offered on macOS and Windows.

### Where is Cursor’s mcp.json?

`~/.cursor/mcp.json` holds the servers for all your projects, and `.cursor/mcp.json` inside a project holds that project’s. Both use the `mcpServers` key.

### Where is VS Code’s mcp.json?

A project’s is `.vscode/mcp.json`. Your own is in your user profile folder: run `MCP: Open User Configuration` to open it. VS Code writes servers under `servers`, not `mcpServers`.

### What is the MCP tool limit in VS Code?

A chat request can have at most 128 tools enabled at a time, and VS Code reports `Cannot have more than 128 tools per request` when you go over. Deselect tools or servers in the tools picker, or set `github.copilot.chat.virtualTools.threshold` so VS Code groups similar tools.

### Does Cursor have an MCP tool limit?

Its documentation states none; the figure often quoted is 40 tools. In January 2026 Cursor described loading MCP tool descriptions on demand.

### Why does my MCP config not work in another app?

The key and the remote-server fields differ. Most apps use `mcpServers`; VS Code uses `servers`, Zed `context_servers` and Codex a TOML table. A remote server is `url` in Cursor, `serverUrl` or `url` in Windsurf, `httpUrl` or `url` in Gemini CLI, and `type` plus `url` in Claude Code and VS Code.

### Can Claude Desktop use remote MCP servers from its config file?

No. Remote servers are added as custom connectors in the app’s settings. Servers in `claude_desktop_config.json` are a separate mechanism, and they are not available in Cowork or claude.ai.

### Where does Claude Code store MCP servers?

Your own servers, and each project’s, are in `~/.claude.json`. A project’s `.mcp.json` at its root is meant to be shared with your team. Add a server with `claude mcp add`, or with `/mcp` in a session. Both files use the `mcpServers` key.

### Where is Windsurf’s mcp_config.json?

Windsurf’s documentation now sits under Devin Desktop and gives `~/.config/devin/mcp_config.json` on macOS and Linux, and `%APPDATA%\devin\mcp_config.json` on Windows. Earlier Windsurf versions use `~/.codeium/windsurf/mcp_config.json`. Servers go under `mcpServers`, and Windsurf allows 100 tools at a time.

## Sources

1.  [**Claude Code**, Connect Claude Code to tools via MCP (documentation)](https://code.claude.com/docs/en/mcp) The ~/.claude.json and .mcp.json files, the mcpServers key, the http type, Tool Search on by default.
2.  [**Model Context Protocol**, Connect to local MCP servers](https://modelcontextprotocol.io/docs/develop/connect-local-servers) Claude Desktop’s file paths, Edit Config, the restart, the troubleshooting steps and the log folders.
3.  [**Claude Help Center**, Get started with custom connectors using remote MCP](https://support.claude.com/en/articles/11175166-get-started-with-custom-connectors-using-remote-mcp) Remote servers are custom connectors, separate from claude\_desktop\_config.json.
4.  [**Cursor**, Model Context Protocol (documentation)](https://cursor.com/docs/mcp) The global and project mcp.json files, mcpServers, url and headers; no tool limit stated.
5.  [**Cursor**, Dynamic context discovery](https://cursor.com/blog/dynamic-context-discovery) (6 Jan 2026) MCP tool descriptions loaded on demand.
6.  [**Cursor forum**, About limitation of the number of MCP tools](https://forum.cursor.com/t/about-limitation-of-the-number-of-mcp-tools/107844) A user report of a 40-tool limit.
7.  [**VS Code**, Add and manage MCP servers in VS Code (documentation)](https://code.visualstudio.com/docs/agent-customization/mcp-servers) The workspace and user mcp.json files, the servers key, the portable .mcp.json, the http type.
8.  [**VS Code**, Use tools with agents (documentation)](https://code.visualstudio.com/docs/agents/run/tools) The 128-tool limit and its error, the tools picker, virtual tools.
9.  [**Windsurf**, Cascade MCP Configuration (documentation, now on Devin Desktop’s site)](https://docs.devin.ai/desktop/cascade/mcp) The config path, mcpServers, serverUrl or url, the 100-tool limit, disabledTools.
10.  [**Gemini CLI**, MCP servers with Gemini CLI (documentation)](https://github.com/google-gemini/gemini-cli/blob/main/docs/tools/mcp-server.md) The settings.json files, mcpServers, httpUrl and url.
11.  [**OpenAI Codex**, Model Context Protocol (documentation)](https://learn.chatgpt.com/docs/extend/mcp) config.toml, the mcp\_servers table, url, enabled\_tools and disabled\_tools, codex mcp add.
12.  [**LM Studio**, Use MCP Servers (documentation)](https://lmstudio.ai/docs/app/mcp) Edit mcp.json, mcpServers, url and headers.
13.  [**Cline**, MCP (documentation)](https://docs.cline.bot/mcp/mcp-overview) cline\_mcp\_settings.json and its folder, the Configure tab, streamableHttp.
14.  [**Roo Code**, Using MCP in Roo Code (documentation)](https://roocodeinc.github.io/Roo-Code/features/mcp/using-mcp-in-roo/) The global mcp\_settings.json and the project .roo/mcp.json, streamable-http.
15.  [**AWS**, MCP configuration for Q Developer in the IDE](https://docs.aws.amazon.com/amazonq/latest/qdeveloper-ug/mcp-ide.html) default.json and the older mcp.json, the http transport, tool permissions.
16.  [**Zed**, Model Context Protocol (documentation)](https://zed.dev/docs/ai/mcp) The settings.json paths, context\_servers, url and headers.
17.  [**Delta MCP**, Supported AI apps (documentation)](https://www.mcpdelta.com/docs/supported-apps) The twelve apps Delta MCP recognizes, the files it reads, and how it switches each one over.

## Keep reading

-   [How to reduce MCP token usage, and why MCP burns tokens How to reduce MCP token usage: measure it with /context, see the two costs (tool menu and round trips), and compare every fix, Tool Search included.](https://www.mcpdelta.com/guides/reduce-mcp-token-usage)
-   [MCP vs CLI for AI agents: where the token bill comes from MCP or CLI for your AI agent? What each costs in tokens, what the measurements show, when a CLI wins, when MCP does, and where code beats both.](https://www.mcpdelta.com/guides/mcp-vs-cli)

![](https://www.mcpdelta.com/brand/app-icon.svg)

## Try Delta MCP on your own tasks

Free, two minutes to set up, and you can put everything back in one click.

[Download for Mac](https://www.mcpdelta.com/download) Also for [Windows](https://www.mcpdelta.com/download#windows) [Linux](https://www.mcpdelta.com/download#linux)

Free · No account · Apple chip or Intel
