MCPゲートウェイは、増えすぎたMCPサーバーを1つの入口に束ねるための仕組みです。「MCPサーバーを1つ試したら便利だった。気づけば5つ、10と増えて、Claude Desktopにも、Cursorにも、Codexにも同じ設定を書き写している」——MCP(Model Context Protocol)を使い込むほど、多くの人がこの地点に到達します。サーバーが増えるほど設定は重複し、どのツールがどこにあるか分からなくなり、アクセス制御は各サーバー任せになる。MCPJungle(mcpjungle/MCPJungle)は、この「散在」という痛みに正面から向き合う、自己ホスト型のMCPゲートウェイです。
MCPJungleを一言でいえば、散らばるMCPサーバーを1本のエンドポイントに束ねる自己ホスト型のMCPゲートウェイです。サーバーを一度だけMCPJungleに登録すれば、あとはClaude・Cursor・Codex・自作エージェントが、たった1つの入口を通じてすべてのツールを発見・実行できます。GitHubスター1,161・MPL-2.0ライセンスのこのGo製バイナリを、公式リポジトリと実際に手元で立てた検証結果の両面から読み解きます。
MCPそのものの全体像を先に押さえたい方は、まず MCPサーバーの作り方2026年完全ガイド:TypeScript・Python両対応チュートリアル を参照してください。本記事はその応用編にあたる「複数のMCPサーバーをどう一元管理するか」に絞った解説です。
- ・課題:MCPサーバーが増えると、クライアント毎の設定重複・ツールの散在・アクセス制御の欠落という運用負債が積み上がる。
- ・解決:MCPJungleは散らばるサーバーを1つの認証済みエンドポイントに登録し、Claude・Cursor・Codexが単一ゲートウェイ経由で発見・実行・制御できるようにする。
- ・正体:Go言語の単一バイナリで動く自己ホスト型のゲートウェイ兼レジストリ。個人ローカルからチーム共有基盤までスケールする。
- ・実測:手元で立てたところ起動は1秒未満、2つの上流サーバーを登録して5ツールを自動発見、Tool Groupで公開を5→2に絞れた。
- ・判定:MPL-2.0(改変時のみファイル単位で開示)・pre-1.0(0.4.5)・直近コミット約2か月前=バス係数は正直に低い。
まずは、実際に立てたMCPJungleのダッシュボードを見てください。これが本記事の主題そのものです。2つのリモートMCPサーバー(deepwiki・context7)を登録し、合計5つのツールが1つの管理画面に束ねられています。
MCPJungleとは——散らばるMCPサーバーを束ねるMCPゲートウェイ
MCPJungleは、開発者とチームのための自己ホスト型MCPゲートウェイです。公式READMEの表現を借りれば「Run all your MCP servers behind one endpoint(すべてのMCPサーバーを1つのエンドポイント背後で動かす)」——これがコンセプトの全てを言い表しています。
MCPは強力なプロトコルですが、サーバーの数が増えると管理はすぐに煩雑になります。MCPJungleは、その煩雑さを吸収する単一の制御点(single control point)として振る舞います。具体的には次の役割を担います。
・レジストリ:どのMCPサーバーが存在し、どんなツール・プロンプト・リソースを提供するかを1か所で登録・追跡する
・ゲートウェイ:クライアントからのツール呼び出しを受け取り、適切な上流サーバーへ中継する。クライアントはMCPJungleの1エンドポイントだけを知っていればよい
・制御レイヤー:ツールの有効化/無効化、公開範囲の限定(Tool Groups)、アクセス制御、可観測性といった「運用のための機能」を後付けで載せる
アーキテクチャはClient-Server型で、mcpjungleという1つのバイナリがServer(レジストリ+ゲートウェイ本体)とClient(CLI)の両方を兼ねます。サーバーはstreamable HTTPトランスポートで/mcpエンドポイントを公開し、既定ではポート8080で待ち受けます。実装はGo言語で、依存を抱え込まない単一バイナリとして配布されるのが大きな特徴です。ライセンスはMPL-2.0、作成は2025年5月で、21人のコントリビューター・52リリースを重ねています。
同じMCPクラスタでは、AWS公式のプロキシを扱った aws/mcp-proxy-for-aws解説|SigV4を肩代わりしAWS上MCPサーバに繋ぐ公式プロキシ も、接続の中継という点で近いテーマです。MCPJungleは1対1の中継ではなく、多数のサーバーを束ねてレジストリ化する点が異なります。
なぜMCPゲートウェイが必要なのか——「散在」という痛み
MCPJungleが解決するのは、ひとことで言えば散在(scatter)です。公式READMEは、ゲートウェイが無い状態で起きる問題を明快に列挙しています。
・🔌 クライアント毎に個別のMCP設定が要る:Claude Desktop・Cursor・Codex…と、同じサーバー設定を何度も書き写す
・🧩 ツール・プロンプト・リソースが各サーバーに散らばる:全体像を一覧できない
・🔐 アクセス制御が重複するか、そもそも無い:どのクライアントが何を呼べるかを個別管理できない
・👥 チームで使えるツールの共有ビューが無い:メンバー間で「今使えるMCPツール」を共有できない
・🛠️ ローカル構成の再現が難しい:新しいマシンで同じ環境を組み直すのが面倒
これらはどれも、MCPを「便利だから」と個別に足していった先に必ず現れる負債です。1つ2つなら手作業で回りますが、5つ10と増えた途端に破綻します。
具体例で考えてみましょう。あなたがfilesystem・github・context7・deepwiki・社内APIの5つのMCPサーバーを使っているとします。ゲートウェイ無しなら、Claude Desktopの設定ファイルにこの5つを書き、Cursorの設定にも同じ5つを書き、Codexにも書く——合計15箇所のメンテナンスが発生します。あるサーバーのURLやトークンが変われば、3クライアント分を手で直す必要があります。さらに「このプロジェクトではgithubツールだけ使わせたい」といった制御は、クライアント側の設定を1つずつ削るしかありません。MCPJungleを挟めば、登録は5サーバーぶん1回、各クライアントが知るのはエンドポイント1つ、公開範囲の調整はゲートウェイ側で完結します。この「15箇所→1箇所」の差が、サーバーが増えるほど効いてくるわけです。
MCPJungleは、この散在を1つの制御点に集約することで解消します。クライアントが繋ぐ先は常にMCPJungleの単一エンドポイント。登録も管理も1か所。ツール・プロンプト・リソースの発見は統一され、Tool Groupsで「このクライアントにはこのツールだけ見せる」といった絞り込みもできます。共有デプロイ向けには、アクセス制御と可観測性のフックも用意されています。
重要なのは、小さく始めて大きく育てられる設計だという点です。まず個人のローカルで自分のMCP設定を綺麗に保つために使い、必要になったらチームの共有インフラ(中央集権的な発見・アクセス制御・可観測性)へと段階的に拡張できます。いきなり大掛かりな基盤を組む必要はありません。
アーキテクチャと仕組み——クライアントは1本だけ繋ぐ
MCPJungleの設計を理解する鍵は「クライアントはMCPJungleだけを知り、上流のMCPサーバー群はゲートウェイが吸収する」という一点です。
ツール呼び出しが実際にどう流れるかを、シーケンスで追ってみます。
(Claude/Cursor) participant J as MCPJungle
:8080/mcp participant U as 上流MCPサーバー
(deepwiki等) C->>J: ツール一覧を要求 J-->>C: 登録済み全ツールを統一して返す C->>J: deepwiki__read_wiki_structure を呼ぶ J->>U: 対応する上流サーバーへ中継 U-->>J: 実行結果 J-->>C: 結果を返す
ここで押さえておきたい設計上のポイントが3つあります。
1. 正規化されたツール名(canonical name)。MCPJungle配下のツールは<サーバー名>__<ツール名>という正規名で参照します。サーバー名とツール名はダブルアンダースコア__で区切られます。たとえばgithubサーバーのgit_commitツールはgithub__git_commitとなり、名前の衝突を避けつつどのサーバー由来かが一目で分かります。
2. トランスポートの対応。上流サーバーはStreamable HTTPとSTDIOの両トランスポートに対応します(SSEも存在しますが公式は「まだ成熟していない」と注記)。STDIO型(npxやuvxで起動するローカルサーバー)を束ねたい場合は、Dockerのstdioタグ付きイメージを使うのが推奨です。
3. Cold-startとステートフル接続。既定ではツール呼び出しごとに上流サーバーへ新規接続を張り、完了後に閉じます(stateless)。これはクリーンですが、STDIOサーバーのように起動に数秒かかる場合はレイテンシになります。そこでsession_modeをstatefulにすると初回接続を再利用し、cold-startのオーバーヘッドを避けられます。接続はMCPJungle停止・サーバー登録解除・アイドルタイムアウト時にのみ閉じられます。公式は「可能な限りstateless(既定)を使うこと」を推奨しており、statefulは起動の重いサーバーへの限定的な最適化と位置づけられています。
データの保存とデプロイ——SQLiteからPostgresへ
MCPJungleサーバーは状態(登録済みサーバー・グループ・トークンなど)をデータベースに持ちます。既定では作業ディレクトリにmcpjungle.dbというSQLiteファイルを作るだけで、ローカルで試すぶんにはこれで十分です(このファイルを消すと登録データは全て失われます)。より本格的な運用では、環境変数DATABASE_URLでPostgreSQLのDSNを渡し、別立てのPostgresクラスタに状態を預けるのが推奨構成です。
配布形態も運用に直結します。公式のDockerイメージは「最小ベースイメージ+mcpjungleバイナリ」だけの軽量版で、本番デプロイに向きます。一方、npxやuvxで起動するSTDIO型サーバーを束ねたい場合は、それらのランタイムを同梱したstdioタグ付きイメージを使います。こちらは大きくなりますが、ローカルでSTDIOサーバーを扱うなら便利です。個人利用はdocker compose up -d(docker-compose.yaml)、組織の共有デプロイはdocker-compose.prod.yaml(enterpriseモード既定)という2つのcompose定義が用意されています。なお標準イメージにはシェルが含まれないため、コンテナ内でCLIを叩くときはdocker exec -it <container> /mcpjungleのようにバイナリを直接実行します。
実際に立てて動かした——インストールから登録・実行の実測
ここからは、公式READMEをなぞるだけでなく、macOSで実際にMCPJungle v0.4.5を立てて操作した結果を載せます。基盤コンポーネントを採用するかは「本当に動くか」で決まるので、手元の実測こそが最大の判断材料です。
まずインストール。macOSではバイナリがまだNotarize(公証)されていないため、Homebrew経由が必須です(公式が明記)。
# Homebrew でインストール(macOS 推奨)
brew install mcpjungle/mcpjungle/mcpjungle
# バージョン確認
mcpjungle version
サーバーの起動は、ローカル個人利用ならdocker composeが推奨ですが、バイナリを直接動かすこともできます。今回はmcpjungle startで起動し、/healthが200を返すまでを計測したところ、1秒未満で応答しました。Go単一バイナリらしい軽さです。
# サーバーを起動(既定でポート 8080 / SQLite の mcpjungle.db を作成)
mcpjungle start
# 別ターミナルで疎通確認
curl http://localhost:8080/health
# => {"status":"ok"}
次に、上流のリモートMCPサーバーを登録します。ここでは公開・認証不要のdeepwikiとcontext7を登録しました。登録すると即座にツールがロードされ、ゲートウェイ配下で使えるようになります。
登録・一覧・実行の一連は、次のコマンドです。invokeはゲートウェイ越しにツールをCLIから直接叩けるため、クライアントを繋ぐ前の動作確認に便利でした。
# ① リモートMCPサーバーを登録
mcpjungle register --name deepwiki --url https://mcp.deepwiki.com/mcp
# ② ゲートウェイ配下の全ツールを一覧
mcpjungle list tools
# ③ ゲートウェイ越しにツールを実行
mcpjungle invoke deepwiki__read_wiki_structure --input '{"repoName": "mcpjungle/MCPJungle"}'
結果として、2サーバーで5ツール(deepwiki__ask_questionなど3つ+context7__resolve-library-idなど2つ)が発見され、invokeもおよそ1秒で応答が返りました。以下が今回の検証で得た実測ハイライトです。
最後にClaude Desktopから繋ぐ設定です。クライアント側はmcp-remoteでMCPJungleの単一エンドポイントを指すだけで、上流サーバーの詳細を一切知る必要がありません。
{
"mcpServers": {
"mcpjungle": {
"command": "npx",
"args": ["mcp-remote", "http://localhost:8080/mcp", "--allow-http"]
}
}
}
CursorやCopilotの場合は、commandではなくurlにhttp://localhost:8080/mcpを指定する形になります。いずれも「繋ぎ先はMCPJungle1つだけ」という体験は共通です。
STDIO型サーバーの登録と環境変数の扱い
上の例はリモート(Streamable HTTP)サーバーでしたが、npxやuvxで起動するローカルのSTDIO型サーバーも登録できます。この場合はコマンドラインではなくJSON設定ファイルを渡します。たとえばファイルシステムMCPサーバーなら、次のような設定をfilesystem.jsonとして用意し、mcpjungle register -c ./filesystem.jsonで登録します。
{
"name": "filesystem",
"transport": "stdio",
"description": "filesystem mcp server",
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "."]
}
設定ファイルでは、文字列値に${VAR_NAME}形式のプレースホルダを書くと、CLIプロセスの環境変数で置き換えられます。APIトークンやワークスペースIDを設定ファイルに直書きせず、環境変数から注入できるということです。これはbearer_tokenやカスタムヘッダーにも効くため、SaaS型MCPサーバーの認証情報を安全に扱ううえで便利でした。不要になったサーバーはmcpjungle deregister <名前>で外せば、そのツールはクライアントから即座に見えなくなります。
なお、MCPJungleをDocker内で動かしてSTDIOのファイルシステムサーバーを使う場合は、ホストのディレクトリをコンテナにマウントする追加設定が要ります(既定のdocker-compose.yamlはカレントディレクトリを/hostとしてマウントするので、args側も/hostを指定します)。ローカルでSTDIOサーバーを多用するなら、前述のstdioタグ付きイメージとあわせて押さえておくとハマりにくいです。
Tool Groups・アクセス制御・可観測性——個人からチームへ
MCPJungleが単なる「まとめプロキシ」に留まらないのは、運用のための機能を備えているからです。とくに実務で効くのが次の3つです。
Tool Groups——見せるツールを絞る
サーバーを増やすほど、ゲートウェイ配下のツール総数は膨らみます。MCPクライアントが数百のツールに晒されると、性能が落ちることがあります。Tool Groupsは、全ツールの中から特定のサブセットだけを公開する仕組みです。グループを作ると専用のエンドポイント(/v0/groups/<名前>/mcp)が発行され、クライアントはそのグループ内のツールしか見えなくなります。
今回の検証でも、5ツールのうち2つだけを含むclaude-toolsグループを作成し、専用エンドポイントが払い出されることを確認しました。含めるツールは、個別指定(included_tools)・サーバー丸ごと(included_servers)・除外(excluded_tools)を組み合わせて柔軟に定義できます。
{
"name": "claude-tools",
"description": "Claude Desktop に見せる最小ツールセット",
"included_tools": ["deepwiki__ask_question", "context7__resolve-library-id"]
}
Tool Groupsが効くのは「クライアントに見せるツールを絞りたい」ときです。MCPクライアントは接続時に全ツールのスキーマを読み込むため、数百のツールが並ぶとプロンプトが肥大化し、モデルがツール選択を誤りやすくなります。用途別にグループを切り、Claude用・Cursor用・特定プロジェクト用と別々のエンドポイントを割り当てれば、各クライアントは自分に必要な数個のツールだけを見ます。ただし現時点では、グループにプロンプトを含められない・既存グループを更新できない(削除して作り直す)といった制約がある点は把握しておきましょう。
ツールの有効化/無効化とプロンプト
グループとは別に、MCPJungleは個々のツールやサーバーをグローバルに有効化/無効化できます。mcpjungle disable tool context7__query-docsのように特定ツールだけを止めたり、mcpjungle disable server context7でサーバー丸ごと(全ツール・プロンプト)を止めたりできます。無効化したツールはゲートウェイやTool Groups経由では見えなくなりますが、CLI(HTTP API)からは引き続き管理できるため、運用者が状態を制御しやすい設計です。新しく登録したサーバーのツールは既定で全て有効になります。
MCPのプロンプトにも対応しています。上流サーバーがプロンプトを提供していれば、登録時にMCPJungleへ取り込まれ、mcpjungle list prompts --server <名前>で一覧、mcpjungle get prompt "<名前>" --arg key=valueで引数付きで取得できます。ツールだけでなくプロンプトも一元管理の対象になっているわけです。
development と enterprise の2モード
MCPJungleは動作モードで機能セットが変わります。個人ローカルはdevelopment、組織の共有デプロイはenterpriseが推奨です。
| 観点 | development(既定) | enterprise |
|---|---|---|
| 想定用途 | 個人・ローカル利用 | 組織・複数ユーザー共有 |
| アクセス制御(ACL) | 全クライアントが全サーバーにアクセス可 | クライアント毎に許可サーバーを明示指定 |
| 認証 | なし | admin/userアカウント+APIトークン |
| OpenTelemetry | 既定オフ(OTEL_ENABLED=trueで有効化) |
既定オン |
| 初期化 | 不要 | init-serverでadmin作成が必須 |
アクセス制御と可観測性
enterpriseモードでは、「どのMCPクライアントがどのMCPサーバーにアクセスできるか」を制御できます。既定ではどのクライアントもアクセス不可で、明示的に許可(--allow "calculator, github"のように)したサーバーだけが使えます。たとえばmcpjungle create mcp-client cursor-local --allow "calculator, github"を実行すると、cursor-localというクライアントが作られ、そのクライアント専用のアクセストークンが払い出されます。クライアント(Cursorなど)はこのトークンをAuthorization: Bearer <token>ヘッダーで送ることで、許可されたサーバーのツールだけを使えます。--allowを付けなければどのサーバーにもアクセスできない、という「既定で拒否」の安全側設計です。
人間の利用者向けには、書き込み権限を持たないuserアカウントも作れます(mcpjungle create user bob)。adminはサーバーの登録・削除といった管理操作ができ、userはツールの閲覧・利用に限定される、という権限分離です。可観測性については、Prometheus互換のOpenTelemetryメトリクスを/metricsエンドポイントで公開します。共有基盤として運用する際の「誰が何を、どれだけ使っているか」を掴む土台になります。
なお認証まわりでは、上流がSaaS型MCPサーバー(HuggingFaceやStripeなど静的トークンを要求するもの)の場合、登録時に--bearer-tokenでトークンを預けられます。OAuthフローは「近日対応」とされており、現時点では未対応です(後述の制約)。
同じMCPクラスタでワークフロー自動化を扱う n8n MCP|Claude Codeから自然言語でn8nワークフローを構築するMCPサーバー のようなサーバーも、MCPJungleに登録すればアクセス制御や可観測性の傘の下に置けます。
「使えるか」を正直に判定する——MPL-2.0・鮮度・バス係数
ゲートウェイは、いちど中心に据えると差し替えが効きにくい基盤コンポーネントです。だからこそ、採用の可否は機能だけでなくライセンス・鮮度・開発体制まで見て判断すべきです。ここは率直に書きます。
MPL-2.0は、あなたのコードを「侵食」しない
MCPJungleのライセンスはMPL-2.0(Mozilla Public License 2.0)です。MITやApache-2.0に慣れていると身構えるかもしれませんが、ゲートウェイとして使う分には過度に心配は要りません。MPL-2.0はファイル単位の弱いコピーレフトで、義務が生じるのは「MCPJungle自体のソースファイルを改変して配布する」場合に限られます。
| ライセンス | コピーレフトの範囲 | あなたのコードへの影響 |
|---|---|---|
| MIT / Apache-2.0 | なし | なし |
| MPL-2.0(MCPJungle) | ファイル単位(弱) | MCPJungleのソースを改変した場合のみ、その改変ファイルを開示 |
| GPL / AGPL系 | プロジェクト全体(強) | リンク・結合した自作コードにも波及しうる |
つまり、バイナリをそのまま動かす/HTTP・CLI API越しに利用する/自分のMCPサーバーや設定ファイルをMCPJungleに登録する——これらはいずれもあなたのコードに何の制約も課しません。制約が問題になるのは、フォークしてGoのソースそのものを書き換えて再配布するケースだけです。ゲートウェイとしての採用に際しては、MITと実務上ほぼ変わらないと考えて差し支えありません。
鮮度と開発体制——ここが唯一の要注意ポイント
正直に言うと、5項目の判定材料のうち唯一の懸念がここです。本記事の検証時点(2026-07-18)で、最新リリースは0.4.5、直近のコミットは約2か月前(2026-05-20)です。しばらく更新が止まっている状態、いわゆるrelease lullに入っています。
ただし、これを「放棄」と早合点するのは誤りです。以下は確認できた事実です。
・アーカイブされていない:リポジトリは活きており、52リリース・21コントリビューターの実績がある
・コミュニティは動いている:IssueやPull Requestは検証時点でも7月に起票され続けており、利用者が実際に使っている証拠がある(オープンなPRは20件以上)
・pre-1.0である:バージョンは0.4.5で、API・機能は今後変わりうる
・バス係数が低い:コミットの大半が単独メンテナに集中しており(次点コントリビューターとの差が大きい)、実質的にほぼ1人で開発されている
まとめると、MCPJungleは現に使えて採用も進んでいるが、基盤の中心に据えるなら「2か月の停滞・実質ソロ開発・pre-1.0」を織り込むべき、という評価になります。緩和材料もあります。MPL-2.0はフォークを妨げませんし、Go単一バイナリで自己完結しているため外部依存でロックインされにくく、ローカル利用ならSQLite1ファイルで完結します。最悪フォークして自分でメンテする退路が確保されている点は、この種のツールを採用するうえで軽視できない安心材料です。
現時点の制約
公式が「現在の制約」として明示しているのは、OAuthフロー未対応です。上流サーバーの認証は静的トークン(bearer token)には対応していますが、OAuthは開発中とされています。多くのSaaS型MCPサーバーがOAuthを前提にし始めている流れを考えると、ここは採用判断に影響しうるポイントです。加えて、Tool Groupsではプロンプトが未対応・既存グループの更新は不可(削除して作り直す)、enterpriseモードでは標準ユーザーが自分のグループを作れない(adminのみ)といった細かな制約もあります。SSEトランスポートも「存在するが未成熟」の扱いです。いずれも致命的ではありませんが、用途に直結する場合は公式ドキュメント(docs.mcpjungle.com)とIssueで最新状況を確認してください。pre-1.0のため、これらの制約は今後のリリースで解消される可能性があります。
直接接続・他のMCPゲートウェイとの比較
最後に、「そもそもゲートウェイを挟むべきか」という問いに答えます。MCPサーバーへの接続方法を、直接接続・単純なプロキシ(1対1中継)・MCPJungleの3つで比べます。
| 観点 | 直接接続 | 単純なプロキシ | MCPJungle |
|---|---|---|---|
| クライアントの接続先数 | サーバーの数だけ | 中継1つ | 常に1つ |
| 設定の重複 | クライアント毎に発生 | 減るが限定的 | 1か所に集約 |
| ツールの発見 | サーバー個別 | 個別 | 統一探索 |
| 公開ツールの絞り込み | 不可 | 不可 | Tool Groups |
| アクセス制御 | 各サーバー任せ | ほぼ無し | enterpriseで集中管理 |
| 可観測性 | なし | なし | OTelメトリクス(enterprise) |
| 運用コスト | ゼロ | 小 | サーバー1つを運用 |
| 向く規模 | 個人・少数サーバー | 特定用途の中継 | 個人〜チーム・多数サーバー |
判断の目安はシンプルです。MCPサーバーが1〜2個なら、ゲートウェイを挟むメリットは運用コストに見合いません。サーバーが増え、複数クライアントで使い回し、いずれチームで共有する——この方向に進むほど、MCPJungleのような一元管理が効いてきます。とくに「クライアント毎の設定重複」と「見せるツールの絞り込み」の2点に痛みを感じ始めたら、導入を検討する頃合いです。逆に、単一のクライアント(Claude Codeだけ、など)で少数のサーバーを使うだけなら、直接接続のままで十分であり、ゲートウェイの運用コストが純粋な負担になります。自分がどちら側にいるかを、上の比較表で確認してから決めるのが賢明です。なお「自己ホストしたくない・運用したくない」場合は、そもそもゲートウェイという選択肢自体が向きません。MCPJungleは自分でサーバーを1つ立てて維持することが前提の道具である点は、最後に念押ししておきます。
コード解析系のMCPを束ねたい場合は、たとえば Serena MCPの使い方|セマンティック解析でClaude Codeのトークンを削る のようなサーバーをMCPJungleに登録し、Tool Groupsで用途別に切り出す、といった組み合わせも現実的です。
まとめ
MCPJungleは、増えすぎたMCPサーバーを1つのエンドポイントに束ねる自己ホスト型のMCPゲートウェイです。要点を整理します。
・散在の解消:クライアント毎の設定重複・ツールの散在・アクセス制御の欠落を、単一の制御点に集約する
・小さく始めて育つ:個人のローカル(developmentモード+SQLite)から、チームの共有基盤(enterpriseモード+ACL+OTel)まで段階的に拡張できる
・実測で動く:Go単一バイナリで起動1秒未満、登録した2サーバーから5ツールを発見、invokeで実行、Tool Groupで公開を絞れることを手元で確認した
・MPL-2.0は怖くない:ソースを改変しない限り、あなたのコードに制約は及ばない
・唯一の注意点は鮮度:直近コミット約2か月前・実質ソロ開発・pre-1.0。基盤に据えるならこの点を織り込む
MCPサーバーが3つを超え、複数のAIクライアントで同じ設定を書き写し始めたら、それがMCPJungleを試す合図です。まずはbrew installして1台立て、手元のサーバーを2つ登録するところから、その効果を体感してみてください。本記事の実測のとおり、起動から最初のツール実行までは数分もかからず、気に入らなければバイナリとSQLiteファイルを消すだけで元に戻せます。試すコストが小さいのも、この手のツールを評価するうえでは重要な美点です。
参照ソース
・mcpjungle/MCPJungle — GitHub 公式リポジトリ
・MCPJungle 公式ドキュメント(docs.mcpjungle.com)
・Mozilla Public License 2.0(MPL-2.0)原文
・Model Context Protocol 公式仕様