Skip to main content
Glama

MetaMCP MCP Server

by metatool-ai

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/resource configurations from MetaMCP App⁠ and routes tool/prompt/resource 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 sometimes it is unstable because MetaMCP is special that it runs other MCPs on top of it. Please consider using manual installation if it doesn't work instead.

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
{ "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 will start an Express.js web server that listens for SSE connections on the /sse endpoint and accepts messages on the /messages endpoint.

Using as a Streamable HTTP server

mcp-server-metamcp --metamcp-api-key <your-api-key> --transport streamable-http --port 12006

With the Streamable HTTP transport option, the server will start an Express.js web server that handles HTTP requests. You can optionally use --stateless mode for stateless operation.

Using with Docker

When running the server inside a Docker container and connecting to services on the host machine, use the --use-docker-host option to automatically transform localhost URLs:

mcp-server-metamcp --metamcp-api-key <your-api-key> --transport sse --port 12006 --use-docker-host

This will transform any localhost or 127.0.0.1 URLs to host.docker.internal, allowing the container to properly connect to services running on the host.

Configuring stderr handling

For STDIO transport, you can control how stderr is handled from child MCP processes:

# Use inherit to see stderr output from child processes mcp-server-metamcp --metamcp-api-key <your-api-key> --stderr inherit # Use pipe to capture stderr (default is ignore) mcp-server-metamcp --metamcp-api-key <your-api-key> --stderr pipe # Or set via environment variable METAMCP_STDERR=inherit mcp-server-metamcp --metamcp-api-key <your-api-key>

Available stderr options:

  • ignore (default): Ignore stderr output from child processes
  • inherit: Pass through stderr from child processes to the parent
  • pipe: Capture stderr in a pipe for processing
  • overlapped: Use overlapped I/O (Windows-specific)

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, sse, or streamable-http) (default: "stdio") --port <port> Port to use for SSE or Streamable HTTP transport, defaults to 12006 (default: "12006") --require-api-auth Require API key in SSE or Streamable HTTP URL path --stateless Use stateless mode for Streamable HTTP transport --use-docker-host Transform localhost URLs to use host.docker.internal (can also be set via USE_DOCKER_HOST env var) --stderr <type> Stderr handling for STDIO transport (overlapped, pipe, ignore, inherit) (default: "ignore") -h, --help display help for command

Environment Variables

  • METAMCP_API_KEY: API key for MetaMCP
  • METAMCP_API_BASE_URL: Base URL for MetaMCP API
  • USE_DOCKER_HOST: When set to "true", transforms localhost URLs to host.docker.internal for Docker compatibility
  • METAMCP_STDERR: Stderr handling for STDIO transport (overlapped, pipe, ignore, inherit). Defaults to "ignore"

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 you to switch to another set of MCP configs within one-click.
  • GUI dynamic updates of MCP configs.
  • Namespace isolation for joined MCPs.

Architecture Overview

Credits

You must be authenticated.

A
security – no known vulnerabilities
A
license - permissive license
A
quality - confirmed to work

remote-capable server

The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.

A proxy server that unifies multiple MCP servers, enabling seamless tool, prompt, and resource management via the MetaMCP App.

  1. Installation
    1. Installing via Smithery
    2. Manual Installation
  2. Usage
    1. Using as a stdio server (default)
    2. Using as an SSE server
    3. Using as a Streamable HTTP server
    4. Using with Docker
    5. Configuring stderr handling
    6. Command Line Options
  3. Environment Variables
    1. Development
      1. Highlights
        1. Architecture Overview
          1. Credits

            Related MCP Servers

            • -
              security
              F
              license
              -
              quality
              A configurable MCP server that dynamically loads capabilities from a remote configuration to bridge MCP clients with remote APIs for executing actions, accessing resources, and utilizing prompt templates.
              Last updated -
              1,133
              4
              TypeScript
            • -
              security
              A
              license
              -
              quality
              A middleware server that enables multiple isolated instances of the same MCP servers to coexist independently with unique namespaces and configurations.
              Last updated -
              17
              23
              TypeScript
              MIT License
            • -
              security
              F
              license
              -
              quality
              An MCP server that connects to the Resource Hub, allowing centralized configuration and management of tools and resources across different MCP environments.
              Last updated -
              2
              JavaScript
              • Apple
            • -
              security
              A
              license
              -
              quality
              A dynamic MCP server implementation that automatically loads tools, resources, and prompts from their respective directories, allowing for easy extension and configuration.
              Last updated -
              Python
              MIT License

            View all related MCP servers

            MCP directory API

            We provide all the information about MCP servers via our MCP API.

            curl -X GET 'https://glama.ai/api/mcp/v1/servers/metatool-ai/mcp-server-metamcp'

            If you have feedback or need assistance with the MCP directory API, please join our Discord server