Plugins & MCP
Plugin management
Section titled “Plugin management”Claude Code keeps plugins in ~/.claude/plugins/. Each claude-multi instance can have its own set of plugins, either symlinked from ~/.claude (auto-sync) or independently installed.
How plugins are stored
Section titled “How plugins are stored”Each instance has a plugins/ directory in its config dir:
~/.claude-deepseek/plugins/├── some-plugin/ # actual plugin files│ ├── plugin.json│ └── ...└── external_plugins/ # external plugins live here └── another-plugin/ ├── plugin.json └── ...Plugin state is tracked in installed_plugins.json (v2 format) with scope, install path, version, and timestamps.
Listing plugins
Section titled “Listing plugins”TUI: Select Manage plugins, pick an instance, and see all installed plugins with their status.
CLI:
# List all available default pluginsclaude-multi plugins list-defaults
# List installed plugins for a specific instanceclaude-multi plugins list-installed deepseekDefault plugins show category badges ([internal] / [ext]) and MCP indicators when a plugin provides MCP servers.
Installing plugins
Section titled “Installing plugins”TUI: Select Manage plugins → pick an instance → Install → multi-select from the list. space toggles, enter confirms.
CLI:
claude-multi plugins install deepseek <plugin-id> [<plugin-id>...]Before installing, claude-multi runs collision detection, if a new plugin would conflict with an existing one (same MCP server name, different content), you’ll be warned before anything is committed.
Enabling and disabling
Section titled “Enabling and disabling”Toggle a plugin without uninstalling it:
claude-multi plugins enable deepseek <plugin-id>claude-multi plugins disable deepseek <plugin-id>Copying between instances
Section titled “Copying between instances”Copy one or more plugins from one instance to another:
claude-multi plugins copy <source-instance> <dest-instance> <plugin-id> [<plugin-id>...]Removing plugins
Section titled “Removing plugins”claude-multi plugins remove deepseek <plugin-id> [<plugin-id>...]Removal uses a rename-to-backup safety pattern, the plugin directory is renamed rather than deleted outright.
Collision detection
Section titled “Collision detection”If you’ve installed the same plugin in multiple places (one symlinked, one copied, different versions), MCP server names might conflict:
claude-multi plugins check-collisions deepseek <plugin-id> [<plugin-id>...]This scans for plugins that share an MCP server name but have different content.
Auto-sync and symlinks
Section titled “Auto-sync and symlinks”Sync has three modes. They control how an instance’s plugins/ and skills/ relate to ~/.claude/:
auto—plugins/andskills/are symlinked whole to~/.claude/. Install or update a plugin once and every synced instance sees it immediately. Per-plugin operations (install/remove/enable/disable) aren’t available, since changes happen at the source.half-manual— real directories, but each plugin and skill inside is individually symlinked back to~/.claude/. You keep the existing set, but new installs in~/.claudedon’t appear until you re-sync. Per-plugin management is blocked here too.full-manual— independent copies. No symlinks. The instance can drift freely from~/.claude/, and all per-plugin operations work.
# Set or change the modeclaude-multi auto-sync deepseek autoclaude-multi auto-sync deepseek half-manualclaude-multi auto-sync deepseek full-manual
# Legacy on/off still works (on → auto, off → full-manual)claude-multi auto-sync deepseek onclaude-multi auto-sync deepseek offConversions are one-way: auto → half-manual → full-manual. You can’t step back up, because reconciling directories that have diverged is a data-loss problem.
Repairing broken symlinks
Section titled “Repairing broken symlinks”If you move or delete ~/.claude, symlinks across every synced instance break. Rebuild them with:
claude-multi fix-symlinks [names...]Run it for specific instances, or with -a/--all across all of them. From the TUI, Re-sync symlinks does the same thing.
MCP server management
Section titled “MCP server management”MCP (Model Context Protocol) servers let Claude Code talk to external tools, databases, APIs, file systems, and anything else you wire up. Each instance can have its own MCP server configuration.
Listing MCP servers
Section titled “Listing MCP servers”TUI: Select MCP servers from the main menu.
CLI:
claude-multi mcp listShows MCP server configs across all instances so you can see at a glance what’s connected where.
Copying between instances
Section titled “Copying between instances”Set up an MCP server in one instance and want it in another:
claude-multi mcp copyFrom the TUI, select MCP servers → Copy. Pick source and destination instances.
Verifying configs
Section titled “Verifying configs”MCP server configs can go stale if a server binary gets moved or removed:
claude-multi mcp verifyChecks that referenced executables and paths still exist.
Adding MCP servers
Section titled “Adding MCP servers”TUI: Select MCP servers → pick an instance → Add custom server. Enter the server name and JSON config.
MCP configs use the same format as Claude Code’s native MCP config, no abstraction layer added.
Where configs live
Section titled “Where configs live”Each instance stores MCP server configuration in its own settings.json:
~/.claude-deepseek/settings.json → mcpServers fieldSetting up MCP during instance creation
Section titled “Setting up MCP during instance creation”When creating a new instance through the TUI, the Copy Options step lets you bring over MCP server configs from your default ~/.claude install. Use --copy-mcp on the CLI:
claude-multi add new-instance --provider deepseek --api-key sk-... --copy-mcpExample: filesystem and database servers
Section titled “Example: filesystem and database servers”Edit an instance’s settings.json directly to add a server manually:
{ "mcpServers": { "filesystem": { "command": "npx", "args": ["-y", "@modelcontextprotocol/server-filesystem", "/Users/you/projects/my-app"] }, "postgres": { "command": "npx", "args": ["-y", "@modelcontextprotocol/server-postgres", "postgresql://user:pass@localhost:5432/mydb"] } }}Restart the instance and the servers load automatically. Inside a session, /mcp lists every connected server and its available tools.
Isolating servers per instance
Section titled “Isolating servers per instance”Some servers should only reach specific providers, a production database server has no business being reachable from an experimental sandbox instance. Keep auto-sync off for that instance and configure MCP servers only in its own settings.json:
~/.claude-glm/settings.json # includes the postgres MCP server~/.claude-sandbox/settings.json # no postgres MCP serverTroubleshooting
Section titled “Troubleshooting”| Problem | Fix |
|---|---|
| Server not loading | Check the command path in settings.json |
| Permission denied | Make sure the MCP binary is executable (chmod +x) |
| Connection refused | Verify the server is running and the port is correct |
| Server loads but no tools | Check the server’s own logs for startup errors |