mmcp

Manage your MCP (Model Context Protocol) server definitions in one place and apply them to supported agents.
Supported Agents
More agents may be added in the future.
Installation
npm install -g mmcp
Getting Started
1. Add an MCP server to mmcp config
$ mmcp add [--env KEY=VALUE ...] [--config <path>] [--force] -- <name> <command> [args...]
# e.g.
$ mmcp add -- context7 npx -y @upstash/context7-mcp@latest
$ mmcp add -- everything npx -y @modelcontextprotocol/server-everything@latest
Adds the MCP server definition into ~/.mmcp.json.
You can check configured servers anytime:
$ mmcp list [--config <path>]
context7: npx -y @upstash/context7-mcp@latest
everything: npx -y @modelcontextprotocol/server-everything@latest
2. Choose target agents
Set which agents to apply to (e.g. claude-code).
$ mmcp agents add [--config <path>] <name...>
# e.g.
$ mmcp agents add claude-code
$ mmcp agents add claude-desktop
$ mmcp agents add codex-cli
$ mmcp agents add cursor
$ mmcp agents add gemini-cli
$ mmcp agents add github-copilot-cli
List registered agents:
$ mmcp agents list [--config <path>]
claude-code
claude-desktop
codex-cli
cursor
gemini-cli
github-copilot-cli
3. Apply your mmcp config to the agents
$ mmcp apply [--mode merge|replace]
See Apply modes for what each mode does.
That’s it. Your MCP servers from ~/.mmcp.json will be written into the agent’s config (e.g. ~/.claude.json for Claude Code).
Configuration
mmcp stores configuration as JSON. Default location is ~/.mmcp.json.
Example:
{
"mode": "merge",
"agents": [
"claude-code",
"claude-desktop",
"codex-cli",
"cursor",
"gemini-cli",
"github-copilot-cli"
],
"mcpServers": {
"context7": {
"command": "npx",
"args": [
"-y",
"@upstash/context7-mcp@latest"
],
"env": {}
},
"everything": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-everything@latest"
],
"env": {}
}
}
}
Apply modes
mode controls how agent configs are updated when you run mmcp apply.
merge (default)
Existing agent entries stay unless mmcp overrides the same name.
Existing agent config
{
"mcpServers": {
"other": {
"command": "custom"
}
}
}
mmcp.json
{
"mode": "merge",
"agents": [...],
"mcpServers": {
"context7": {
"command": "npx",
"args": ["-y", "@upstash/context7-mcp@latest"]
}
}
}
After applying
{
"mcpServers": {
"other": {
"command": "custom"
},
+ "context7": {
+ "command": "npx",
+ "args": ["-y", "@upstash/context7-mcp@latest"]
+ }
}
}
replace
All agent-side entries are removed and re-created from mmcp.
Existing agent config
{
"mcpServers": {
"other": {
"command": "custom"
}
}
}
mmcp.json
{
"mode": "replace",
"agents": [...],
"mcpServers": {
"context7": {
"command": "npx",
"args": ["-y", "@upstash/context7-mcp@latest"]
}
}
}
After applying
{
"mcpServers": {
- "other": {
- "command": "custom"
- }
+ "context7": {
+ "command": "npx",
+ "args": ["-y", "@upstash/context7-mcp@latest"]
+ }
}
}
License
MIT