MCP HubMCP Hub
metatool-ai

mcp-server-metamcp

by: metatool-ai

MCP Server MetaMCP manages all your other MCPs in one MCP.

60created 20/02/2025
Visit
management
meta

📌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 MetaMCP
  • METAMCP_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