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
{
"mcpServers": {
"my-tool": {
"command": "node",
"args": ["server.js"],
"env": {
"API_KEY": "sk-..."
}
}
}
}
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:
{
"mcp": {
"transport": "stdio",
"command": "node",
"args": ["server.js"],
"env": {}
}
}
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
{ "mcpServers": { "my-tool": { "command": "node", "args": ["server.js"], "env": { "API_KEY": "sk-..." } } } }mcpm.json — The Bridge
When you publish a package to mcpm.dev, include an
mcpm.jsonfile. Itsmcpfield maps 1:1 to themcpServersentry above:{ "mcp": { "transport": "stdio", "command": "node", "args": ["server.js"], "env": {} } }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.```