Skip to content

Commit ee79a8f

Browse files
committed
docs: tighten README copy, add app screenshots
Strip the README down to what matters: problem, fix, 3 steps, features with inline screenshots. Dashboard hero shot, Spaces and Settings as feature callouts. Remove verbose sections and collapse project structure into a <details> block. https://claude.ai/code/session_01W32JdTpYeN92qNrHPgMyVo
1 parent 4991e1d commit ee79a8f

4 files changed

Lines changed: 52 additions & 96 deletions

File tree

README.md

Lines changed: 52 additions & 96 deletions
Original file line numberDiff line numberDiff line change
@@ -5,49 +5,45 @@
55

66
### Configure your MCP servers once. Connect every AI client.
77

8-
McpMux is a desktop app that gives you **one place** to manage all your MCP servers — so you never have to copy-paste server configs across Cursor, Claude Desktop, VS Code, or any other AI client again.
8+
![McpMux Dashboard](docs/screenshots/dashboard.png)
99

1010
---
1111

12-
## Why McpMux?
12+
## The Problem
1313

14-
### The problem: MCP config is per-client
15-
16-
Every AI client that supports MCP has its own configuration file. Want to use a GitHub server, a database server, and a Slack server? You configure all three **separately** in every single client.
14+
Every AI client has its own MCP config file. Same servers, same credentials — duplicated everywhere.
1715

1816
```
19-
Cursor → config.json → github, slack, db servers + credentials
20-
Claude Desktop → config.json → github, slack, db servers + credentials (again)
21-
VS Code → settings.json → github, slack, db servers + credentials (again)
22-
Windsurf → config.json → github, slack, db servers + credentials (again)
17+
Cursor → config.json → github, slack, db + API keys
18+
Claude Desktop → config.json → github, slack, db + API keys (again)
19+
VS Code → settings.json → github, slack, db + API keys (again)
20+
Windsurf → config.json → github, slack, db + API keys (again)
2321
```
2422

25-
Add a new server? Update **every client**. Rotate an API key? Update **every client**. Start a new project with different servers? Reconfigure **everything**.
26-
27-
### The other problem: credentials in plain text
23+
Add a server? **Update every client.** Rotate an API key? **Update every client.** New project? **Reconfigure everything.**
2824

29-
MCP configs store API keys and tokens in **plain JSON files on disk**. No encryption, no access control — just raw secrets sitting in your home directory.
25+
And all those credentials? Sitting in **plain-text JSON files** on disk.
3026

31-
### The fix: configure once, connect everywhere
27+
## The Fix
3228

33-
McpMux runs a local gateway on your machine. You configure your servers and credentials **once** inside McpMux, then point all your AI clients to a single local URL. That's it.
29+
McpMux is a desktop app that runs a local gateway. Configure your servers once, point all clients to one URL.
3430

3531
```
3632
Cursor ─┐
37-
Claude Desktop ─┤──→ McpMux (localhost:9315) ──→ github, slack, db servers
38-
VS Code ─┤ manages all credentials
39-
Windsurf ─┘ one config, one place
33+
Claude Desktop ─┤──→ McpMux (localhost) ──→ all your MCP servers
34+
VS Code ─┤ encrypted credentials
35+
Windsurf ─┘ one config, one place
4036
```
4137

42-
Add a server in McpMux every client has it instantly. No files to edit. No credentials to copy.
38+
Add a server in McpMux and every client has it instantly. No files to edit.
4339

4440
---
4541

4642
## How It Works
4743

48-
**1. Install servers** — Browse the built-in registry or add servers manually.
44+
**1.** Install servers from the built-in registry (or add manually)
4945

50-
**2. Copy one config** — McpMux gives you a single JSON snippet to paste into any AI client:
46+
**2.** Paste one config into your AI clients:
5147

5248
```json
5349
{
@@ -59,131 +55,91 @@ Add a server in McpMux → every client has it instantly. No files to edit. No c
5955
}
6056
```
6157

62-
**3. Done** — Every tool, prompt, and resource from all your servers is now available in every connected client.
58+
**3.** Done. All tools from all servers are available in every client.
6359

