Free tool

MCP Server Config Generator: The File Each Client Loads

It writes the file the client loads, and it checks a config you already have for the mistakes that keep a server from loading.

Client formats checked . No account. The failure this catches is why an MCP server loads in Cursor and not in VS Code.

An example is loaded. Edit it. The form sends the field values so the server can build the same file. It does not ask for a token, and it does not store the request.

Server 1

Your generated MCP config

Claude Desktop

File: claude_desktop_config.json

  • macOS~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows%APPDATA%\Claude\claude_desktop_config.json
  • Linux~/.config/Claude/claude_desktop_config.json

Merge mcpServers into the file if it already has other keys. Replacing the whole file drops them.

{
  "mcpServers": {
    "filesystem": {
      "command": "cmd",
      "args": [
        "/c",
        "npx",
        "-y",
        "@modelcontextprotocol/server-filesystem",
        "C:\\Users\\username\\Desktop"
      ]
    }
  }
}

Claude Desktop has no add command on the pages checked 13 Nov 2026. Use Settings, Developer, Edit Config for a local server.

Notes for this file

  • Quit Claude Desktop completely, then open it again. The local-server guide says the app reads this file on startup.
  • After restart, open the connector list from the chat box and look for the server name. A missing name is a failed start, not a hidden tool.
  • Connection failures land in %APPDATA%\Claude\logs\mcp.log. That server's stderr is mcp-server-<name>.log in the same directory.
  • The directories after the package name are the only trees the filesystem server may touch. The guide says it runs as your user.
  • npx is wrapped as cmd /c. The reference-servers README says to do that on Windows, and to leave uvx unwrapped. The Claude Desktop tutorial's Windows sample uses command npx with no wrapper.
  • Use an absolute directory. The debugging page says the client's working directory may be /, so a relative path does not point where you think.

Convert to other clients

Same servers, each client's documented file. A key that is right for one of these is wrong for another.

  • Claude Code

    <project>\.mcp.json

    {
      "mcpServers": {
        "filesystem": {
          "type": "stdio",
          "command": "cmd",
          "args": [
            "/c",
            "npx",
            "-y",
            "@modelcontextprotocol/server-filesystem",
            "C:\\Users\\username\\Desktop"
          ]
        }
      }
    }
    
  • Cursor

    <project>\.cursor\mcp.json

    {
      "mcpServers": {
        "filesystem": {
          "type": "stdio",
          "command": "cmd",
          "args": [
            "/c",
            "npx",
            "-y",
            "@modelcontextprotocol/server-filesystem",
            "C:\\Users\\username\\Desktop"
          ]
        }
      }
    }
    
  • VS Code editor file

    <project>\.vscode\mcp.json

    {
      "servers": {
        "filesystem": {
          "type": "stdio",
          "command": "cmd",
          "args": [
            "/c",
            "npx",
            "-y",
            "@modelcontextprotocol/server-filesystem",
            "C:\\Users\\username\\Desktop"
          ]
        }
      }
    }
    
  • VS Code Copilot portable file

    <project>\.mcp.json

    {
      "mcpServers": {
        "filesystem": {
          "type": "stdio",
          "command": "cmd",
          "args": [
            "/c",
            "npx",
            "-y",
            "@modelcontextprotocol/server-filesystem",
            "C:\\Users\\username\\Desktop"
          ]
        }
      }
    }
    
  • Windsurf

    %AppData%\devin\mcp_config.json

    {
      "mcpServers": {
        "filesystem": {
          "command": "cmd",
          "args": [
            "/c",
            "npx",
            "-y",
            "@modelcontextprotocol/server-filesystem",
            "C:\\Users\\username\\Desktop"
          ]
        }
      }
    }
    

How do you get from a blank form to a server that is actually listed?

  1. Step 1

    Pick the client, not a generic JSON shape

    Claude Desktop, Claude Code, Cursor, VS Code, and Windsurf do not read the same key. The VS Code control also chooses the editor file or the Copilot portable file. Those two VS Code files disagree with each other.

  2. Step 2

    Add a server you can actually install

    The list is the reference servers from modelcontextprotocol/servers, plus GitHub's official remote URL and Docker image. The retired GitHub npm package is not on the list. A custom row is there when the server is yours.

  3. Step 3

    Name the environment variable. Do not paste the token.

    The form takes the variable name. The file gets the reference that client documents: ${env:NAME}, ${NAME}, or a VS Code input. Claude Desktop's debugging page shows a literal. This tool writes REPLACE_ON_THIS_MACHINE instead, and tells you to fill it on that machine.

  4. Step 4

    Copy the file, the path, and the command

    Claude Code gets claude mcp add --scope project. VS Code's editor file gets code --add-mcp. Cursor, Claude Desktop, Windsurf, and the Copilot portable file had no one-line add command on the pages checked 13 Nov 2026. The path list covers macOS, Windows, and Linux.

  5. Step 5

    Restart, then confirm the server is listed

    Claude Desktop wants a full quit. Claude Code wants a new session, then claude mcp list or /mcp. Cursor wants a restart. VS Code wants MCP: List Servers. Windsurf wants the refresh button. If the name is missing, paste the file into Check a config.

Three configs, three clients

Claude Desktop, filesystem server, Windows

