{"_id":"@asteriskzuo/mcpcm","_rev":"3-f1077184706f2558a36badfed302ec19","name":"@asteriskzuo/mcpcm","dist-tags":{"latest":"1.0.2"},"versions":{"1.0.0":{"name":"@asteriskzuo/mcpcm","version":"1.0.0","keywords":["mcp","cli","model-context-protocol","ai-agents","cursor","claude-code","antigravity","windsurf","vscode","codex","gemini-cli"],"author":{"name":"asteriskzuo","email":"zuoyuhsywn@hotmail.com"},"license":"MIT","_id":"@asteriskzuo/mcpcm@1.0.0","maintainers":[{"name":"asteriskzuo","email":"zuoyuhsywn@hotmail.com"}],"homepage":"https://github.com/asteriskzuo/mcpcm#readme","bugs":{"url":"https://github.com/asteriskzuo/mcpcm/issues"},"bin":{"mcpcm":"dist/cli.js"},"dist":{"shasum":"7759eddc420baa9be95404bb44f89da31612cb2c","tarball":"https://registry.npmjs.org/@asteriskzuo/mcpcm/-/mcpcm-1.0.0.tgz","fileCount":4,"integrity":"sha512-I3KcpMsPKcHQxgSj/4DroEZKDF36dTk9ETMk5lD38X+utaZAKEMMiZrghT3Lk7KSGHmujLVA87Fnk2StXPpa8Q==","signatures":[{"sig":"MEUCIFGCY6hVjnJv0mJ7FiE/E9R9TOwpJiGSWKAH+0Uq5J+mAiEA6iHnhDrH5RfHfbWbCLXuIopOpmhFDPaykLCSXyfunxo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":59246},"type":"module","engines":{"node":">=18"},"gitHead":"31e0b6135752f2d21528d1dd93282a2dc8589876","scripts":{"dev":"tsx src/cli.ts","test":"vitest run","build":"tsup src/cli.ts --format esm --clean","format":"prettier --write 'src/**/*.ts'","test:watch":"vitest","type-check":"tsc --noEmit","format:check":"prettier --check 'src/**/*.ts'","prepublishOnly":"npm run build"},"_npmUser":{"name":"asteriskzuo","email":"zuoyuhsywn@hotmail.com"},"repository":{"url":"git+https://github.com/asteriskzuo/mcpcm.git","type":"git"},"_npmVersion":"10.8.2","description":"MCP Configuration Manager - Manage MCP configs across AI Agents","directories":{},"_nodeVersion":"20.19.6","dependencies":{"chalk":"^5.4.1","@iarna/toml":"^2.2.5","@clack/prompts":"^0.11.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","tsup":"^8.3.5","vitest":"^4.0.18","prettier":"^3.8.1","typescript":"^5.9.3","@types/node":"^22.10.0"},"_npmOperationalInternal":{"tmp":"tmp/mcpcm_1.0.0_1769572415295_0.31303623220240295","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@asteriskzuo/mcpcm","version":"1.0.1","keywords":["mcp","cli","model-context-protocol","ai-agents","cursor","claude-code","antigravity","windsurf","vscode","codex","trae","qwen-code","qoder","opencode","gemini-cli","skill"],"author":{"name":"asteriskzuo","email":"zuoyuhsywn@hotmail.com"},"license":"MIT","_id":"@asteriskzuo/mcpcm@1.0.1","maintainers":[{"name":"asteriskzuo","email":"zuoyuhsywn@hotmail.com"}],"homepage":"https://github.com/asteriskzuo/mcpcm#readme","bugs":{"url":"https://github.com/asteriskzuo/mcpcm/issues"},"bin":{"mcpcm":"dist/cli.js"},"dist":{"shasum":"bc244d400d40ff7600e5ab04db0ee7c7ea9b435b","tarball":"https://registry.npmjs.org/@asteriskzuo/mcpcm/-/mcpcm-1.0.1.tgz","fileCount":4,"integrity":"sha512-sDvovyxiklRSaoOM6Bz/HTxeRPxho/gCNh9iV5A9j8RltvJ7FOqG4hsaMgJYp41+mhnOZV4gDfQW4NlZaSL0oQ==","signatures":[{"sig":"MEYCIQCMP1fDm8nouQB2ZaluQqE6FazIFP5+QK/++4EN2+WL7wIhAP0YDUP+Z92cYu85w1gB0lAj73cLpyPVQkT8312URtAj","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":59317},"type":"module","engines":{"node":">=18"},"gitHead":"96feaa0c3901368ed1f5f3fbfaa37e1c8d51c0d4","scripts":{"dev":"tsx src/cli.ts","test":"vitest run","build":"tsup src/cli.ts --format esm --clean","format":"prettier --write 'src/**/*.ts'","test:watch":"vitest","type-check":"tsc --noEmit","format:check":"prettier --check 'src/**/*.ts'","prepublishOnly":"npm run build"},"_npmUser":{"name":"asteriskzuo","email":"zuoyuhsywn@hotmail.com"},"repository":{"url":"git+https://github.com/asteriskzuo/mcpcm.git","type":"git"},"_npmVersion":"10.8.2","description":"MCP Configuration Manager - Manage MCP configs across AI Agents","directories":{},"_nodeVersion":"20.19.6","dependencies":{"chalk":"^5.4.1","@iarna/toml":"^2.2.5","@clack/prompts":"^0.11.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","tsup":"^8.3.5","vitest":"^4.0.18","prettier":"^3.8.1","typescript":"^5.9.3","@types/node":"^22.10.0"},"_npmOperationalInternal":{"tmp":"tmp/mcpcm_1.0.1_1769575483779_0.7600813968256308","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@asteriskzuo/mcpcm","version":"1.0.2","description":"MCP Configuration Manager - Manage MCP configs across AI Agents","type":"module","bin":{"mcpcm":"dist/cli.js"},"scripts":{"build":"tsup src/cli.ts --format esm --clean","dev":"tsx src/cli.ts","prepublishOnly":"npm run build","format":"prettier --write 'src/**/*.ts'","format:check":"prettier --check 'src/**/*.ts'","type-check":"tsc --noEmit","test":"vitest run","test:watch":"vitest"},"keywords":["mcp","cli","model-context-protocol","ai-agents","cursor","claude-code","antigravity","windsurf","vscode","codex","trae","qwen-code","qoder","opencode","gemini-cli","skill"],"repository":{"type":"git","url":"git+https://github.com/asteriskzuo/mcpcm.git"},"author":{"name":"asteriskzuo","email":"zuoyuhsywn@hotmail.com"},"license":"MIT","dependencies":{"@clack/prompts":"^0.11.0","@iarna/toml":"^2.2.5","chalk":"^5.4.1"},"devDependencies":{"@types/node":"^22.10.0","prettier":"^3.8.1","tsup":"^8.3.5","tsx":"^4.19.2","typescript":"^5.9.3","vitest":"^4.0.18"},"engines":{"node":">=18"},"_id":"@asteriskzuo/mcpcm@1.0.2","gitHead":"796f715d82904a2d0c8ec16e1b270469a7ca13aa","bugs":{"url":"https://github.com/asteriskzuo/mcpcm/issues"},"homepage":"https://github.com/asteriskzuo/mcpcm#readme","_nodeVersion":"20.19.6","_npmVersion":"10.8.2","dist":{"integrity":"sha512-8ESXm+IBHHKAU4MwQvCHSyvpJsO/1cyPpH7bNBDy5hJBA0ZBREsZaQ0IaqnXcrQsXKTo7kUL4V7/sTJn73W32w==","shasum":"dc49ba136d50624603fda331ec8f04385278ccff","tarball":"https://registry.npmjs.org/@asteriskzuo/mcpcm/-/mcpcm-1.0.2.tgz","fileCount":4,"unpackedSize":59380,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDJPR0iIBCugXhNWLVo+3RCSC45SNf58iSAG91tlSMzYQIgJQeMsQcSzRAldgUgwem4kWFIll6fJaazc6nY2ZHqxJo="}]},"_npmUser":{"name":"asteriskzuo","email":"zuoyuhsywn@hotmail.com"},"directories":{},"maintainers":[{"name":"asteriskzuo","email":"zuoyuhsywn@hotmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/mcpcm_1.0.2_1769575736678_0.5899117418323638"},"_hasShrinkwrap":false}},"time":{"created":"2026-01-28T03:53:35.181Z","modified":"2026-01-28T04:48:56.921Z","1.0.0":"2026-01-28T03:53:35.461Z","1.0.1":"2026-01-28T04:44:43.926Z","1.0.2":"2026-01-28T04:48:56.826Z"},"bugs":{"url":"https://github.com/asteriskzuo/mcpcm/issues"},"author":{"name":"asteriskzuo","email":"zuoyuhsywn@hotmail.com"},"license":"MIT","homepage":"https://github.com/asteriskzuo/mcpcm#readme","keywords":["mcp","cli","model-context-protocol","ai-agents","cursor","claude-code","antigravity","windsurf","vscode","codex","trae","qwen-code","qoder","opencode","gemini-cli","skill"],"repository":{"type":"git","url":"git+https://github.com/asteriskzuo/mcpcm.git"},"description":"MCP Configuration Manager - Manage MCP configs across AI Agents","maintainers":[{"name":"asteriskzuo","email":"zuoyuhsywn@hotmail.com"}],"readme":"# mcpcm\n\n```\n███╗   ███╗ ██████╗██████╗  ██████╗███╗   ███╗\n████╗ ████║██╔════╝██╔══██╗██╔════╝████╗ ████║\n██╔████╔██║██║     ██████╔╝██║     ██╔████╔██║\n██║╚██╔╝██║██║     ██╔═══╝ ██║     ██║╚██╔╝██║\n██║ ╚═╝ ██║╚██████╗██║     ╚██████╗██║ ╚═╝ ██║\n╚═╝     ╚═╝ ╚═════╝╚═╝      ╚═════╝╚═╝     ╚═╝\n```\n\nMCP Configuration Manager - Manage MCP server configurations across AI Agents.\n\n<!-- agent-list:start -->\n\nSupports **Cursor**, **Claude Code**, **Antigravity**, **Windsurf**, **VS Code**, and [6 more](#supported-agents).\n\n<!-- agent-list:end -->\n\n## Installation\n\n```bash\n# Use directly with npx (no install required)\nnpx mcpcm --help\n\n# Or install globally\nnpm install -g @asteriskzuo/mcpcm\n```\n\n## Quick Start\n\n```bash\n# Add MCP server to specific agent\nnpx mcpcm add '{\"mcpServers\":{\"my-server\":{\"command\":\"node\",\"args\":[\"/path/to/server\"]}}}' --agent cursor\n\n# Add from file to all installed agents\nnpx mcpcm add --file mcp.json --global\n\n# List all configured MCP servers\nnpx mcpcm list\n```\n\n## Commands\n\n| Command        | Description                                          |\n| -------------- | ---------------------------------------------------- |\n| `mcpcm add`    | Add **new** MCP servers (skips existing)             |\n| `mcpcm update` | Update **existing** MCP servers (skips non-existing) |\n| `mcpcm del`    | Delete MCP servers (skips non-existing)              |\n| `mcpcm list`   | List all MCP configurations                          |\n| `mcpcm find`   | Find where an MCP server is configured               |\n| `mcpcm sync`   | Full sync from one agent to others (overwrites)      |\n\n## Common Options\n\nThese options are shared across multiple commands:\n\n| Option                    | Applies to             | Description                                     |\n| ------------------------- | ---------------------- | ----------------------------------------------- |\n| `-a, --agent <agents...>` | add, update, del, list | Target specific agent(s)                        |\n| `-g, --global`            | add, update, del, list | Apply to global configs of all installed agents |\n| `-w, --workspace`         | add, update, del, list | Apply to project-level configs                  |\n| `-f, --file <path>`       | add, update            | Read config from file instead of JSON string    |\n| `-v, --verbose`           | all                    | Show detailed output                            |\n\n> [!TIP]\n> You must specify one of `--agent`, `--global`, or `--workspace` to indicate where to apply the operation.\n\n## Add Command\n\nAdd **new** MCP servers to agent configurations.\n\n```bash\n# From JSON string\nnpx mcpcm add '{\"mcpServers\":{\"easeim\":{\"command\":\"node\",\"args\":[\"/path/to/index.js\"]}}}' --agent cursor\n\n# From file to all installed agents\nnpx mcpcm add --file mcp.json --global\n\n# To current project\nnpx mcpcm add --file mcp.json --workspace\n```\n\n> [!NOTE]\n> If a server already exists, it will be **skipped** (not overwritten).\n> Use `mcpcm update` to modify existing servers.\n\n## Update Command\n\nUpdate existing MCP server configurations.\n\n```bash\n# Update specific server in an agent\nnpx mcpcm update '{\"mcpServers\":{\"my-server\":{\"args\":[\"/new/path\"]}}}' --agent cursor\n\n# Update from file\nnpx mcpcm update --file mcp.json --global\n```\n\n> [!NOTE]\n> Only **existing** servers will be updated. Non-existing servers are skipped.\n> Use `mcpcm add` to add new servers.\n\n## Delete Command\n\nDelete MCP servers from configurations.\n\n```bash\n# From specific agent\nnpx mcpcm del my-server --agent cursor\n\n# From all agents\nnpx mcpcm del my-server --global\n\n# From project configs\nnpx mcpcm del my-server --workspace\n```\n\n> [!NOTE]\n> Only **existing** servers will be deleted. Non-existing servers are skipped with a warning.\n\n## List Command\n\nList all configured MCP servers.\n\n```bash\n# All configs\nnpx mcpcm list\n\n# Specific agent\nnpx mcpcm list --agent cursor\n\n# Global configs only\nnpx mcpcm list --global\n\n# Project configs only\nnpx mcpcm list --workspace\n```\n\n## Find Command\n\nSearch for an MCP server across all configurations.\n\n```bash\nnpx mcpcm find easeim\n\n# Output:\n# ✓ easeim found in:\n#   Cursor (global): ~/.cursor/mcp.json\n#   Claude Code (project): .mcp.json\n```\n\n## Sync Command\n\nSynchronize MCP configurations from one agent to others.\n\n```bash\n# Sync to specific agents\nnpx mcpcm sync --from cursor --to antigravity claude-code\n\n# Sync to all installed agents\nnpx mcpcm sync --from cursor --to-all\n```\n\n> [!IMPORTANT]\n> Sync performs a **full synchronization**: existing servers are **overwritten**, and new servers are added.\n> This is different from `add` which skips existing servers.\n\n## Supported Agents\n\n<!-- available-agents:start -->\n\n| Agent                    | `--agent`     | Project Config              | Global Config                                      |\n| ------------------------ | ------------- | --------------------------- | -------------------------------------------------- |\n| Cursor                   | `cursor`      | `.cursor/mcp.json`          | `~/.cursor/mcp.json`                               |\n| Claude Code              | `claude-code` | `.mcp.json`                 | `~/.claude.json`                                   |\n| Antigravity              | `antigravity` | `.gemini/mcp_config.json`   | `~/.gemini/antigravity/mcp_config.json`            |\n| Windsurf                 | `windsurf`    | `.windsurf/mcp_config.json` | `~/.codeium/windsurf/mcp_config.json`              |\n| VS Code / GitHub Copilot | `vscode`      | `.vscode/mcp.json`          | `~/Library/Application Support/Code/User/mcp.json` |\n| Codex                    | `codex`       | `.codex/config.toml`        | `~/.codex/config.toml`                             |\n| OpenCode                 | `opencode`    | -                           | `~/.config/opencode/opencode.json`                 |\n| Gemini CLI               | `gemini-cli`  | `.gemini/settings.json`     | `~/.gemini/settings.json`                          |\n| Qoder                    | `qoder`       | -                           | (managed via `qodercli`)                           |\n| Qwen Code                | `qwen-code`   | `.qwen/settings.json`       | `~/.qwen/settings.json`                            |\n| Trae                     | `trae`        | `.trae/mcp.json`            | -                                                  |\n\n<!-- available-agents:end -->\n\n> [!NOTE]\n>\n> - Claude Code uses `~/.claude.json` (not `~/.claude/` directory) for global config\n> - VS Code path varies by OS (shown above is macOS)\n> - Some agents don't support project-level or global configs (marked with `-`)\n\n## MCP Configuration Format\n\n```json\n{\n  \"mcpServers\": {\n    \"server-name\": {\n      \"command\": \"node\",\n      \"args\": [\"/path/to/server/index.js\"],\n      \"env\": {\n        \"API_KEY\": \"your-api-key\"\n      }\n    }\n  }\n}\n```\n\n## Examples\n\n### Add multiple servers from file\n\nCreate `mcp.json`:\n\n```json\n{\n  \"mcpServers\": {\n    \"filesystem\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@modelcontextprotocol/server-filesystem\", \"/path/to/dir\"]\n    },\n    \"github\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@modelcontextprotocol/server-github\"],\n      \"env\": {\n        \"GITHUB_TOKEN\": \"your-token\"\n      }\n    }\n  }\n}\n```\n\nThen:\n\n```bash\n# Add to all installed agents\nnpx mcpcm add --file mcp.json --global\n\n# Or add to current project for team sharing\nnpx mcpcm add --file mcp.json --workspace\n```\n\n### Sync development environment\n\n```bash\n# Set up Cursor with all your MCP servers\n# Then sync to other agents\nnpx mcpcm sync --from cursor --to-all\n```\n\n## Configuration Priority\n\nWhen agents have multiple config sources:\n\n**Project > Editor > Global**\n\nProject configs take precedence over global configs.\n\n## Recommended .gitignore\n\nIf you're using `mcpcm` in a project, add the following to your `.gitignore` to exclude agent config directories created during testing:\n\n```gitignore\n# MCP Configuration files (created during testing)\n.cursor/\n.mcp.json\n.gemini/\n.windsurf/\n.vscode/\n.codex/\n.qwen/\n.trae/\n```\n\n## Troubleshooting\n\n### \"No installed agents detected\"\n\nThe CLI auto-detects installed agents by checking for config directories. If none are found:\n\n- Ensure at least one supported agent is installed\n- Use `--agent` to explicitly specify target agents\n\n### Config not taking effect\n\n- Restart the AI agent after modifying configs\n- Check the config file format (JSON vs TOML for Codex)\n- Verify the `command` path is correct and executable\n\n### Permission errors\n\nEnsure you have write access to the config directory.\n\n## Custom Agent Configuration\n\nYou can add or modify AI Agent configurations by editing the `agents` object in the installed CLI file.\n\n### Locate the CLI File\n\n```bash\n# Find the global installation path\nnpm root -g\n# Then edit: <npm_root>/@asteriskzuo/mcpcm/dist/cli.js\n```\n\n### Modify the `agents` Object\n\nOpen `dist/cli.js` and locate the `agents` object (around line 27). Add or modify agent entries:\n\n```javascript\nvar agents = {\n  // ... existing agents ...\n\n  // Add your custom agent:\n  'my-agent': {\n    name: 'my-agent',\n    displayName: 'My Custom Agent',\n    projectConfigPath: '.my-agent/mcp.json', // or null if not supported\n    globalConfigPath: join(home, '.my-agent/mcp.json'),\n    configFormat: 'json', // 'json' or 'toml'\n    mcpConfigKey: 'mcpServers', // key in config file\n    detectInstalled: async () => existsSync(join(home, '.my-agent')),\n  },\n};\n```\n\n### Configuration Fields\n\n| Field               | Description                                           |\n| ------------------- | ----------------------------------------------------- |\n| `name`              | Agent identifier (used in `--agent` option)           |\n| `displayName`       | Human-readable name shown in output                   |\n| `projectConfigPath` | Relative path for project config (or `null`)          |\n| `globalConfigPath`  | Absolute path for global config (or `null`)           |\n| `configFormat`      | Config file format: `'json'` or `'toml'`              |\n| `mcpConfigKey`      | Key for MCP servers in config (e.g., `'mcpServers'`)  |\n| `detectInstalled`   | Async function returning `true` if agent is installed |\n\n> [!NOTE]\n> Changes take effect immediately. No rebuild required.\n\n> [!WARNING]\n> Reinstalling or updating the package will overwrite your changes.\n\n> [!TIP]\n> If you find this method cumbersome, consider [submitting a PR](https://github.com/AsteriskZuo/mcpcm/pulls) to add official support for your agent!\n\n## License\n\nMIT\n\n## References\n\n[skills](https://www.npmjs.com/package/skills)\n","readmeFilename":"README.md"}