Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Multi MCPSearch for the latest AI news using the Brave Search server"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
multi-mcp
A production-ready MCP proxy server that aggregates multiple backend MCP servers into a single endpoint — with lazy loading, per-tool filtering, and a unified YAML config that doubles as a live control plane.
Why
Most MCP setups require configuring every server individually in every tool (Claude Code, Codex, Cursor, etc.). Each server starts eagerly at boot. You have no easy way to disable specific tools from a server you otherwise want.
multi-mcp solves all three:
One endpoint — configure it once, every tool connects to multi-mcp
Lazy loading — servers only connect when a tool is actually called
Tool control — flip
enabled: falseon any individual tool in a YAML file
Features
Unified YAML config — single file serves as cache, config, and control plane
Startup discovery — connects to every server briefly at first run, caches tool lists, disconnects lazy servers
Lazy loading — lazy servers reconnect on first tool call, auto-disconnect after idle timeout
Always-on servers — stays connected permanently, auto-reconnects if dropped
Per-tool enable/disable — expose exactly the tools you want from each server
Smart refresh — re-discovers tools without overwriting your settings
Stale tool cleanup — tools that disappear from a server and were disabled get pruned automatically
Supports all transports — stdio, SSE, and Streamable HTTP (2025 spec)
Tool namespacing —
server::tool_nameprevents conflicts across serversRuntime HTTP API — add/remove servers without restarting (SSE mode)
Audit logging — JSONL log of every tool call
API key auth — optional Bearer token for SSE mode
Quick Start
Requirements: Python 3.10+, uv
First run — auto-discovers all your servers and writes ~/.config/multi-mcp/servers.yaml:
Or refresh manually to re-discover tools and update the YAML:
Config
On first run, multi-mcp creates ~/.config/multi-mcp/servers.yaml by connecting to every server you've configured, fetching its tool list, then disconnecting. The resulting file looks like:
Tool control rules:
State | Behavior |
| Exposed to AI |
| Hidden — setting is never overwritten by refresh |
Tool disappears from server | Marked |
| Cleaned up on next refresh |
No | All tools pass through (default) |
To disable a tool, just set enabled: false and save. Takes effect on next multi-mcp start.
CLI
Connecting Your AI Tools
Once multi-mcp is running, replace all individual server entries in your tool configs with a single entry:
Claude Code / Cursor / any JSON-based config:
SSE mode (if running as a background service):
Transport Support
multi-mcp connects to backend servers over any transport:
Transport | Backend config | Notes |
stdio |
| Local subprocess |
Streamable HTTP |
| Current MCP spec (POST) |
SSE |
| Legacy SSE (GET), auto-fallback |
For url-based servers, multi-mcp tries Streamable HTTP first and falls back to legacy SSE automatically.
Runtime API (SSE mode)
When running with --transport sse, a management API is available:
Authenticate with Authorization: Bearer <key> (set MULTI_MCP_API_KEY env var to enable).
Architecture
Development
Test coverage: 30 tests across YAML config, merge logic, startup discovery, idle timeout, startup flow, CLI, and reconnect behavior.
Environment Variables
Variable | Description |
| Bearer token for SSE API auth |
| SSE bind host (default: |
| SSE bind port (default: |
| Log level: DEBUG, INFO, WARNING, ERROR |
License
MIT