MetaMCP MCP Server について
MetaMCP MCP Server は、複数の MCP サーバーを一つのエンドポイントにまとめ、ツール、プロンプト、リソースのリクエストを対応する接続先へ振り分けるプロキシです。設定は MetaMCP App から取得し、多数の MCP サーバーを管理する利用者を想定しています。本パッケージは非推奨で、MetaMCP 2.0 のオールインワン構成への移行が案内されています。
主な機能
- 01複数の MCP サーバーを一つのエンドポイントに統合
- 02リクエストを対応するサーバーへ振り分け
- 03stdio、SSE、Streamable HTTP のトランスポート対応
- 04API キーによる MetaMCP API への接続
- 05統合したサーバーの名前空間による分離
活用シーン
- 01Claude Desktop などのクライアントに複数の MCP サーバーを公開
- 02ワークスペースごとの MCP 設定の切り替え
- 03Docker コンテナからホスト上のサービスへの接続
MCP 対応
MCP サーバーとして、統合したツール、プロンプト、リソースをクライアントに公開し、内部では導入済みの各 MCP サーバーに接続します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
MetaMCP MCP サーバー
🚨 非推奨パッケージに関する警告 🚨
このローカルプロキシパッケージは、MetaMCP の 2.0 オールインワンアーキテクチャでは非推奨です。
詳しくは https://github.com/metatool-ai/metamcp をご確認ください。
MetaMCP MCP サーバーは、複数の MCP サーバーを1つにまとめるプロキシサーバーです。MetaMCP App からツール/プロンプト/リソースの設定を取得し、ツール/プロンプト/リソースのリクエストを適切なバックエンドサーバーにルーティングします。
MetaMCP App リポジトリ:https://github.com/metatool-ai/metatool-app
インストール
Smithery 経由でインストールする
Smithery が動作する場合もあります(Windsurf のローカル環境で確認済み)が、MetaMCP は他の MCP をその上で実行する特殊な構成のため、不安定な場合があります。動作しない場合は、手動でのインストールをご検討ください。
Smithery 経由で Claude Desktop 用の MetaMCP MCP サーバーを自動インストールするには:
npx -y @smithery/cli install @metatool-ai/mcp-server-metamcp --client claude
手動インストール
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>"
}
}
}
}
使い方
stdio サーバーとして使用する(デフォルト)
mcp-server-metamcp --metamcp-api-key <your-api-key>
SSE サーバーとして使用する
mcp-server-metamcp --metamcp-api-key <your-api-key> --transport sse --port 12006
SSE トランスポートオプションを指定すると、サーバーは Express.js ウェブサーバーを起動し、/sse エンドポイントで SSE 接続を待ち受け、/messages エンドポイントでメッセージを受け付けます。
Streamable HTTP サーバーとして使用する
mcp-server-metamcp --metamcp-api-key <your-api-key> --transport streamable-http --port 12006
Streamable HTTP トランスポートオプションを指定すると、サーバーは HTTP リクエストを処理する Express.js ウェブサーバーを起動します。ステートレスに動作させるには、--stateless モードを任意で使用できます。
Docker で使用する
Docker コンテナ内でサーバーを実行し、ホストマシン上のサービスに接続する場合は、--use-docker-host オプションを使用すると、localhost の URL を自動的に変換できます。
mcp-server-metamcp --metamcp-api-key <your-api-key> --transport sse --port 12006 --use-docker-host
これにより、localhost または 127.0.0.1 の URL が host.docker.internal に変換され、コンテナからホスト上で実行中のサービスに適切に接続できるようになります。
stderr の処理を設定する
STDIO トランスポートでは、子 MCP プロセスからの stderr の処理方法を制御できます。
# 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>
使用可能な stderr オプション:
ignore(デフォルト):子プロセスからの stderr 出力を無視しますinherit:子プロセスからの stderr を親プロセスに引き継ぎますpipe:処理用に stderr をパイプでキャプチャしますoverlapped:オーバーラップ I/O を使用します(Windows 専用)
コマンドラインオプション
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
環境変数
METAMCP_API_KEY:MetaMCP の API キーMETAMCP_API_BASE_URL:MetaMCP API のベース URLUSE_DOCKER_HOST:"true" に設定すると、Docker との互換性のため、localhost の URL を host.docker.internal に変換しますMETAMCP_STDERR:STDIO トランスポートでの stderr の処理方法(overlapped、pipe、ignore、inherit)。デフォルトは "ignore" です
開発
# Install dependencies
npm install
# Build the application
npm run build
# Watch for changes
npm run watch
主な特徴
- あらゆる MCP クライアントと互換性があります
- マルチワークスペースレイヤーにより、ワンクリックで別の MCP 設定セットに切り替えられます。
- GUI で MCP 設定を動的に更新できます。
- 統合された MCP の名前空間を分離します。
アーキテクチャの概要
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
クレジット
- https://github.com/adamwattis/mcp-proxy-server/ から着想を得て、一部のコードをこのプロジェクト向けにリファクタリングしました。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。