English | 中文
One local proxy that connects MCP servers and AI clients.
Configuring the same MCP servers across multiple clients is repetitive, token-costly, and hard to observe. MCPMate proxies MCP servers, syncs client configs, trims capabilities by profile, and logs activity.
This is not a brand-new project. I started shaping MCPMate around May 2024, paused active development around October, and recently came back to it with a clearer conviction: as the hype around skills- and CLI-shaped workflows settles into a more reflective phase, the long-term, irreplaceable value of MCP becomes easier to see.
MCPMate was previously developed in private and is now being reopened in public. The direction I care about most at this stage is usability: building on MCPMate's earlier profile-based approach for removing redundant capabilities in specific scenarios, and continuing to extend its hosted mode toward a more progressively disclosed Unify mode (last year I referred to it as a more "aggressive hosted" mode, though the name itself felt somewhat awkward). One goal is to bring some of the lower-friction and lower first-token-cost qualities that people appreciated in skills- and CLI-shaped experiences into MCP itself.
- MCPMate
Managing MCP servers across multiple AI tools (Claude Desktop, Cursor, Zed, Codex, and user-defined clients) brings significant challenges:
| · | Pain Point | · | MCPMate Solution |
|---|---|---|---|
| ❌ | The same MCP server needs to be configured repeatedly in each client | ✅ | One proxy, one unified configuration |
| ❌ | Different work scenarios require frequent MCP configuration changes | ✅ | Profile-based instant switching |
| ❌ | Running multiple MCP servers simultaneously consumes system resources | ✅ | Single proxy aggregates all upstream servers |
| ❌ | Configuration errors or security risks are hard to detect | ✅ | Real-time monitoring, structured event logging |
| ❌ | No single place to manage all MCP services | ✅ | Dashboard + REST API + structured logs |
flowchart LR
subgraph mgmt ["🖥️ Management"]
APP["Tauri Desktop"]
DASH["Web Dashboard"]
end
subgraph proxy ["⚙️ MCPMate Proxy"]
direction TB
UP["Upstream Mgmt<br/><small>Connection Pool · OAuth 2.0 + PKCE</small>"]
PROF["Profile Engine<br/><small>Scene · App · Dynamic</small>"]
SEC["Event Logs & Security<br/><small>Structured Logs · redb Cache</small>"]
UP --> PROF --> SEC
end
subgraph cfg ["🔧 Client Config"]
direction TB
DET["Detection & Adapter"]
MODES["Modes<br/><small>Transparent · Hosted · Unify</small>"]
DET --> MODES
end
subgraph clients ["📱 AI Clients"]
C["Cursor · VS Code · Zed · ..."]
end
subgraph upstream ["☁️ Upstream MCP Servers"]
S["uvx · bunx · npx<br/>SSE · Streamable HTTP"]
end
subgraph market ["🛒 MCP Marketplace"]
M["Official Registry"]
end
APP -->|"API"| proxy
DASH -->|"API"| proxy
market -.->|"Install"| proxy
upstream -->|"stdio / HTTP"| proxy
proxy -->|"Bridge / HTTP"| cfg
MODES --> clients
classDef mgmt fill:#e3f2fd,stroke:#1565c0,color:#000
classDef proxy fill:#fff3e0,stroke:#e65100,color:#000
classDef cfg fill:#e8f5e9,stroke:#2e7d32,color:#000
classDef clients fill:#fce4ec,stroke:#c62828,color:#000
classDef upstream fill:#f3e5f5,stroke:#6a1b9a,color:#000
classDef market fill:#fff9c4,stroke:#f9a825,color:#000
class APP,DASH mgmt
class UP,PROF,SEC proxy
class DET,MODES cfg
class C clients
class S upstream
class M market
MCPMate sits between your AI clients and MCP servers as a transparent proxy. The Bridge adapts stdio-only clients (like Claude Desktop) to the HTTP proxy. The Profile Engine controls which tools are visible to which client — scene profiles for workflow context, app profiles for per-client tuning, and dynamic profiles that adjust at runtime. The client configuration layer covers Transparent, Hosted, and Unify management modes.
| Feature | Description |
|---|---|
| Profile-Based Trimming | Organize MCP servers into scene, app, and dynamic profiles. Switch instantly without restarting services. |
| Multi-Client Support | Detect, configure, and manage Claude Desktop, Cursor, Zed, Codex, and user-defined clients. |
| Dynamic Client Governance | Database-first governance with Allow/Deny policies. No static template files. Verified config targets required for writes. |
| Market Integration | Browse and install from the official MCP registry without leaving the app. OAuth-capable servers supported with callback authorization. |
| Runtime Manager | Installs and manages Node.js, uv (Python), and Bun runtimes used by local MCP servers. |
| OAuth 2.0 Upstream (PKCE) | Supports upstream OAuth 2.0 flows with PKCE for Streamable HTTP MCP servers, including metadata discovery and callback handling. |
| Built-in redb Cache | L2 embedded cache for capability snapshots and frequently accessed proxy state. |
| Structured Logs | Dedicated Logs page with cursor-based pagination, actor/target/action metadata, and REST API access. |
| Browser Extension | Chrome/Edge extension detects mcpServers snippets on web pages and imports them via mcpmate://import/server. |
| Tool Inspector | Run quick tool calls against connected servers and inspect structured responses from the console. |
A high-performance MCP proxy server that connects to multiple MCP servers and aggregates their tools. Implements stdio and Streamable HTTP transport protocols (aligned with MCP 2025-06-18 specification). Accepts legacy SSE-configured servers and automatically normalizes them to Streamable HTTP for backward compatibility.
A lightweight bridging component that converts stdio protocol to HTTP transport without modifying the client. Automatically inherits all functions and tools from the HTTP service. Minimal configuration — only requires service address.
Installs and manages runtimes used by local MCP servers. Supports Node.js, uv (Python), and Bun with download progress tracking and automatic environment variable configuration.
runtime install node # Install Node.js for JavaScript MCP servers
runtime install uv # Install uv for Python MCP servers
runtime install bun # Install Bun
runtime list # List installed runtimesCross-platform desktop application built with Tauri 2. Complete graphical interface for managing MCP servers, profiles, and tools with real-time monitoring, intelligent client detection, and system tray integration. macOS is available now; Windows is in beta; Linux is in development.
Structured operational log for MCP proxy activity. Collects MCP operations and management-side changes into a structured timeline with cursor-based pagination, REST APIs, and a dedicated Logs page in the dashboard UI.
Download the latest release for your platform from GitHub Releases.
Note: macOS builds are currently unsigned and not notarized. You may need to right-click and select "Open" to bypass Gatekeeper on first launch. Code signing and notarization are planned for a future release.
Prerequisites: Rust 1.75+, Node.js 18+ or Bun, SQLite 3
1. Clone & Build the Backend
git clone https://github.com/loocor/MCPMate.git
cd MCPMate/backend
cargo build --release2. Start the Proxy
cargo run --releaseThe proxy starts with:
- REST API on
http://localhost:8080 - MCP endpoint on
http://localhost:8000
3. Launch the Dashboard
cd ../board
bun install
bun run devDashboard available at http://localhost:5173.
Coming soon. An online environment will let you explore the dashboard, profiles, and client configuration without a local setup.
| Layer | Technology |
|---|---|
| Proxy / Backend | Rust, tokio, rmcp, SQLite (persistence), redb (L2 capability cache) |
| Dashboard | React, Vite, Zustand, React Query, Radix UI |
| Desktop | Tauri 2, system tray, native notifications |
| Bridge | Rust binary, stdio-to-HTTP conversion |
| Runtime Manager | Multi-runtime (Node.js, uv, Bun) |
| Protocol | MCP 2025-06-18, stdio + Streamable HTTP |
- Integrated mode (desktop) — Tauri bundles backend + dashboard for local all-in-one operation
- Separated mode (core server + UI) — Run backend independently and connect either the web dashboard or desktop shell to that core service
- Client mode flexibility — Managed clients can continue using hosted/transparent workflows while the control plane runs remotely
# Run all checks
./scripts/check
# Start backend + board together
./scripts/dev-allSee AGENTS.md for development guidelines, coding standards, and contribution workflow.
- Account-based configuration backup & restore
- Skills-mode packaged profiles
- Downstream MCP client OAuth authorization management
- Cross-platform release readiness — desktop OS stability, container-based deployment, and Homebrew installation support
Contributions are welcome! Please:
- Read AGENTS.md for development guidelines
- Open an issue to discuss significant changes
- Submit pull requests against the
mainbranch
GNU Affero General Public License v3.0 (AGPL-3.0)
Built with ❤️ by Loocor
