Configure your MCP servers once. Use them everywhere.
Conductor is a local-first desktop app that manages MCP (Model Context Protocol) server configurations across every major AI coding tool. One source of truth, automatic sync, secrets in your system keychain.
curl -fsSL https://conductor-mcp.vercel.app/install.sh | shEvery AI coding tool has its own config file format for MCP servers. Add a new server? Edit 5 different JSON/TOML/XML files. Change an API key? Do it again. Conductor fixes this.
- One config to rule them all — Manage servers in Conductor, sync to every client with one click
- Auth once, use everywhere — OAuth tokens and API keys stored in your system keychain, injected at sync time
- Format translation — Automatically handles JSON, TOML, XML differences between clients
- Merge, don't overwrite — Sync preserves servers you've added directly in each client
- Backup & safety — Timestamped backups before every config write
| Client | Format | Config Path (macOS) |
|---|---|---|
| Claude Desktop | JSON | ~/Library/Application Support/Claude/claude_desktop_config.json |
| Cursor | JSON | ~/.cursor/mcp.json |
| VS Code (Copilot) | JSON | ~/Library/Application Support/Code/User/mcp.json |
| Claude Code CLI | JSON | ~/.claude/settings.json |
| Windsurf | JSON | ~/.codeium/windsurf/mcp_config.json |
| Zed | JSON | ~/.config/zed/settings.json |
| JetBrains IDEs | XML | ~/Library/Application Support/JetBrains/*/options/mcp.xml |
| OpenAI Codex CLI | TOML | ~/.codex/config.toml |
| Antigravity | JSON | .antigravity/config.json |
Add, edit, delete, and toggle MCP servers with a clean UI. Supports both stdio and HTTP transports.
Search and install from 7,300+ MCP servers on the Smithery Registry. One-click install with automatic config generation.
Push your server config to every detected client. Conductor reads each client's native format, merges your servers in, and preserves anything the client had before.
Bundle a set of servers into a shareable stack. Export as JSON, import from a URL or paste. Great for team onboarding.
API keys and OAuth tokens are stored in your system keychain (macOS Keychain, Windows Credential Manager, Linux Secret Service). They're injected into client configs at sync time — never stored in plaintext config files.
Every sync, import, server add/delete is logged with timestamps. See exactly what changed and when.
Conductor watches client config files for external changes and updates its detection status in real-time.
┌─────────────┐
│ Conductor │
│ (master │
│ config) │
└──────┬──────┘
│
┌───────┬───────┼───────┬───────┐
▼ ▼ ▼ ▼ ▼
Claude Cursor VS Code Wind- Claude
Desktop surf Code
- Import — Conductor scans your installed AI tools and imports existing MCP server configs
- Manage — Add, edit, and organize servers in one UI. Secrets go to your system keychain.
- Sync — Push your config to every client with one click. Format differences handled automatically.
curl -fsSL https://conductor-mcp.vercel.app/install.sh | shAuto-detects your chip (Apple Silicon / Intel), downloads the latest DMG, installs to /Applications, and removes the macOS quarantine flag.
Download the .dmg from GitHub Releases or from conductor-mcp.vercel.app.
git clone https://github.com/aryabyte21/conductor.git
cd conductor
pnpm install
pnpm build:desktopThe .dmg will be in apps/desktop/src-tauri/target/release/bundle/dmg/.
- Rust 1.75+
- Node.js 20+
- pnpm 10+
- Xcode Command Line Tools (macOS)
git clone https://github.com/aryabyte21/conductor.git
cd conductor
pnpm install# Desktop app (Tauri + React)
pnpm dev:desktop
# Landing page (Next.js)
pnpm dev:webpnpm type-checkconductor/
├── apps/
│ ├── desktop/ # Tauri v2 + React + TypeScript
│ │ ├── src/ # React frontend (Tailwind, Zustand, Vite)
│ │ └── src-tauri/ # Rust backend
│ │ ├── src/
│ │ │ ├── clients/ # Client adapters (detect, read, write)
│ │ │ ├── commands/ # Tauri IPC command handlers
│ │ │ ├── config/ # Config read/write, serializers, normalizers
│ │ │ ├── oauth/ # OAuth flow with local callback server
│ │ │ └── watcher/ # File system watcher
│ │ └── Cargo.toml
│ └── web/ # Next.js landing page
├── packages/
│ └── types/ # Shared TypeScript types
└── package.json # pnpm monorepo root
- Merge-based sync: Serializers preserve client-specific servers not managed by Conductor
- Keychain-backed secrets:
secret_env_keyson each server marks which env vars are stored in the OS keychain - Adapter pattern: Each client implements
ClientAdaptertrait withdetect(),read_servers(),write_servers() - Backup before write: Every config write creates a timestamped
.bakfile
Contributions are welcome. Please open an issue first to discuss what you'd like to change.
MIT