64-
When an AI client calls a tool, McpMux routes the request to the right server automatically. OAuth tokens refresh in the background. Credentials stay encrypted in your OS keychain. You don't think about it.
60+
McpMux routes calls to the right server, refreshes OAuth tokens automatically, and keeps credentials encrypted in your OS keychain. You don't think about it.
6561

6662
---
6763

6864
## Features
6965

70-
### One Dashboard for Everything
71-
See all your servers, their connection status, available tools, and connected clients in one place. Install new servers from the registry with a click. View logs when something goes wrong.
66+
**Spaces** — Isolated workspaces with their own servers and credentials. Switch between "Work" and "Personal" in one click.
67+
68+
![Workspaces](docs/screenshots/spaces.png)
69+
70+
**Encrypted Credentials** — Stored in your OS keychain (macOS Keychain, Windows Credential Manager, Linux Secret Service) with AES-256-GCM encryption. Not in plain-text JSON files.
7271

73-
### Spaces — Switch Contexts Instantly
74-
Working on multiple projects that need different servers? Create **Spaces** like "Work", "Personal", or "Client Project". Each Space has its own servers, credentials, and permissions. Switch between them in the sidebar — your AI clients follow automatically.
72+
**OAuth That Just Works** — Handles the full OAuth 2.1 + PKCE flow for remote servers. Automatic token refresh. Authenticate once and forget about it.
7573

76-
### Credentials That Aren't in Plain Text
77-
McpMux stores credentials in your **OS keychain** (macOS Keychain, Windows Credential Manager, Linux Secret Service). Database fields are encrypted with AES-256-GCM. No more API keys sitting in plain JSON files.
74+
**Server Registry** — Browse, search, and one-click install MCP servers. Cached for offline use.
7875

79-
### OAuth That Just Works
80-
Remote MCP servers that require OAuth? McpMux handles the entire flow — browser-based login, token storage, and **automatic refresh** when tokens expire. You authenticate once and forget about it.
76+
**Per-Client Permissions** — Control which tools each AI client can access with Feature Sets.
8177

82-
### Server Registry
83-
Browse, search, and install MCP servers from the built-in registry. Filter by category, see what tools each server provides, and install with one click. Servers you've used before are cached for offline access.
78+
**System Tray** — Runs in the background, starts with your OS. Always available.
8479

85-
### Control What Each Client Can Access
86-
Not every AI client should have access to every tool. Create **Feature Sets** — permission bundles that control which tools, prompts, and resources a client can see. Give Cursor full access but limit VS Code to read-only tools. It's up to you.
80+
![Settings](docs/screenshots/settings.png)
8781

88-
### Runs in the Background
89-
McpMux sits in your system tray and starts automatically with your OS. The gateway is always running, so your AI clients always have their tools available.
82+
**Auto-Updates** — Signed updates delivered automatically.
9083

9184
---
9285

9386
## Security
9487

95-
MCP's default approach is plain-text JSON config files with raw credentials. McpMux replaces that with proper security:
88+
MCP defaults to plain-text config files with raw API keys. McpMux replaces that with:
9689

97-
- **OS Keychain**Encryption keys and secrets stored in your platform's native keychain, not on disk
98-
- **AES-256-GCM Encryption**Sensitive database fields are encrypted with authenticated encryption
99-
- **Memory Zeroization**Secrets are wiped from memory after use
100-
- **OAuth 2.1 + PKCE**Industry-standard auth flow for remote servers with automatic token refresh
101-
- **Local-Only Gateway**Binds to `127.0.0.1` only — nothing is exposed to the network
102-
- **Per-Client Permissions**Access keys and Feature Sets control what each client can do
103-
- **Sanitized Logs**Tokens and secrets never appear in log files
90+
- **OS Keychain** — secrets in platform-native secure storage, not on disk
91+
- **AES-256-GCM**field-level database encryption
92+
- **OAuth 2.1 + PKCE**standard auth with automatic token refresh
93+
- **Local-only gateway**binds to `127.0.0.1`, nothing exposed to the network
94+
- **Per-client access keys**granular permissions per AI client
95+
- **Sanitized logs**tokens never appear in log files
96+
- **Memory zeroization** — secrets wiped from memory after use
10497

