A lightweight system tray app for managing Claude Code MCP servers — per-project and globally.
- Global + Project profiles — Manage
~/.claude.json(global) and per-project.mcp.jsonindependently - Auto-detect terminals — Automatically finds running Claude Code sessions and creates tabs for each project
- Tab UI — Switch between Global and project-specific MCP configurations
- Live sync — 5-second polling detects new/closed terminals and syncs file changes
- Global badge — Project tabs show which servers are enabled globally (blue badge)
- Responsive width — Window resizes to fit the tab bar
Claude Code loads MCP servers from two sources:
| Scope | File | Effect |
|---|---|---|
| Global | ~/.claude.json |
Applied to all Claude Code sessions |
| Project | <project>/.mcp.json |
Applied only to sessions in that directory |
MCP Switch detects running Claude Code processes, reads their working directory via Windows PEB, and presents a tab for each unique project. Toggle servers on/off per scope — changes are saved to the corresponding JSON file.
git clone https://github.com/dalbit-mir/mcp-switch.git
cd mcp-switch
cargo tauri buildThe installer will be in src-tauri/target/release/bundle/nsis/.
MCP Switch reads the server catalog from two sources and merges them:
~/.claude/all_mcp.json— master catalog of all known MCP servers~/.claude.json— currently enabled servers (also used as a source)
Servers only in .claude.json (not in all_mcp.json) are also shown and can be toggled. This ensures no server is invisible regardless of where it was registered.
For project-specific servers, toggle them in the project tab — MCP Switch creates/updates .mcp.json in that project directory automatically.
- Tauri 2.x — Rust backend, lightweight webview
- Vanilla JS — No framework, minimal bundle
- Windows PEB — Process working directory detection via NtQueryInformationProcess
MIT
