MCP Server Config Generator

Fill in your server's command, arguments, and environment variables. Get a generic JSON config, Claude Desktop format, Cursor/Windsurf reference, .env example, and a README snippet โ€” instantly, in your browser.

Server Configuration

Used as the key in client config files. Use kebab-case.

The executable to run. Should be on your PATH or an absolute path.

Arguments

Environment Variables0 defined

Mark sensitive variables as Secret โ€” they will show as placeholders in output and the .env example will remind you not to commit them.

Notes (optional)

// Fill in server name and command to generate configโ€ฆ
Generated in your browser. Nothing is uploaded.

Verify with your MCP client. Config file location and exact JSON format differ between clients (Claude Desktop, Cursor, Windsurf, VS Code extensions, etc.). The snippets here are reference examples โ€” always check your client's official documentation before using them.

MCP Server Config Guide

Common config fields

Field Required
name Yes
command Yes
args No
env No
cwd No
transport No

Common mistakes

Command not on PATH

If "node" or "python" aren't found, the client silently fails to start the server. Use absolute paths (/usr/local/bin/node) or ensure the binary is on your PATH.

Hardcoded secrets in config

Pasting API keys directly into the JSON config is dangerous if the file is ever committed to git. Always use environment variables for secrets.

Assuming one config format

Claude Desktop, Cursor, Windsurf, and VS Code extensions each have their own config file and may use slightly different schemas. Never copy a config from one client and assume it works in another.

Wrong working directory

If your server uses relative paths to load config files or modules, the process must be started from the right directory. Set cwd explicitly if needed.

Forgetting to rebuild

For compiled servers (TypeScript, Go, Rust), the config runs the compiled output โ€” not the source. Remember to rebuild after code changes, or use a dev watcher.

Server exits immediately

A server that crashes on startup is often missing required environment variables or has a wrong entrypoint path. Run the command manually in your terminal first to see the error.

Config format varies by client

The snippets this tool generates are reference examples. MCP clients each define their own config file location and JSON schema. Always verify the exact format in your client's documentation before using a config snippet. Do not blindly copy a snippet from one client and use it in another.

Privacy: This tool runs entirely in your browser. Your server names, commands, and environment variable values are not uploaded or stored anywhere.

Frequently Asked Questions

What is an MCP server config?
An MCP server config tells an AI client (like Claude Desktop, Cursor, or Windsurf) how to start and connect to an MCP server. It typically contains a server name (used as an identifier), the command to run, any command-line arguments, and environment variables the server needs. The client reads this config at startup and launches the server process.
Does every MCP client use the same config format?
No. Config file location and exact JSON schema differ between clients. Claude Desktop uses ~/Library/Application Support/Claude/claude_desktop_config.json on macOS. Cursor may use .cursor/mcp.json in a project or a global settings file. Windsurf has its own location. Always check your specific client's documentation โ€” the snippets generated here are reference examples, not guaranteed to work in every client without adjustment.
What is the "command" field?
The command is the executable that starts your MCP server โ€” for example node, python, or docker. It must be available on your PATH, or you can use an absolute path. The MCP client spawns this process when it starts up and communicates with it over the configured transport (usually stdio for local servers).
What is the difference between stdio, HTTP, and SSE transports?
stdio is the standard transport for local MCP servers โ€” the client starts your process and communicates over stdin/stdout. It's the simplest and most commonly supported option for local development. HTTP (streamable HTTP transport) is used for remote servers accessed over a network. SSE (Server-Sent Events) is a legacy HTTP transport that predates the streamable HTTP spec. For local development, use stdio unless your server specifically requires otherwise.
Should I put API keys directly in the config?
No. API keys and other secrets should be stored in environment variables, not hardcoded in config files that may end up in version control. This generator lets you mark env vars as "Secret" โ€” the .env example will remind you to keep them out of git. Pass secrets to your MCP server process via environment variables, and load them from a .env file that is listed in .gitignore.
What is the working directory (cwd) field for?
The working directory sets the current directory for the server process when it starts. This matters if your server uses relative file paths, reads config files relative to its working directory, or depends on being run from a specific location. If omitted, the client typically uses its own working directory. Specify it if your server requires a particular directory to function correctly.
What does the TypeScript / README snippet output contain?
The README snippet generates a markdown section you can paste into your server's README. It includes the start command, a table of required environment variables, and a reference JSON block for MCP client configuration โ€” with a note that users should verify the exact format for their client.