Configuration
There are two sides to MCP configuration:
- Client config — The
mcpServers JSON your AI app reads to connect to servers
- mcpm.json — The file you include in your project so the registry knows how to run it
Client Config Files
| Client |
Config File |
| Claude Desktop |
claude_desktop_config.json |
| Cursor |
~/.cursor/mcp.json |
| Windsurf |
~/.codeium/windsurf/mcp_config.json |
| ChatGPT |
Settings → Integrations → MCP |
| VS Code / Copilot |
.vscode/mcp.json |
| Claude Code |
.mcp.json |
Client Config Format
<span class="hljs-punctuation">{</span>
<span class="hljs-attr">"mcpServers"</span><span class="hljs-punctuation">:</span> <span class="hljs-punctuation">{</span>
<span class="hljs-attr">"my-tool"</span><span class="hljs-punctuation">:</span> <span class="hljs-punctuation">{</span>
<span class="hljs-attr">"command"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"node"</span><span class="hljs-punctuation">,</span>
<span class="hljs-attr">"args"</span><span class="hljs-punctuation">:</span> <span class="hljs-punctuation">[</span><span class="hljs-string">"server.js"</span><span class="hljs-punctuation">]</span><span class="hljs-punctuation">,</span>
<span class="hljs-attr">"env"</span><span class="hljs-punctuation">:</span> <span class="hljs-punctuation">{</span>
<span class="hljs-attr">"API_KEY"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"sk-..."</span>
<span class="hljs-punctuation">}</span>
<span class="hljs-punctuation">}</span>
<span class="hljs-punctuation">}</span>
<span class="hljs-punctuation">}</span>
mcpm.json — The Bridge
When you publish a package to mcpm.dev, include an mcpm.json file. Its mcp field maps 1:1 to the mcpServers entry above:
<span class="hljs-punctuation">{</span>
<span class="hljs-attr">"mcp"</span><span class="hljs-punctuation">:</span> <span class="hljs-punctuation">{</span>
<span class="hljs-attr">"transport"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"stdio"</span><span class="hljs-punctuation">,</span>
<span class="hljs-attr">"command"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"node"</span><span class="hljs-punctuation">,</span>
<span class="hljs-attr">"args"</span><span class="hljs-punctuation">:</span> <span class="hljs-punctuation">[</span><span class="hljs-string">"server.js"</span><span class="hljs-punctuation">]</span><span class="hljs-punctuation">,</span>
<span class="hljs-attr">"env"</span><span class="hljs-punctuation">:</span> <span class="hljs-punctuation">{</span><span class="hljs-punctuation">}</span>
<span class="hljs-punctuation">}</span>
<span class="hljs-punctuation">}</span>
When users run mcpm-dev add <your-tool>, the CLI reads your mcpm.json and generates the exact client config they need. Without it, the CLI falls back to a generic npx -y <name> command.
```
Configuration
There are two sides to MCP configuration:
mcpServersJSON your AI app reads to connect to serversClient Config Files
claude_desktop_config.json~/.cursor/mcp.json~/.codeium/windsurf/mcp_config.json.vscode/mcp.json.mcp.jsonClient Config Format
<span class="hljs-punctuation">{</span> <span class="hljs-attr">"mcpServers"</span><span class="hljs-punctuation">:</span> <span class="hljs-punctuation">{</span> <span class="hljs-attr">"my-tool"</span><span class="hljs-punctuation">:</span> <span class="hljs-punctuation">{</span> <span class="hljs-attr">"command"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"node"</span><span class="hljs-punctuation">,</span> <span class="hljs-attr">"args"</span><span class="hljs-punctuation">:</span> <span class="hljs-punctuation">[</span><span class="hljs-string">"server.js"</span><span class="hljs-punctuation">]</span><span class="hljs-punctuation">,</span> <span class="hljs-attr">"env"</span><span class="hljs-punctuation">:</span> <span class="hljs-punctuation">{</span> <span class="hljs-attr">"API_KEY"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"sk-..."</span> <span class="hljs-punctuation">}</span> <span class="hljs-punctuation">}</span> <span class="hljs-punctuation">}</span> <span class="hljs-punctuation">}</span>mcpm.json — The Bridge
When you publish a package to mcpm.dev, include an
mcpm.jsonfile. Itsmcpfield maps 1:1 to themcpServersentry above:<span class="hljs-punctuation">{</span> <span class="hljs-attr">"mcp"</span><span class="hljs-punctuation">:</span> <span class="hljs-punctuation">{</span> <span class="hljs-attr">"transport"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"stdio"</span><span class="hljs-punctuation">,</span> <span class="hljs-attr">"command"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"node"</span><span class="hljs-punctuation">,</span> <span class="hljs-attr">"args"</span><span class="hljs-punctuation">:</span> <span class="hljs-punctuation">[</span><span class="hljs-string">"server.js"</span><span class="hljs-punctuation">]</span><span class="hljs-punctuation">,</span> <span class="hljs-attr">"env"</span><span class="hljs-punctuation">:</span> <span class="hljs-punctuation">{</span><span class="hljs-punctuation">}</span> <span class="hljs-punctuation">}</span> <span class="hljs-punctuation">}</span>When users run
mcpm-dev add <your-tool>, the CLI reads yourmcpm.jsonand generates the exact client config they need. Without it, the CLI falls back to a genericnpx -y <name>command.```