mcp-server-metamcp
by: metatool-ai
MCP Server MetaMCP manages all your other MCPs in one MCP.
📌Overview
Purpose: The MetaMCP MCP Server acts as a unified proxy server to manage multiple MCP servers, simplifying the routing of tool and resource requests.
Overview: MetaMCP MCP Server fetches configurations from the MetaMCP App and efficiently directs requests to the appropriate underlying MCP servers, providing a seamless user experience in managing various configurations.
Key Features:
-
Multi-Workspace Support: Allow users to quickly switch between different MCP configurations with a single click, enhancing flexibility and user convenience.
-
Dynamic GUI Updates: Provides real-time updates of MCP configurations through a graphical user interface, ensuring users always have the latest information.
-
Namespace Isolation: Ensures that multiple MCPs operate in their isolated environments, preventing configuration conflicts and maintaining system integrity.
MetaMCP MCP Server
https://metamcp.com: The One MCP to manage all your MCPs
MetaMCP MCP Server is a proxy server that joins multiple MCP servers into one. It fetches tool, prompt, and resource configurations from MetaMCP App and routes requests to the correct underlying server.
MetaMCP App repo: https://github.com/metatool-ai/metatool-app
Installation
Installing via Smithery
Sometimes Smithery works (confirmed in Windsurf locally) but can be unstable because MetaMCP runs other MCPs on top of it. Consider using manual installation if it doesn't work.
To install MetaMCP MCP Server for Claude Desktop automatically via Smithery:
npx -y @smithery/cli install @metatool-ai/mcp-server-metamcp --client claude
Manual Installation
export METAMCP_API_KEY=<env>
npx -y @metamcp/mcp-server-metamcp@latest
Example configuration:
{
"mcpServers": {
"MetaMCP": {
"command": "npx",
"args": ["-y", "@metamcp/mcp-server-metamcp@latest"],
"env": {
"METAMCP_API_KEY": "<your api key>"
}
}
}
}
Usage
Using as a stdio server (default)
mcp-server-metamcp --metamcp-api-key <your-api-key>
Using as an SSE server
mcp-server-metamcp --metamcp-api-key <your-api-key> --transport sse --port 12006
With the SSE transport option, the server starts an Express.js web server that listens for SSE connections on the /sse
endpoint and accepts messages on the /messages
endpoint.
Command Line Options
Options:
--metamcp-api-key <key> API key for MetaMCP (can also be set via METAMCP_API_KEY env var)
--metamcp-api-base-url <url> Base URL for MetaMCP API (can also be set via METAMCP_API_BASE_URL env var)
--report Fetch all MCPs, initialize clients, and report tools to MetaMCP API
--transport <type> Transport type to use (stdio or sse) (default: "stdio")
--port <port> Port to use for SSE transport (default: "12006")
-h, --help display help for command
Environment Variables
METAMCP_API_KEY
: API key for MetaMCPMETAMCP_API_BASE_URL
: Base URL for MetaMCP API
Development
# Install dependencies
npm install
# Build the application
npm run build
# Watch for changes
npm run watch
Highlights
- Compatible with ANY MCP Client
- Multi-Workspaces layer enables switching between MCP config sets with one click
- GUI dynamic updates of MCP configs
- Namespace isolation for joined MCPs
Architecture Overview
sequenceDiagram
participant MCPClient as MCP Client (e.g. Claude Desktop)
participant MetaMCP-mcp-server as MetaMCP MCP Server
participant MetaMCPApp as MetaMCP App
participant MCPServers as Installed MCP Servers in Metatool App
MCPClient ->> MetaMCP-mcp-server: Request list tools
MetaMCP-mcp-server ->> MetaMCPApp: Get tools configuration & status
MetaMCPApp ->> MetaMCP-mcp-server: Return tools configuration & status
loop For each listed MCP Server
MetaMCP-mcp-server ->> MCPServers: Request list_tools
MCPServers ->> MetaMCP-mcp-server: Return list of tools
end
MetaMCP-mcp-server ->> MetaMCP-mcp-server: Aggregate tool lists
MetaMCP-mcp-server ->> MCPClient: Return aggregated list of tools
MCPClient ->> MetaMCP-mcp-server: Call tool
MetaMCP-mcp-server ->> MCPServers: call_tool to target MCP Server
MCPServers ->> MetaMCP-mcp-server: Return tool response
MetaMCP-mcp-server ->> MCPClient: Return tool response
Credits
- Inspired and refactored from https://github.com/adamwattis/mcp-proxy-server/