The reference filesystem server, with the Windows npx wrapper from the servers README, and the Desktop path under %APPDATA%.

%APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "filesystem": {
      "command": "cmd",
      "args": [
        "/c",
        "npx",
        "-y",
        "@modelcontextprotocol/server-filesystem",
        "C:\\Users\\username\\Desktop"
      ]
    }
  }
}

VS Code, GitHub's remote server, API key input

Official remote URL, top-level servers, and a password input. The token is not in the file.

<project>/.vscode/mcp.json

{
  "inputs": [
    {
      "type": "promptString",
      "id": "github-personal-access-token",
      "description": "GITHUB_PERSONAL_ACCESS_TOKEN",
      "password": true
    }
  ],
  "servers": {
    "github": {
      "type": "http",
      "url": "https://api.githubcopilot.com/mcp/",
      "headers": {
        "Authorization": "Bearer ${input:github-personal-access-token}"
      }
    }
  }
}

Cursor, filesystem and memory

Two stdio servers in mcpServers, which is the key Cursor reads. The same file pasted into .vscode/mcp.json is the wrong key.

<project>/.cursor/mcp.json

{
  "mcpServers": {
    "filesystem": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-filesystem",
        "/Users/username/Desktop"
      ]
    },
    "memory": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-memory"
      ]
    }
  }
}

What the pages actually said

On 13 Nov 2026 the local-server guide put Claude Desktop's stdio servers under mcpServers, with command npx and -y, and told you to quit the app. Its Windows sample does not use cmd /c. The reference-servers README does. This tool follows the README for a Windows npx command and says so in the notes.

Claude Code's MCP page requires a type when an entry has a url, limits server names to letters, numbers, hyphens, and underscores, and expands ${VAR}. Cursor's MCP page marks stdio type as required and documents ${env:NAME}. Its help page says to restart, and that the project file wins over ~/.cursor/mcp.json. It does not publish a separate Windows path for that global file.

VS Code's configuration reference now tells new Copilot setups to use mcpServers in a workspace .mcp.json or in ~/.copilot/mcp-config.json. It still documents .vscode/mcp.json, with servers and inputs, as the editor-managed file the harness does not read directly. Windsurf's Cascade page uses mcpServers and serverUrl. A detail that was not on these pages is not in the generator.

Other free tools

Next steps

Sources

Last checked . A format claim that is not on one of these pages is not in the generator.

Canonical URL: https://www.aiagentsinfo.com/tools/mcp-config-generator

Questions people ask before they restart the client

The answers cite a page read 13 Nov 2026. They do not promise that a server will connect on your machine.

What is an MCP server config file?

It is the JSON file that tells one client how to start a local MCP server, or which URL to call. Claude Desktop reads claude_desktop_config.json. Claude Code reads .mcp.json for a project. Cursor reads mcp.json. VS Code's editor file is .vscode/mcp.json. Windsurf's Cascade file is mcp_config.json. The keys are not the same.

Why does the same server load in Cursor and not in VS Code?

Cursor's mcp.json uses a top-level mcpServers object. VS Code's editor file, .vscode/mcp.json, uses servers. The Copilot harness, on the configuration reference checked 13 Nov 2026, reads a different portable file that uses mcpServers, and that page says the harness does not read .vscode/mcp.json directly. A file that is correct for Cursor is invisible in the editor file. The note is Why an MCP Server Loads in Cursor and Not in VS Code.

Does this generator call an AI model?

No. The file is built from the client, the transport, and the server fields, using rules taken from the vendor pages linked below. Variation switches the secret style, or the VS Code file, using those same rules. The result is labeled Your generated MCP config. It is not attributed to a named model.

Is a pasted config stored?

No. Generate and Check both send the request to this site so the server can run the same rules. The request is not written to a file, a database, or a log. A value that looks like a token is replaced with [redacted] in the review and in the fixed file. Do not paste a live token anyway.

Where does Claude Desktop keep the file?

The local-server guide, checked 13 Nov 2026, puts claude_desktop_config.json at ~/Library/Application Support/Claude/ on macOS, %APPDATA%\Claude\ on Windows, and ~/.config/Claude/ on Linux. Quit the app completely after you save. A remote server is added in Settings, Connectors, Add custom connector. That guide does not put a url key in the JSON file.

Does npx need cmd /c on Windows?

The reference-servers README says yes: set command to cmd and start args with /c, npx. Leave uvx unwrapped. The Claude Desktop tutorial's Windows sample uses command npx with no wrapper. This tool follows the README when the operating system is Windows, and it says so on the file.

Which GitHub MCP package should the file run?

GitHub's README says the remote server is https://api.githubcopilot.com/mcp/ and the local image is ghcr.io/github/github-mcp-server. It says the npm package @modelcontextprotocol/server-github is no longer supported. This generator does not write that package. Windsurf's sample still shows it. That sample is stale.

Does Windsurf use the same file as Cursor?

No. The English Cascade page, checked 13 Nov 2026, uses mcpServers, like Cursor, but the file is mcp_config.json. Cascade opens ~/.config/devin/mcp_config.json on macOS and Linux, or %AppData%\devin\mcp_config.json on Windows. A remote server uses serverUrl or url. Editor discovery reads a different file under ~/.codeium/windsurf/. Older translated pages disagree about that path, so this tool follows the English page.