MetaMCP – a TypeScript monorepo that aggregates multiple MCP servers behind one unified MCP endpoint with optional middle-wares, auth and a built-in web UI.
https://github.com/metatool-ai/metamcpManaging multiple MCP servers for Claude Desktop, Cursor, or custom agents gets messy fast. You're constantly switching configs, debugging connection issues, and dealing with cold starts. MetaMCP solves this by creating a unified MCP proxy that aggregates all your servers behind one endpoint.
You know the drill: HackerNews MCP for research, GitHub MCP for code analysis, filesystem MCP for local operations, plus whatever custom servers your team built. Each needs its own configuration in Claude Desktop. Each has different startup times. Each fails independently.
Debugging becomes a nightmare when you can't remember which server hosts which tools, and switching between different server combinations means editing JSON configs manually.
MetaMCP acts as infrastructure that sits between your MCP clients and your actual MCP servers. It aggregates multiple servers into namespaces, applies middleware transformations, and exposes everything through a single unified endpoint.
// Instead of managing this mess in Claude Desktop:
{
"mcpServers": {
"hackernews": { "command": "uvx", "args": ["mcp-hn"] },
"github": { "command": "npx", "args": ["-y", "@modelcontextprotocol/server-github"] },
"filesystem": { "command": "npx", "args": ["-y", "@modelcontextprotocol/server-filesystem"] }
}
}
// You get this:
{
"mcpServers": {
"metamcp": { "command": "docker", "args": ["run", "metamcp:latest"] }
}
}
One-Click Server Switching: Save different server combinations as endpoints. Switch from "research mode" (HackerNews + web scraping) to "development mode" (GitHub + filesystem) instantly through the web UI.
Enhanced Debugging: The built-in inspector automatically creates saved configurations for every endpoint you create. No more manually setting up the MCP inspector for each server combination.
Dynamic Tool Management: Toggle servers and individual tools on/off without touching config files. Perfect when you want to limit context for specific tasks.
Middleware Pipeline: Apply transformations across all your servers. The built-in "filter inactive tools" middleware optimizes tool context for LLMs automatically.
MetaMCP is built as a proper TypeScript monorepo with Docker support. The backend runs Express + tRPC to handle MCP proxying, while the Next.js frontend provides the management interface. PostgreSQL handles persistence, and Better Auth secures everything.
The cold start problem that plagues uvx/npx-based MCP servers? MetaMCP handles pre-warming and provides Docker customization to install dependencies upfront.
git clone https://github.com/metatool-ai/metamcp.git
cd metamcp
cp example.env .env
docker compose up --build -d
The web UI loads at localhost:3000 where you can configure servers, create namespaces, and generate MCP endpoints. Each endpoint gets its own URL that you can plug directly into Claude Desktop or any MCP client.
MetaMCP shines when you're building agents that need access to multiple tool sources, when your team shares MCP server configurations, or when you're tired of the operational overhead of managing individual MCP servers.
It's infrastructure that gets out of your way – configure once, use everywhere. The 519 GitHub stars suggest other developers are feeling the same pain you are.
Check out the demo video to see it in action, or dive into the repository to get started.