Configure MCP servers once, connect every AI client through a single local gateway
SaferSkills independently audited Mcp Mux (Agent Skill) and scored it 45/100 (orange). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 1 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 1 flagged
A base64 string of 128+ characters appears in a documentation file. Encoded prompt injection hides the hostile instruction in base64 — invisible to keyword filters — and relies on the agent's ability to decode it at runtime. There is no normal authoring reason to embed a multi-hundred-byte base64 blob in skill docs.
*.sig, SIGNATURES) outside the documentation.Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
[Website](https://mcpmux.com) · [Download](https://mcpmux.com/download) · [Discover Servers](https://mcpmux.com) · [Features](https://mcpmux.com/features) · [Discord](https://discord.gg/b4RDmwAHAN)
Cursor, Claude Desktop, VS Code, Windsurf — they all support MCP, but each one needs its own config file. None of them talk to each other.
┌─────────────────────────────────────────────────────────────────────────┐
│ Today: every client manages MCP servers independently │
│ │
│ Cursor → config.json → github, slack, db + API keys │
│ Claude → config.json → github, slack, db + API keys (dupe) │
│ VS Code → settings.json → github, slack, db + API keys (dupe) │
│ Windsurf → config.json → github, slack, db + API keys (dupe) │
│ │
│ ⚠ 4 config files · 4 copies of every API key · all plain text │
└─────────────────────────────────────────────────────────────────────────┘Add a server? Edit four files. Rotate an API key? Edit four files. New machine? Start from scratch.
And those API keys? Sitting in plain-text JSON files anyone on your machine can read.
McpMux is a desktop app that runs a local MCP gateway. You configure servers once — every AI client connects through a single URL.
┌─────────────────────────────────────────────────────────────────────────┐
│ With McpMux: one gateway, every client │
│ │
│ Cursor ─┐ │
│ Claude ─┤ ┌──→ GitHub │
│ VS Code ─┼──→ McpMux ├──→ Slack │
│ Windsurf ─┤ localhost:45818├──→ PostgreSQL │
│ Any client ─┘ └──→ + all your servers │
│ │
│ ✓ 1 config · credentials encrypted in OS keychain · instant sync │
└─────────────────────────────────────────────────────────────────────────┘Add a server in McpMux and every connected client picks it up instantly — no restart, no manual refresh. Remove a tool or update a prompt? Every client knows immediately.
Lightweight and cross-platform — built in Rust with Tauri 2, McpMux uses minimal CPU and memory while running quietly in your system tray on Windows, macOS, and Linux.
McpMux Dashboard
1. Install servers from the built-in registry — or add your own
2. Paste one config into each AI client (the last config you'll ever need):
{
"mcpServers": {
"mcpmux": {
"type": "http",
"url": "http://localhost:45818/mcp"
}
}
}3. Done. Every tool from every server is available in every client, right now.
McpMux routes calls to the right server, refreshes OAuth tokens automatically, and keeps credentials encrypted in your OS keychain — you never think about it again. It also keeps itself current: new versions download and install on launch by default (toggle in Settings), so a restart is all it takes.
No more duplicating server configs across Cursor, Claude, VS Code, and Windsurf. Install a server in McpMux and it's immediately available everywhere. Expand any server to inspect its tools, prompts, and resources. See live connection status. OAuth tokens refresh automatically in the background.
Server Management — Azure, AWS, Notion, Docker, Slack all connected
Stop hunting for MCP server repos and hand-writing transport configs. Browse a curated registry of 100+ servers — GitHub, Slack, PostgreSQL, Docker, Notion, AWS, Azure, and more. Click install, enter your credentials, and the server is live across every AI client you use. You can also browse the full registry at mcpmux.com.
Discover — browse 100+ servers and install with one click
The full registry is also available on the web at mcpmux.com — with search, categories, and one-click install via deep links.
mcpmux.com — server registry on the web
Create isolated Spaces — each with their own servers, credentials, and permissions. A "Work" space for company databases and internal APIs. A "Personal" space for side projects. Switch in one click from the sidebar and every connected AI client follows automatically. No more accidentally querying your personal database from a work project.
Workspaces — switch context instantly from the sidebar
Your AI client tells McpMux which folder it's working in (its MCP root). McpMux uses that to route each workspace to its own toolset — open your backend repo and the AI sees your database and deploy tools; open a docs folder and it sees only search and filesystem. Map a folder once in the Workspaces tab (or let the AI do it — see below) and every future session from that exact path resolves automatically. Matching is per-folder and exact, so nothing leaks across projects.
Workspaces — map a folder to the Space and FeatureSet it should get
Not every AI client should have the same power. Create Feature Sets — curated bundles that control exactly which tools, prompts, and resources are exposed. Build a "Read Only" set for cautious workflows, a "React Development" set with just GitHub and Filesystem, or a "Full Stack Dev" set with everything — then route a folder to it via a Workspace mapping. A FeatureSet's included features are the effective toolset a session resolves to.
Feature Sets — pick exactly which tools each bundle exposes, per server
Cursor, VS Code, Windsurf, Claude Code — see every AI app connected to your gateway in real time, with live status. Routing is workspace-driven: each app's toolset is decided by the Workspace binding for the folder it reports, not configured per app. Open any app to rename it, see how it's routed, or revoke its connection. New apps authenticate via OAuth with a one-click approval flow.
Connected apps — routing is workspace-driven per reported folder
Hand an assistant a hundred tools and it burns tokens and reaches for the wrong one. McpMux ships a built-in Tool Optimization capability so the AI can keep itself lean — straight from chat, no config files.
Start a request with `@mux` and the assistant can:
mcpmux_list_spaces, mcpmux_list_all_tools, mcpmux_search_toolsmcpmux_manage_feature_setmcpmux_bind_current_workspaceTool Optimization — the built-in self-management tools the AI drives, reads silent and writes gated
Reads are silent; anything that changes your setup pops a one-click approval dialog that names the exact Space — the AI proposes, you decide. The @mux trigger keeps these requests cleanly separated from your real work, and every operation can target a specific Space by id.
Approval — every self-management write asks first, showing the target Space and the exact tool diff
"@mux build a minimal toolset for this Next.js repo and pin it to this folder."
MCP defaults to plain-text config files with raw API keys. McpMux replaces that with defense in depth:
127.0.0.1, nothing exposed to the networkzeroizeAll MCP traffic stays on your machine. Cloud sync (optional, coming soon) only covers config metadata — never credentials or payloads.
1. [Download McpMux](https://mcpmux.com/download) — Windows, macOS, Linux
2. Add servers — use the Discover tab to browse 100+ servers, or explore servers on mcpmux.com and install with one click
3. Paste the config — copy the snippet from the Dashboard into your AI clients
That's the last config file you'll ever touch.
Linux quick install: curl -fsSL https://install.mcpmux.com | bash>
macOS via Homebrew: brew install --cask mcpmux/tap/mcpmux>
See mcpmux.com/download for all platforms and install methods.
Quick install (detects your distro automatically):
curl -fsSL https://install.mcpmux.com | bash<details> <summary>Other install methods</summary>
Debian / Ubuntu (APT repository for automatic updates):
curl -fsSL https://install.mcpmux.com/apt | sudo bashFedora / RHEL (from GitHub Releases):
# Download the latest .rpm
sudo dnf install https://github.com/mcpmux/mcp-mux/releases/latest/download/mcpmux-0.0.12-1.amd64.rpmArch Linux (AUR):
yay -S mcpmux-binAppImage (any distro):
curl -fsSL https://install.mcpmux.com | bash # auto-detects, falls back to AppImageOr download directly from GitHub Releases.
</details>
pnpm setup # First-time: install dependencies
pnpm dev # Start development
pnpm build # Production build
pnpm test # Run all testsPrerequisites: Rust 1.75+, Node.js 18+, pnpm 9+. Linux also needs gnome-keyring libsecret-1-dev librsvg2-dev pkg-config.
Built with Tauri 2 (Rust + React 19), Axum for the gateway, ring for encryption, rmcp for MCP.
<details> <summary>Project structure</summary>
mcp-mux/
├── apps/desktop/ # Tauri desktop app (React + Rust)
├── crates/
│ ├── mcpmux-core/ # Domain logic
│ ├── mcpmux-gateway/ # HTTP gateway, OAuth, routing
│ ├── mcpmux-storage/ # SQLite + encryption + OS keychain
│ └── mcpmux-mcp/ # MCP protocol
├── packages/ui/ # Shared UI components
└── tests/ # Unit, integration, E2E tests</details>
See CONTRIBUTING.md for guidelines.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.