105-
All MCP traffic stays on your machine. McpMux never routes tool calls through external services. Cloud sync (optional) only covers configuration metadata — never credentials or MCP payloads.
98+
All MCP traffic stays on your machine. Cloud sync (optional) only covers config metadata — never credentials or payloads.
10699

107100
---
108101

109102
## Getting Started
110103

111-
### 1. Download McpMux
112-
113-
Grab the latest release for your platform from the [Releases page](https://github.com/MCP-Mux/mcp-mux/releases):
114-
115-
| Platform | Format |
116-
|----------|--------|
117-
| Windows | MSI installer |
118-
| macOS | DMG |
119-
| Linux | DEB, RPM, AppImage |
120-
121-
### 2. Add Your Servers
104+
**1. [Download McpMux](https://github.com/MCP-Mux/mcp-mux/releases)** — Windows (MSI), macOS (DMG), Linux (DEB/RPM/AppImage)
122105

123-
Open McpMux and head to the **Discover** tab to browse the registry, or add servers manually via **My Servers → Add Server Manually**.
106+
**2. Add servers**Discover tab to browse the registry, or add manually
124107

125-
### 3. Connect Your AI Clients
126-
127-
Copy the gateway config from the Dashboard and paste it into your AI client's MCP settings:
128-
129-
```json
130-
{
131-
"mcpServers": {
132-
"mcpmux": {
133-
"url": "http://localhost:9315/mcp"
134-
}
135-
}
136-
}
137-
```
108+
**3. Paste config** — Copy the snippet from the Dashboard into your AI clients
138109

139110
That's the last config file you'll need to touch.
140111

141112
---
142113

143114
## Development
144115

145-
### Prerequisites
146-
147-
- [Rust](https://rustup.rs/) 1.75+
148-
- [Node.js](https://nodejs.org/) 18+
149-
- [pnpm](https://pnpm.io/) 9+
150-
151-
Linux also needs: `gnome-keyring libsecret-1-dev librsvg2-dev pkg-config`
152-
153-
### Setup
154-
155116
```bash
156-
pnpm setup # First-time: installs all dependencies
117+
pnpm setup # First-time: install dependencies
157118
pnpm dev # Start development
158-
pnpm build # Build for production
119+
pnpm build # Production build
120+
pnpm test # Run all tests
159121
```
160122

161-
### Testing
123+
**Prerequisites:** Rust 1.75+, Node.js 18+, pnpm 9+. Linux also needs `gnome-keyring libsecret-1-dev librsvg2-dev pkg-config`.
162124

163-
```bash
164-
pnpm test # All tests
165-
pnpm test:rust:unit # Rust unit tests
166-
pnpm test:ts # TypeScript tests
167-
pnpm test:e2e:web # E2E tests (all platforms)
168-
```
125+
Built with **Tauri 2** (Rust + React 19), **Axum** for the gateway, **ring** for encryption, **rmcp** for MCP.
169126

170-
### Project Structure
127+
<details>
128+
<summary>Project structure</summary>
171129

172130
```
173131
mcp-mux/
174132
├── apps/desktop/ # Tauri desktop app (React + Rust)
175133
├── crates/
176134
│ ├── mcpmux-core/ # Domain logic
177-
│ ├── mcpmux-gateway/ # Local HTTP gateway, OAuth, routing
135+
│ ├── mcpmux-gateway/ # HTTP gateway, OAuth, routing
178136
│ ├── mcpmux-storage/ # SQLite + encryption + OS keychain
179137
│ └── mcpmux-mcp/ # MCP protocol
180138
├── packages/ui/ # Shared UI components
181-
└── tests/ # Unit, integration, and E2E tests
139+
└── tests/ # Unit, integration, E2E tests
182140
```
183141

184-
Built with **Tauri 2** (Rust + React 19), using **Axum** for the gateway, **ring** for encryption, and **rmcp** for the MCP protocol.
185-
186-
---
142+
</details>
187143

188144
## Contributing
189145

docs/screenshots/dashboard.png

202 KB
Loading

docs/screenshots/settings.png

215 KB
Loading

docs/screenshots/spaces.png

157 KB
Loading

0 commit comments

Comments
 (0)