MCP config generator for Claude Desktop, Cursor, and VS Code

Enter a server name, then either a command with arguments (stdio) or a URL with a bearer token (streamable HTTP), and this generator writes the MCP config JSON for your client. It uses the right top-level key for each client, shows the file path for your operating system, and escapes paths and quotes so the file parses the first time.

Runs entirely in your browser. The key you type is never sent anywhere.

How to do it

  1. Pick your client Claude Desktop, Cursor, VS Code, Windsurf, or a generic mcpServers block.
  2. Choose the transport stdio runs a local command, such as npx. Streamable HTTP points at a URL.
  3. Fill in the server details Command and arguments for stdio, or URL and an Authorization header for HTTP. Add environment variables if the server needs them.
  4. Copy the JSON into the config file Merge it into the existing file rather than replacing it, so your other servers stay.
  5. Restart the client Most clients read the file on start. Check the tools list to confirm the server loaded.

Where each client keeps its MCP config

ClientFileTop-level key
Claude Desktop (macOS)~/Library/Application Support/Claude/claude_desktop_config.jsonmcpServers
Claude Desktop (Windows)%APPDATA%\Claude\claude_desktop_config.jsonmcpServers
Cursor (one project).cursor/mcp.json in the projectmcpServers
Cursor (all projects)~/.cursor/mcp.jsonmcpServers
VS Code.vscode/mcp.json in the workspaceservers
Windsurf~/.codeium/windsurf/mcp_config.jsonmcpServers
Claude Code.mcp.json in the project, or claude mcp addmcpServers
Gemini CLI~/.gemini/settings.jsonmcpServers

In Claude Desktop you can also open the file from Settings, then Developer, then Edit Config.

stdio versus streamable HTTP

stdio starts the server as a child process of the client. It suits servers you run with npx or a local binary:

{
  "mcpServers": {
    "social": {
      "command": "npx",
      "args": ["-y", "socialhandoff-mcp"]
    }
  }
}

Streamable HTTP connects to a server that is already running, locally or remotely, and usually sends a bearer token:

{
  "mcpServers": {
    "social": {
      "url": "https://your-server.example/mcp",
      "headers": { "Authorization": "Bearer YOUR_KEY" }
    }
  }
}

VS Code uses servers instead of mcpServers and a type field of stdio or http.

Common mistakes

  • Trailing commas. JSON does not allow them, and one stray comma makes the client ignore the whole file.
  • Replacing the file. Merge new servers into the existing object.
  • Committing keys. A project .cursor/mcp.json or .vscode/mcp.json often ends up in git. Use an environment variable or a user-level file for secrets.
  • Not restarting. Claude Desktop reads the file at launch only.

Connecting SocialHandoff

SocialHandoff runs an MCP server over stdio (npx socialhandoff-mcp) and streamable HTTP at /mcp. The app shows ready-made snippets for Claude Desktop, Cursor, and ChatGPT when you mint an agent key. Each key is scoped to specific networks and permissions, and an agent can never approve its own draft. See Claude Desktop setup, Cursor setup, VS Code setup, or read what an MCP server is.

Frequently asked questions

Where is the Claude Desktop MCP config file?
On macOS it is ~/Library/Application Support/Claude/claude_desktop_config.json. On Windows it is %APPDATA%\Claude\claude_desktop_config.json. You can also open it from Settings, Developer, Edit Config.
Where does Cursor store MCP servers?
In .cursor/mcp.json inside a project for that project only, or ~/.cursor/mcp.json for every project. Both use the mcpServers key.
Why does VS Code ignore my mcpServers block?
VS Code uses a top-level servers key in .vscode/mcp.json, not mcpServers. Rename the key and add a type of stdio or http.
Is it safe to put an API key in an MCP config file?
Only in a user-level file that is not committed to git. Use a scoped key with the fewest permissions the agent needs, and rotate it if the file is shared.

Let your agents post. Keep the final say.

Connect your first agent in minutes. Every draft waits in your inbox until you approve it.

14 days free. No card required.

The hosted version is opening soon

Leave your email and we will send one message when hosted accounts open, with your 14-day trial ready. Want it today? Self-host it free from the repo.

Start free trial