MCP Server Config Generator
One MCP server, the right config file for every AI app — keys kept out of the JSON.
MCP server
Environment variables
Headers
Config for your app
File
Merge with your current file
claude_desktop_config.json
About the MCP Server Config Generator
Add Model Context Protocol (MCP) servers to your AI apps without editing JSON by hand. Describe a local server — the command, its arguments and environment variables — or a remote one with its URL and headers, or simply paste the install snippet from the server’s README: its JSON block, its npx, uvx or docker command, a claude mcp add or gemini mcp add line, or its URL.
The page writes the exact config each app documents — claude_desktop_config.json, Cursor’s mcp.json, VS Code’s .vscode/mcp.json, Claude Code’s .mcp.json, Windsurf’s (Devin Desktop’s) mcp_config.json and Gemini CLI’s settings.json — with the file’s location on each operating system and the command-line alternative. Paste your current file to merge the new server in without losing anything. API keys and tokens are recognised and moved to environment variables or VS Code’s password prompts, so the files you save or commit hold no secrets.
How to use it
- Choose Paste a snippet and paste the server’s install instructions, then press Read snippet — or choose Local server or Remote server and fill in the form.
- Check the name, the command and arguments (one per line) or the URL, and the environment variables or headers. Values that look like keys are marked Secret; tick or untick as needed.
- Pick your app. The config appears with the path of the file on macOS, Windows and Linux.
- If the file already exists, open Merge with your current file and paste it: the new server is added and every other entry is kept.
- Copy or download the file and save it in the place shown (or run the command shown), set the environment variables the page lists, and restart the app.
Examples
npx -y @modelcontextprotocol/server-filesystem ~/Documents
"filesystem": { "command": "npx", "args": ["-y", "@modelcontextprotocol/server-filesystem", "~/Documents"] }The name comes from the package; change it if you like.
"env": { "GITHUB_PERSONAL_ACCESS_TOKEN": "<YOUR_TOKEN>" }Cursor: "${env:GITHUB_PERSONAL_ACCESS_TOKEN}" · Claude Code: "${GITHUB_PERSONAL_ACCESS_TOKEN}" · VS Code: "${input:github-personal-access-token}" with a password prompthttps://mcp.example.com/mcp with an Authorization header
Add it under Settings → Connectors → Add custom connector, or use the generated mcp-remote entry that passes the header from an environment variable.
Common uses
- Installing an MCP server from its README in whichever AI app you use.
- Moving your MCP servers from Claude Desktop to Cursor, VS Code, Claude Code, Windsurf or Gemini CLI.
- Sharing a project’s MCP setup through version control without committing keys.
- Fixing a config file that an app refuses to load: the page points at the JSON error.
Where each app keeps its MCP servers
- Claude Desktop:
~/Library/Application Support/Claude/claude_desktop_config.jsonon macOS,%APPDATA%\Claude\claude_desktop_config.jsonon Windows (Settings → Developer → Edit Config); restart the app after saving (MCP docs). - Cursor:
.cursor/mcp.jsonin a project or~/.cursor/mcp.jsonfor every project (Cursor docs). - VS Code:
.vscode/mcp.jsonin a workspace, or your profile’s file through MCP: Open User Configuration (VS Code docs). - Claude Code:
.mcp.jsonin the project root, orclaude mcp addfor servers only you use (Claude Code docs). - Windsurf, now Devin Desktop:
~/.config/devin/mcp_config.json(%APPDATA%\devin\mcp_config.jsonon Windows) holds the servers of its Cascade agent, with remote servers underserverUrl; older Windsurf versions used~/.codeium/windsurf/mcp_config.json(Devin Desktop docs). - Gemini CLI:
~/.gemini/settings.json, or.gemini/settings.jsonin a project (Gemini CLI docs).
Keeping keys out of config files
Each app has its own way to read a secret when the server starts. Cursor and Windsurf read ${env:NAME}, Claude Code ${NAME} in .mcp.json, and Gemini CLI $NAME or ${NAME} anywhere in settings.json — set the variable in your shell or system before you start the app. VS Code prompts for each ${input:…} the first time and stores the answer securely. Claude Desktop’s documentation puts the value itself in its file and shows no way to read it from your environment, so the page leaves a <NAME> placeholder for you to replace on your own computer. Tick Write secret values into the files only for a file that stays on your machine.
Remote servers
Remote servers speak Streamable HTTP (most) or the older SSE transport; an address ending in /sse usually means SSE. Cursor, VS Code, Claude Code, Windsurf and Gemini CLI take the URL and headers in their files (Gemini CLI writes Streamable HTTP as httpUrl and SSE as url). Claude Desktop connects to remote servers as custom connectors under Settings → Connectors, which also handles sign-in (MCP docs); for a server that needs a fixed header, the page also writes an entry for the open-source mcp-remote bridge (MIT), which passes the header from an environment variable and is told when a server speaks only SSE.
Servers run with your permissions
A local MCP server is a program on your computer: it runs with your user account’s permissions and can read and change whatever you can (MCP docs), and VS Code warns that local servers can run arbitrary code. Add only servers from publishers you trust, read what a snippet starts before you add it, and give a filesystem server only the folders it needs. Remote servers see what the AI sends them, so check who runs them too.
Limitations
- The page writes configuration only: it does not install, start or test servers.
- App-specific extras (Cursor’s envFile and OAuth fields, VS Code sandboxing, Gemini CLI’s trust and tool filters) are not generated; add them by hand if you need them.
- Commands are read as a Unix shell reads them: in a Windows command with backslash paths, check the arguments it shows.
- Comments in a pasted file are not kept in the merged file, because JSON has no comments.
Privacy
Everything happens in your browser. What you enter or open here is not uploaded or stored by MySmartCoPilot.
Frequently asked questions
Where do I find the install snippet?
In the server’s README or documentation, usually under “Installation” or “Usage with Claude Desktop”. Paste the JSON block, the command or the URL — or the whole section: the page reads the code blocks in it.
Why is my key not in the generated file?
So that the file is safe to share or commit. The file refers to an environment variable (or, in VS Code, a password prompt) instead; the notes list the variables to set. Claude Desktop’s file takes the value itself, so it gets a <NAME> placeholder to replace on your own computer.
Will merging delete my other servers?
No. Paste your current file under Merge with your current file: every other server and setting stays. A server with the same name is replaced, or kept with a new name if you choose Keep both.
Is my config or my key sent anywhere?
No. Everything happens in your browser and works offline, and nothing you enter is stored by the page.
Claude Desktop does not show my server. What now?
Quit it completely and start it again: it reads the file only at start-up. Check that the file is valid JSON (paste it here to see errors) and that the paths in the arguments are absolute. Its MCP logs are in ~/Library/Logs/Claude on macOS and %APPDATA%\Claude\logs on Windows.