MCPMate MCP Server

MCPMate is a comprehensive Model Context Protocol (MCP) management center designed to address configuration complexity, resource consumption, security risks, and other issues in the MCP ecosystem, providing users with a unified management platform.

Documentation

MCPMate

English | δΈ­ζ–‡

MCPMate dashboard

One local proxy that connects MCP servers and AI clients.

License Platform Rust Node.js MCP Spec


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.

πŸ“‘ Table of Contents

πŸ€” Why 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

πŸ”„ How It Works

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 &amp; Security<br/><small>Structured Logs Β· redb Cache</small>"]
        UP --> PROF --> SEC
    end

    subgraph cfg ["πŸ”§ Client Config"]
        direction TB
        DET["Detection &amp; 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.

πŸš€ Key Features

FeatureDescription
Profile-Based TrimmingOrganize MCP servers into scene, app, and dynamic profiles. Switch instantly without restarting services.
Multi-Client SupportDetect, configure, and manage Claude Desktop, Cursor, Zed, Codex, and user-defined clients.
Dynamic Client GovernanceDatabase-first governance with Allow/Deny policies. No static template files. Verified config targets required for writes.
Market IntegrationBrowse and install from the official MCP registry without leaving the app. OAuth-capable servers supported with callback authorization.
Runtime ManagerInstalls 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 CacheL2 embedded cache for capability snapshots and frequently accessed proxy state.
Structured LogsDedicated Logs page with cursor-based pagination, actor/target/action metadata, and REST API access.
Browser ExtensionChrome/Edge extension detects mcpServers snippets on web pages and imports them via mcpmate://import/server.
Tool InspectorRun quick tool calls against connected servers and inspect structured responses from the console.

πŸ› οΈ Core Components

Proxy

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 the current MCP specification. Accepts legacy SSE-configured servers and automatically normalizes them to Streamable HTTP for backward compatibility.

Bridge

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.

Runtime Manager

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 runtimes

Desktop App

Cross-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, Windows, and Linux desktop builds are currently available as Beta releases.

Logs

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.

⚑ Quick Start

Option A: Download the Desktop App (Recommended)

Download the latest release for your platform from GitHub Releases.

Note: macOS builds are signed and notarized to reduce system security prompts and improve package trust.

Option B: Build from Source

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 --release

2. Start the Proxy

cargo run --release

The 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 dev

Dashboard available at http://localhost:5173.

Option C: Online Demo

Coming soon. An online environment will let you explore the dashboard, profiles, and client configuration without a local setup.

🧰 Tech Stack

LayerTechnology
Proxy / BackendRust, tokio, rmcp, SQLite (persistence), redb (L2 capability cache)
DashboardReact, Vite, Zustand, React Query, Radix UI
DesktopTauri 2, system tray, native notifications
BridgeRust binary, stdio-to-HTTP conversion
Runtime ManagerMulti-runtime (Node.js, uv, Bun)
ProtocolMCP 2025-11-25, stdio + Streamable HTTP

🚒 Deployment Modes

  • 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

πŸ”§ Development

# Run all checks
./scripts/check

# Start backend + board together
./scripts/dev-all

See AGENTS.md for development guidelines, coding standards, and contribution workflow.

πŸ—ΊοΈ Roadmap

  1. Account-based configuration backup & restore
  2. Skills-mode packaged profiles
  3. Downstream MCP client OAuth authorization management
  4. Cross-platform release readiness β€” desktop OS stability, container-based deployment, and Homebrew installation support

🀝 Contributing

Contributions are welcome! Please:

  1. Read AGENTS.md for development guidelines
  2. Open an issue to discuss significant changes
  3. Submit pull requests against the main branch

πŸ“„ License

GNU Affero General Public License v3.0 (AGPL-3.0)


Built with ❀️ by Loocor