Skip to content
ansezz.

▸ Free tool

MCP Config Generator.

Build the MCP server config for Claude Desktop, Claude Code, Cursor or VS Code, or paste a config you already have and see what is wrong with it.

▸ Formats checked October 4, 2026

Every client format here was checked against its official docs. Runs in your browser. Env values and headers never go into the share link.

1. Generate a config.

Letters, numbers, hyphens and underscores.

Transport

Only the program, like npx, node or uvx.

Not saved in the share link.

Config file

        

    Source: official docs

    Examples.

    2. Validate a config.

    Checked live in your browser. Never saved in the URL.

    Paste a config to check it.

      The formats, side by side

      All four clients store servers as a JSON object keyed by server name. The differences are small, but each one breaks a server silently.

      • Claude Desktop: mcpServers with command, args and env. Local servers only. Use absolute paths. Add remote servers as custom connectors in the app settings.
      • Claude Code: mcpServers in .mcp.json. Remote servers need "type": "http" (or sse, ws) next to url and headers. Expands ${VAR}. You can also use claude mcp add.
      • Cursor: mcpServers in .cursor/mcp.json. Local servers use "type": "stdio". Remote servers use url and headers. Expands ${env:VAR}.
      • VS Code: servers in .vscode/mcp.json, with "type" set to stdio, http or sse. Secrets can come from ${input:id} prompts.

      Windsurf is not included yet. Its MCP docs were changing when this page was checked, and I only list formats I could confirm.

      What the validator checks

      JSON syntax with line and column (trailing commas, comments, single quotes), the right top-level key for the client, a missing command or url, both at once, a command with arguments stuck inside it, args that are not strings, relative paths in Claude Desktop, npx without -y, remote servers without the type the client needs, plain http:// to a remote host, the wrong variable syntax for the client, and values that look like real tokens.

      Sources, checked October 4, 2026:

      Questions, answered

      Where is the MCP config file for each client?

      Claude Desktop reads claude_desktop_config.json in ~/Library/Application Support/Claude/ on macOS and %APPDATA%\Claude\ on Windows. Claude Code reads .mcp.json in your project root. Cursor reads .cursor/mcp.json in the project or ~/.cursor/mcp.json for every project. VS Code reads .vscode/mcp.json in the workspace. Restart the app or reload the window after you change the file.

      Why does VS Code use servers and not mcpServers?

      VS Code chose its own format. Its .vscode/mcp.json has a top-level "servers" object, plus an optional "inputs" list for prompting the user for secrets. Claude Desktop, Claude Code and Cursor all use "mcpServers". Copying a config from one to the other without changing that key is the most common reason a server does not show up.

      What is the difference between a stdio and an HTTP MCP server?

      A stdio server is a program on your computer. The client starts it with a command and arguments and talks to it over standard input and output. An HTTP server runs somewhere else and the client connects to its URL, often with an Authorization header. Local tools like a filesystem server use stdio. Hosted services and your own deployed app use HTTP.

      How do I keep API keys out of the config file?

      Reference an environment variable instead of pasting the key. Claude Code expands ${VAR} and ${VAR:-default}. Cursor expands ${env:VAR}. VS Code can prompt for a value with ${input:id} and store it securely. Claude Desktop passes values as written, so keep that file out of version control. The validator warns when a value looks like a real token.

      Why is my MCP server not showing up?

      Check these in order: the JSON is valid (no trailing commas or comments), the top-level key matches the client, "command" holds only the program name with each argument in "args", paths are absolute, npx has "-y", and a remote server has the "type" its client needs. Paste the file into the validator above and it checks all of these.

      Are these formats current, and is my config sent anywhere?

      Each format was checked against the client's official documentation on October 4, 2026. Clients change their formats, so the page links to each source. Nothing is sent anywhere. The generator and validator run in your browser. The share link only stores the client, name, transport, command, args and URL, never env values or headers.

      ▸ Last verified:

      Need this in production?

      Shipping AI features? I build RAG pipelines, MCP servers and agents that hold up in production.

      AI & MCP Integration

      Also related: Laravel SaaS MVP .

      Keep reading