MCP Gateway について
MCP Gateway は Rust で書かれた単一のバイナリで、AI クライアントとそのツールの間に位置します。複数の MCP サーバーと REST API を一つの入口にまとめ、大規模なツールカタログを扱うユーザー向けです。バックエンドのツールは必要なときに検索・呼び出しされるため、全カタログをコンテキストウィンドウに読み込む必要がありません。
主な機能
- 01単一の Rust バイナリ
- 02gateway_search_tools によるオンデマンドのツール検索
- 03gateway_invoke によるバックエンドツールの呼び出し
- 04MCP サーバーと REST API の集約
- 05ツールポイズニングの検証と SHA-256 による能力のピン留め
- 06ホットリロードとサーキットブレーカー
活用シーン
- 01複数の MCP サーバーを一つのゲートウェイ入口にまとめる
- 02ツールが多い場合にエージェントへ公開するツール一覧を減らす
- 03サーバーを書かずに REST API を MCP ツールとして公開する
MCP 対応
MCP ルーターとして、少数の固定されたメタツールを公開し、ツール・リソース・プロンプトのリクエストをバックエンドの MCP サーバーへ転送します。sampling/createMessage などのサーバーからクライアントへのリクエストを、接続中のクライアントへ中継することもできます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
docker run -i --rm ghcr.io/mikkoparkkola/mcp-gateway:3.5.1ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ghcr.io/mikkoparkkola/mcp-gateway:3.5.1stdioツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
MCP ゲートウェイ
AI と必要なすべてのツールをつなぐ、コンテキストウィンドウを圧迫しない単一のゲートウェイです。
MCP Gateway は、AI クライアントとすべてのツールの間に配置される、単一の Rust バイナリです。MCP サーバーと REST API をその背後に接続すると、エージェントにはすべてのバックエンド定義ではなく、9~17 個のツールからなるコンパクトなメタサーフェスが表示されます。バックエンドツールを必要に応じて検出し、呼び出します。小規模な実稼働エージェントのベンチマークでは、この追加の中継によるタスク完了時のトークン削減は確認されませんでした。そのため、価値はカタログ容量に加え、ポリシーとルーティングにあります。トークンが一律に削減されるという主張ではありません。詳しくはベンチマークをご覧ください。

完全なゲートウェイの実行を含め、個人利用および非商用利用は無料です。商用利用には商用ライセンスが必要です。
解決する課題
AI クライアントが接続する MCP ツールはそれぞれ、およそ 150 トークン分のコンテキストを消費します。ツールを使うかどうかにかかわらず、すべてのリクエストに読み込まれます。20 個のサーバーに合計 100 個のツールを接続すると、会話が始まる前に約 15,000 トークンを消費します。さらに、コンテキストの制限によって別のコストが生じます。事前に接続するツールを選び、それ以外を除外しなければならないため、読み込まないと決めたデータにエージェントがアクセスできず、判断の質が低下します。
MCP Gateway は、公開されるツール一覧から完全なカタログを切り離します。エージェントは少数の固定メタツールを読み込み、gateway_search_tools で検索し、gateway_invoke でバックエンドツールを呼び出します。これにより、より大規模なカタログを扱えるようになりますが、追加される検索ステップによって、タスク完了までのトークン数と時間が増える場合があります。
flowchart LR
AI["AI client<br/>(Claude, Cursor, ...)"]
subgraph GW["MCP Gateway (single binary)"]
META["Compact meta-surface<br/>9-17 tools"]
DISC{"Discover on demand<br/>gateway_search_tools<br/>gateway_invoke"}
end
T1["MCP backend<br/>Tavily (stdio)"]
T2["MCP backend<br/>Context7 (http)"]
C1["REST capability<br/>GitHub"]
C2["REST capability<br/>Stripe"]
Cn["110+ capabilities"]
AI -->|"9-17 tool defs"| META
META --> DISC
DISC --> T1
DISC --> T2
DISC --> C1
DISC --> C2
DISC --> Cn
クイックスタート
4 つのコマンド:
brew trust --tap MikkoParkkola/tap # Homebrew 6.0+
brew install MikkoParkkola/tap/mcp-gateway # 1. install
mcp-gateway setup wizard --configure-client # 2. import existing servers + wire up clients
mcp-gateway serve # 3. run
mcp-gateway doctor # 4. verify everything is healthy
これで完了です。AI クライアントがゲートウェイと通信し、ゲートウェイが設定済みのすべてのバックエンドにルーティングします。通常の ~150 個ではなく、合計 11 tools に集約されます。11 個は管理者向けにカウントしたデフォルトの HTTP 設定数で、一般のクライアントには 4 個少なく表示されます。まず、AI クライアントから gateway_search_tools を使って任意のバックエンドツールを探し、gateway_invoke で呼び出してください。
まだインポートするものがありませんか?
mcp-gateway init --with-examplesを実行すると、公開機能を備えた動作可能なgateway.yamlが作成されます。独自のサーバーを追加する前に、ゲートウェイが起動していることを確認できます。
または、AI アシスタントに依頼してください(推奨):
https://github.com/MikkoParkkola/mcp-gateway を読み、mcp-gateway をインストールして、すべての MCP サーバーを 1 つのゲートウェイに集約してください
エージェントがバイナリをインストールし、セットアップウィザードを実行して、既存の MCP サーバーをインポートし、自身の接続を設定します。Claude Code、Cursor、Windsurf、Codex、およびターミナルにアクセスできるあらゆる AI で利用できます。
インストール
| 方法 | コマンド |
|---|---|
| Homebrew(macOS/Linux、推奨) | brew install MikkoParkkola/tap/mcp-gateway |
| Cargo | cargo install mcp-gateway |
| cargo-binstall | cargo binstall mcp-gateway |
| バイナリを直接ダウンロード(Windows x64) | 最新リリースから mcp-gateway-windows-x86_64.exe をダウンロードします |
| Docker | docker run -p 127.0.0.1:39400:39400 -e MCP_GATEWAY_SERVER__ALLOW_UNAUTHENTICATED_NETWORK_BIND=true -v $(pwd)/gateway.container.yaml:/config.yaml:ro ghcr.io/mikkoparkkola/mcp-gateway:latest --config /config.yaml --host 0.0.0.0 --port 39400 |
Docker、npx/uvx バックエンド | 同じコマンドで :latest-full を使用します。デフォルトのイメージには Node も uv も含まれないため、どちらかを呼び出す stdio バックエンドは起動できません。Docker デプロイを参照してください。 |
Linux では、イメージは UID/GID 1001 で実行されます。作業中の設定ファイルの所有者を変更する代わりに、所有者のみがアクセスできるデプロイ用コピーを作成してください:install -m 600 gateway.yaml gateway.container.yaml && sudo chown 1001:1001 gateway.container.yaml。認証情報を含む設定ファイルを全員が読み取れる状態にしないでください。
macOS と Windows では、Docker Desktop のバインドマウントにおける ID の扱いが異なります。
バイナリを直接ダウンロード
# macOS Apple Silicon
curl -L https://github.com/MikkoParkkola/mcp-gateway/releases/latest/download/mcp-gateway-darwin-arm64 -o mcp-gateway && chmod +x mcp-gateway
# macOS Intel
curl -L https://github.com/MikkoParkkola/mcp-gateway/releases/latest/download/mcp-gateway-darwin-x86_64 -o mcp-gateway && chmod +x mcp-gateway
# Linux x86_64
curl -L https://github.com/MikkoParkkola/mcp-gateway/releases/latest/download/mcp-gateway-linux-x86_64 -o mcp-gateway && chmod +x mcp-gateway
# Windows x64 (PowerShell)
Invoke-WebRequest -Uri https://github.com/MikkoParkkola/mcp-gateway/releases/latest/download/mcp-gateway-windows-x86_64.exe -OutFile mcp-gateway.exe
3 つの方法でセットアップ
オプション A:すべてを自動インポート(推奨)
mcp-gateway setup wizard --configure-client
Claude Desktop、Claude Code、Cursor、Zed、Continue.dev、Codex、および実行中の MCP プロセスをスキャンし、gateway.yaml にインポートするサーバーを選択できるようにします。ゲートウェイの設定内容をプレビューし、検出された各クライアントの設定に書き込み、書き込みを検証します。既存のクライアント設定が変更された場合は、バックアップとロールバックのパスを表示します。プロンプトをスキップしてすべてをインポートするには、--yes を追加してください。
オプション B:組み込みレジストリからサーバーを追加
人気の MCP サーバー 48 個が、適切なコマンド、引数、環境変数のテンプレートとともに事前登録されています。mcp-gateway add は claude mcp add および codex mcp add と互換性があります:
mcp-gateway add tavily # known server, fills env vars
mcp-gateway add my-server -- npx -y @some/mcp-server --flag # arbitrary stdio command
mcp-gateway add --url https://mcp.sentry.dev/mcp sentry # HTTP server
mcp-gateway add -e API_KEY=xxx my-server -- npx my-mcp-server
mcp-gateway list で設定済みの内容を確認できます。mcp-gateway remove <name> でサーバーを削除できます。
オプション C:gateway.yaml を手動で作成
スキーマ全体については、env_files、server、auth、meta_mcp、streaming、failsafe、cache、capabilities、backends を網羅した注釈付きの examples/gateway-full.yaml を参照してください。残りのトップレベルセクション(playbooks、security、webhooks、routing_profiles、code_mode、mtls、key_server、agent_auth、runtime、marketplace、control_plane、cost_governance)には、まだ説明文のリファレンスがありません。src/config/mod.rs の Config 構造体が正式な一覧です。最小限の例:
server:
port: 39400
meta_mcp:
enabled: true
backends:
tavily:
# `command` is parsed with host-platform rules: POSIX shlex on unix,
# CommandLineToArgvW on Windows (so `C:\Windows\py.exe …` keeps its
# backslashes; quote paths that contain spaces).
command: "npx -y @anthropic/mcp-server-tavily"
description: "Web search"
env:
TAVILY_API_KEY: "${TAVILY_API_KEY}"
sentry:
http_url: "https://mcp.sentry.dev/mcp"
description: "Sentry issues"
実行と検証
mcp-gateway serve # start the gateway
mcp-gateway doctor # diagnose config, port, env vars, backend health
mcp-gateway doctor --fix # auto-fix issues where possible
serve の実行後、ウェブダッシュボードは http://localhost:39400/ui にあります。
/dashboard のオペレーターダッシュボードには管理者認証情報が必要ですが、ブラウザーはページ遷移時に認証情報を送信できません。そのため、serve はループバックバインド時に、ダッシュボードを開くための使い捨てリンクを出力します。ネットワークバインドされたゲートウェイはリンクを出力せず、代わりにトークンを使って /ui から管理します。ダッシュボードを開くを参照してください。
AI クライアントに接続する(オプション A をスキップした場合)
setup export を実行すると、ゲートウェイのエントリがクライアントの設定ファイルに書き込まれます。クライアントごとに適切なパスが自動検出されます。
mcp-gateway setup export --target all --dry-run # preview without writing
mcp-gateway setup export --target all # write, back up, verify
mcp-gateway setup export --target claude-code # one client
mcp-gateway setup export --target all --watch # regenerate on gateway.yaml changes
mcp-gateway setup export --rollback <backup-file> # restore one client config
既存のクライアントファイルは、変更前にバックアップされます。コマンドは、更新された各クライアントの横に正確なロールバックコマンドを出力します。
| クライアント | 設定パス |
|---|---|
claude-code | ~/.claude.json |
claude-desktop | プラットフォーム固有 |
cursor | .cursor/mcp.json(ワークスペース) |
vs-code-copilot | .vscode/mcp.json(ワークスペース) |
windsurf | ~/.codeium/windsurf/mcp_config.json |
cline | .cline/mcp_servers.json(ワークスペース) |
zed | ~/.config/zed/settings.json |
モード:--mode proxy(HTTP)、--mode stdio(サブプロセス)、--mode auto(ヘルスエンドポイントを確認し、その後フォールバックします)。
手動で編集する場合の JSON スニペット
{
"mcpServers": {
"gateway": {
"type": "http",
"url": "http://localhost:39400/mcp"
}
}
}
MCP Gateway を使う理由
- カタログは拡大し、公開する範囲は縮小します。 エージェントはすべてのバックエンド定義ではなく、固定されたメタサーフェスを読み込みます。チェックイン済みのライブ実行では、どちらの方法でもすべてのタスクを完了しましたが、メタサーフェスを使う方法では入力トークンが 1.2~16.1% 増え、ターンが 1 回追加されました。ベンチマークを参照してください。
- ツール数は無制限で、必要に応じて見つけられます。 予算に収まるサーバーを選ぶ必要はありません。エージェントは必要に応じてツールを検索(
gateway_search_tools)し、呼び出します(gateway_invoke)。 - あらゆる REST API を数分で追加できます。 YAML ファイルを追加するか、
mcp-gateway cap importで OpenAPI 仕様をインポートします。110 以上の機能が標準搭載されています。 - ユーザーごとのバックエンド認証情報。 マルチテナントのバックエンドは、ゲートウェイに長期有効な認証情報を保存せずに、検証済みのエンドユーザー ID を受け取ることができます。マルチテナント IDを参照してください。
- 設計上のセキュリティ。 ツールポイズニング検証機能が、すべてのバックエンドツールの説明をスキャンしてからエージェントに渡します。SHA-256 による機能のピン留めは任意です。ピン留めされていないファイルは読み込まれ、ピン留めされたファイルは不一致があると読み込みを拒否します。OWASP Agentic AI Top 10 の対応状況は、認証ではなく、プロジェクト内での自己評価です。このクレートでは
#![deny(unsafe_code)]を設定しているため、unsafe ブロックには明示的な#[allow]によるオプトインが必要です。mTLS、メッセージ署名、エージェント ID も任意で利用できます。 - セッションを失わずに MCP スタックを入れ替えられます。 AI を接続したまま、バックエンドと設定を約 8ms でホットリロードできます。再起動もコンテキストの消失もありません。
- 本番環境での耐障害性。 サーキットブレーカー、バックオフ付きリトライ、レート制限、ヘルスチェックにより、1 台の不安定なサーバーがツールチェーン全体を停止させるのを防ぎます。
- デュアルプロトコル。 MCP に加え、A2A(エージェント間)トランスポートアダプターを備えているため、同じゲートウェイでツール呼び出しとプロバイダー間のエージェントメッセージをルーティングできます。
MCP Gateway とは何か、何ではないか
MCP Gateway はツールと機能のルーターです。MCP のツール、リソース、プロンプトのトラフィックをバックエンドの MCP サーバーや機能に対応する REST API にルーティングし、sampling/createMessage、elicitation/create、roots/list などの MCP サーバーからクライアントへのリクエストを、既存のセッションを通じて接続済みのクライアントにプロキシできます。
チャット補完や埋め込みのプロキシではありません。バックエンドが sampling/createMessage を要求すると、モデル呼び出しを行うのはゲートウェイではなく、接続済みのクライアントです。OpenAI 互換のプロンプトキャッシュ用ヘルパーがある理由は限られており、LLM API を内部で呼び出すバックエンド向けに、gateway_invoke が prompt_cache_key の動作を維持できるようにするためだけです。この境界は意図的なものです。ここでの価値は、モデルの処理経路に介在することではなく、少数のインターフェースを通じて何百ものツールをルーティングすることです。
すべてのツール定義をすべてのリクエストに読み込むデフォルトの方法と比べると、ゲートウェイは初回の検出ホップと引き換えに、常に一定で小さなコンテキストコストを実現します。一度に1つのサーバーだけを公開する汎用トランスポートブリッジと比べると、整合性チェック、ランキング、ユーザーごとの ID 管理を備えた、1つの名前空間付きインターフェースの背後に複数のバックエンドを集約します。
マルチテナントの ID 管理
メール、メモリ、カレンダーなどのマルチテナントバックエンドが独自の OIDC を実行している場合、通常は「ゲートウェイ」しか認識できないため、ユーザーごとのアクセス制御や監査証跡の生成ができません。mcp-gateway は、設定された3つの方式のいずれかを通じて、検証済みのエンドユーザー ID をバックエンドに伝搬します。短期間のみ有効なゲートウェイ署名済みアサーションの発行、呼び出し元自身のトークンの転送、または OAuth ネイティブのバックエンド向け RFC 8693 トークン交換を実行できます。誰の長期有効な認証情報も保持しません。required とマークされたバックエンドは、検証済みの ID がない場合に共有キーを使ってサービスを提供するのではなく、フェイルクローズします。また、ユーザーごとの結果はキャッシュ内で分離されます。ADR-007、ADR-008、docs/UPGRADING-3.0.md を参照してください。伝搬の全手順、各方式の設定、セーフティ不変条件、2.x からのアップグレードパスについては、v3.1.0 の新機能:バックエンドへのエンドユーザー ID の伝搬を参照してください。
独立したレビュー
- 5つの MCP ホットリロードツールの比較:Ruach Tov Collective による、BPD に基づいた mcp-gateway と再起動に特化した4つの代替製品の比較です。機能マトリックスとアーキテクチャ分析も掲載しています。
- mcp-gateway の詳細解説:機能システム、SHA-256 による整合性のピン留め、v2.5 から v2.9 までの開発過程を解説しています。
この README の定量的な主張は、docs/BENCHMARKS.md と機械可読形式の benchmarks/public_claims.json を出典とし、逸脱があると失敗する CI チェックを設けています。
トークン計算が重要な理由
接続するMCPツール1つあたり、コンテキストのオーバーヘッドとして約150トークンが必要です。20台のサーバーに100個のツールを接続すると、最初のメッセージを送る前に、今回のターンではAIが使わない可能性の高い定義だけで約15,000トークンを消費します。さらに、コンテキストの上限により、接続するツールを選ぶ必要があるため、必要なデータにアクセスできず、エージェントの判断力が低下します。
| ゲートウェイなし | ゲートウェイあり | |
|---|---|---|
| コンテキスト内のツール | すべての定義、すべてのリクエスト | READMEのベンチマークでは11個のメタツール(約1,100トークン) |
| スキーマの占有量 | 約15,000モデル化トークン(100個のツール) | 検出前は約1,100モデル化トークン。タスク完了時のコストではありません |
| 実測タスクコスト | テストしたすべての規模で、直接接続する方式のほうが低コストでした | メタ方式では入力トークンが1.2~16.1%多く、ターンも1回余分に必要でした |
| 実用上のツール数の上限 | コンテキストに制約がある状態で20~50個 | 無制限。必要に応じて検出 |
| 新しいREST APIへの接続 | MCPサーバーを構築(数日) | YAMLファイルを追加するか、OpenAPI仕様をインポート(数分) |
| MCP設定の変更 | AIセッションを再起動して、コンテキストを失います | ゲートウェイを再起動(約8ms)。セッションは維持されます |
| ツールが1つ壊れた場合 | 障害が連鎖します | サーキットブレーカーが障害を隔離します |
ゲートウェイが公開するツールは最小9個、READMEのベンチマークシナリオでは11個で、管理者向けの数です。管理者権限のない呼び出し元には、4個少なく表示されます。基本となる4つの検出ツールは常に固定です。それ以外は、回答に利用できる場合にのみ一覧表示されます。統計情報、コストレポート、プレイブック、プロファイル制御は、それらを支える設定が存在する場合に表示され、WebhookのステータスはWebhookレジストリが接続されている場合に表示されます。Webhookレジストリはstdioトランスポートには存在しません。これらすべてを有効にしたデプロイでは、17個のツールが提供されます。コンテキストを消費するのは、それが役立つ場面だけです。
Code Mode:メタツールセットの代わりに2つのツール
code_mode.enabled: trueを設定すると、tools/listはメタツールセットの代わりに、gateway_searchとgateway_executeの2つだけを返します。それ以外のすべては、この2つを通じて利用します。このモードでは、meta_mcp.surfaced_toolsに指定されたツールは追加されないため、接続されているバックエンドの数にかかわらず、ツール数は2つのままです。Code Modeはデフォルトでオフです。gateway_searchは、デフォルトでL0(ツール名、1行の目的、スコア)を返します。詳細を表示するにはdetail=l1またはdetail=l2を、ランキングの診断情報を表示するにはexplain=trueを渡します。include_schema=trueは非推奨で、L2に対応付けられます。
code_mode:
enabled: true
セキュリティ
N 個の MCP サーバーをエージェントに接続すると、N 個の攻撃対象領域を受け入れることになります。ツールポイズニング、ラグプル、ツールの説明に隠された指示を通じた情報窃取は、仮説ではなく実証された攻撃です。Invariant Labs による解説(MCP Security Notification: Tool Poisoning Attacks)と Simon Willison による要約(MCP has prompt injection security problems)では、脅威モデルが詳しく説明されています。
mcp-gateway は、すべてのバックエンドツールの説明を単一の監査対象のもとに置き、構造的に防御します。
- ツールポイズニング検証器(AX-010)。 すべてのバックエンドツールの説明は、エージェントのコンテキストウィンドウに届く前にスキャンされます。HIGH パターンはフェイルクローズします。
<IMPORTANT>ブロック、~/.ssh/~/.aws/id_rsa/.env//etc/passwd、情報窃取を示すsidenoteの文言、curl .* https?://、情報窃取の文脈でのbase64が対象です。MEDIUM パターンでは警告が表示されます。40 個以上の連続する空白、ゼロ幅文字または双方向オーバーライドの Unicode、過大な説明が対象です。実装:src/validator/rules/tool_poisoning.rs(19 件のテスト)。 - 任意の SHA-256 機能ハッシュピン留め。
mcp-gateway cap pin <file>は、ファイルの正規化ハッシュを示すsha256:行を書き込みます(任意のシェルからgrep -v '^sha256:' capability.yaml | sha256sumを実行すると再現できます)。ピン留めされていないファイルも引き続き読み込まれます。ピン留めされたファイルが一致しなくなった場合、読み込み時および監視イベントのたびにフェイルクローズします。 - ラグプルの検出。 ピン留めされた機能のディスク上の内容が承認後に変更されると、監視機能がそれをアンロードし、
RUG-PULL DETECTEDをログに記録します。オペレーターが再度ピン留めするまで、その機能は隔離されたままです。実装:src/capability/hash.rsおよびsrc/capability/backend.rsのdetect_rug_pulls。 - 一元化された監査対象。 機能 YAML はプレーンテキストのため、差分を確認しやすく、grep で検索でき、PR でレビューできます。エージェントに表示されるのはコンパクトなメタサーフェスだけなので、N 個のサーバーのツールリストによる汚染も、N 個のサーバー分の攻撃対象領域もありません。
詳細な解説、PoC スニペット、ロードマップについては、docs/blog/security-aware-mcp-gateway.md をご覧ください。
- OWASP Agentic AI Top 10(自己評価)。 リポジトリ内では、ゲートウェイ境界におけるすべての ASI リスク 10 項目に対して、制御をマッピングしています。これは認証ではありません。SBOM、リリース署名、稼働中のリモートアテステーション検出、複数ゲートウェイの署名、SQL シンクのデフォルト設定、共謀検出に関する強化作業は、別途管理されています。docs/OWASP_AGENTIC_AI_COMPLIANCE.md をご覧ください。
最近の追加機能
- OpenAPI インポーター。
mcp-gateway cap import <spec-url-or-file>は、OpenAPI 3 の仕様を操作ごとに 1 つの検証済み機能 YAML に変換します。Swagger Petstore の仕様全体から、エンドツーエンドで 19 個の検証済み機能 YAML が生成されます。mcp-gateway cap import https://petstore3.swagger.io/api/v3/openapi.json --output capabilities/ --prefix petstore
src/capability/openapi.rs と tests/openapi_import_tests.rs に、合計 22 件のテストがあります。
アーキテクチャ
flowchart TB
subgraph GW["MCP Gateway (:39400)"]
META["Meta-MCP surface: 9-17 tools<br/>gateway_list_servers · gateway_list_tools<br/>gateway_search_tools · gateway_invoke"]
FS["Failsafes: circuit breaker · retry · rate limit"]
META --> FS
end
FS --> B1["Tavily<br/>(stdio)"]
FS --> B2["Context7<br/>(http)"]
FS --> B3["Pieces<br/>(sse)"]
FS --> B4["REST capabilities<br/>(110+)"]
単一バイナリのゲートウェイです。AI クライアントはコンパクトなメタサーフェスに接続し、ゲートウェイがバックエンドツールを動的に検出してルーティングします。主なモジュール:gateway/(コアルーター、OAuth、ストリーミング、UI)、provider/(MCP/複合/機能)、capability/(検出、検証)、transport/(HTTP、stdio)、security/(ファイアウォール、mTLS、メッセージ署名、エージェント ID、メモリースキャナー)、identity_propagation/、key_server/、cost_accounting/、scheduler/、skills/、tool_profiles/、config_reload/、および a2a/(A2A トランスポートアダプター)。
機能
Web ダッシュボード
/ui に埋め込まれた Web UI:ライブステータス、検索可能なツール、サーバーの正常性、読み取り専用のコントロールプレーンビュー、設定ビューアーを提供します。/dashboard はオペレーターダッシュボードで、管理者の認証情報が必要です。ループバックバインドで実行する場合、ブラウザーはナビゲーションに Authorization ヘッダーを付けられないため、serve は開くための使い捨てリンクを表示します。コスト追跡は /ui#costs で利用できます。すべて同じバイナリとポートから配信され、フロントエンドのビルド手順は不要です。
セキュリティとガバナンス
| 機能 | 説明 | ドキュメント |
|---|---|---|
| 認証 | ベアラートークン、API キー、明示的な管理者キー、クライアントごとのレート制限、オプトイン方式のクライアントごとのサーキットブレーカーに対応しています。認証が無効の場合、HTTP 経由の呼び出し元はすべて匿名で、管理者権限を持ちません。stdio の呼び出し元は、クライアントがプロセスを起動したため、管理者となります | examples/per-client-tool-scopes.yaml |
| クロスサイト保護 | Origin、Host、Sec-Fetch-Site を検証し、Web ページからローカルポートへのアクセスを拒否します。Origin を送信しないクライアントは、その理由だけでは拒否されません。ただし、Host チェックはすべてのリクエストに適用されるため、ゲートウェイが応答しない名前を使って接続するクライアントは、ブラウザーかどうかにかかわらず拒否されます | docs/DEPLOYMENT.md |
| エンドユーザー ID の伝播 | 設定可能な 3 つの方式(identity_propagation 設定)に対応しています:ゲートウェイ署名付きアサーション、クライアントトークンのパススルー、RFC 8693 トークン交換。バックエンドが ID を要求する場合は、フェイルクローズで動作します。ユーザーごとにキャッシュを分離します。ディスパッチ、Code Mode、ダイレクトルートで適用されます。 | docs/adr/ADR-007-identity-propagation.md |
| ユーザーごとの OAuth 分離 | フェイルクローズがデフォルトです(v3.0):ユーザーごとの OAuth ID を必要とするバックエンドは、共有の保存済みトークンを使用するのではなく、ID がないリクエストを拒否します。auth.single_user: true(個人用ゲートウェイ)または oauth.shared_account: true(特定のバックエンド)を設定すると、以前の共有認証情報の動作を選択できます。2.x からアップグレードすると、gateway.yaml のバックアップが作成され、現在のセキュリティ方針について一度だけ通知されます。設定は自動的には変更されません。 | docs/adr/ADR-008-multi-user-oauth-isolation.md、docs/UPGRADING-3.0.md |
| 平文での認証情報送信の拒否 | 認証情報を含む設定(oauth セクション、ID 伝播、注入されたシークレット、名前を問わない静的ヘッダー、または URL 内のユーザー情報やクエリ)を持つバックエンドが、このマシンの外部のホストに平文の http:// で接続する場合、起動せず、設定読み込み時に拒否されます。ループバックは対象外です。そのバックエンドで allow_cleartext_credentials: true を設定すると、リスクを承知のうえでこの露出を許可できます | docs/REMOTE_BACKENDS.md |
| クライアントごとのツールスコープ | glob パターンを使って、API キーごとにツールの許可リストまたは拒否リストを設定できます | examples/per-client-tool-scopes.yaml |
| セキュリティファイアウォール | 認証情報の秘匿、プロンプトインジェクションの検出、シェル/SQL/パストラバーサルのスキャンに対応しています | CHANGELOG |
| コストガバナンス | ツールごと、キーごとに、アラートのしきい値(ログ/通知/ブロック)を設定できる日次予算を設けられます | CHANGELOG |
| セッションのサンドボックス化 | セッションごとの呼び出し回数制限、実行時間上限、バックエンド制限に対応しています | CHANGELOG |
| mTLS | ツール実行における証明書ベースの認証に対応しています | CHANGELOG |
統合と検出
ゲートウェイには、天気、Wikipedia、GitHub、株価、荷物の追跡など、110 種類以上の組み込み機能が付属しています。機能の YAML ファイルは、ファイルの変更後に自動でホットリロードされるため、再起動は不要です。
| 機能 | 説明 |
|---|---|
| 機能システム | YAML を使用して REST API を MCP ツールに変換します。ホットリロードに対応しています。110 種類以上を組み込み。OpenAPI のインポートにも対応しています。 |
| 変換チェーン | 名前空間の設定、フィルタリング、名前の変更、レスポンスの変換を行います。例。 |
| Webhook | GitHub/Linear/Stripe のプッシュイベントを MCP 通知として扱います。ドキュメント。 |
| 自動検出 | 既存のクライアント設定と実行中のプロセスから MCP サーバーを検出します。 |
| ツールの表示 | 価値の高いツールを tools/list に直接固定し、1 ホップで呼び出せるようにします。 |
| セマンティック検索 | すべてのツール名と説明を対象に、TF-IDF でランク付けした検索を行います。 |
| ツールプロファイル | ツールごとの使用状況を分析します。レイテンシ、エラー、傾向をディスクに保存します。 |
| 設定のエクスポート | mcp-gateway config export で、サニタイズ済みの設定を YAML または JSON としてエクスポートします。 |
プロトコルとトランスポート
- MCP バージョン:
initializeハンドシェイクでは、最大 2025-11-25 までネゴシエーションされます。新しい 2026-07-28 リビジョンは、ステートレスなPOST /mcpパスでMCP-Protocol-Versionヘッダーを使用した場合にのみ利用できます。デフォルトで提供され、server.modern_protocol: falseで無効にできます - トランスポート:stdio、Streamable HTTP、SSE、WebSocket
- ホットリロード:機能の YAML ファイルとバックエンドを監視し、リアルタイムで再読み込みします。
server.public_urlとcontrol_plane.role_mappingはリクエストごとに再読み込みされます。それ以外はすべて再起動が必要です - 再読み込みの結果:
gateway_reload_configと/ui/api/reloadはrestart_requiredを報告し、再起動するまで報告を続けます。再読み込みを適用できないすべてのフィールドが対象です。つまり、authを含め、上記の短いリアルタイム再読み込み対象リストにないすべてのフィールドが該当します。ツールエンドポイントが認証情報なしで到達可能になる再読み込みは適用せず、拒否されます - 設定の検出:カレントディレクトリ、
~/.config/mcp-gateway/、/etc/mcp-gateway/からgateway.yamlを自動検出します - 「もしかして?」:レーベンシュタイン距離に基づいてツール名の誤入力を修正します
- ツールのアノテーション:MCP 2025-11-25 の
title、readOnlyHint、destructiveHint、idempotentHint、openWorldHintに対応しています。ゲートウェイのメタツールにはすべてアノテーションが付与され、バックエンドのツールには ADR-003 のハイブリッドなパススルー/補完ポリシーが適用されます - 動的な説明:メタツールの説明に、ツールとサーバーの現在の数を表示します
- トンネルモード:ポートを開かずに、Tailscale または pipenet 経由で公開します
- シェル補完:
mcp-gateway completions bash|zsh|fish - 仕様のプレビュー(オプトイン):フィルタリングされた
tools/list(SEP-1821)、tools/resolve(SEP-1862)、動的な昇格
対応バックエンド
MCP に準拠したサーバーであれば、どれでも動作します。3 種類すべてのトランスポートに対応しています。
| トランスポート | 例 |
|---|---|
| stdio | @anthropic/mcp-server-tavily、@modelcontextprotocol/server-filesystem、@modelcontextprotocol/server-github |
| HTTP | 任意の Streamable HTTP サーバー |
| SSE | Pieces、LangChain、GitMCP(任意の GitHub リポジトリを対象とした、無料のリモートドキュメント検索とコード検索) |
リモート MCP サーバーは URL で接続でき、追加のコードは不要です。GitMCP バックエンドのコメント付き設定例は examples/gateway-full.yaml を、手順を追った解説は docs/REMOTE_BACKENDS.md を参照してください。
公開 MCP ゲートウェイの比較
この表では、内部のロードマップ評価ではなく、ユーザーに公開される動作を比較しています。MCP Gateway の項目は、このリポジトリの公開ドキュメントに基づいています:クイックスタート、デプロイ、OWASP コントロール、TrustCard/CBOM、CatalogTrustLab、適応型ランキング、ID グラント、ADR-007 ID の伝播、ADR-008 複数ユーザーの OAuth 分離。競合製品の項目は、各プロジェクトの公開ドキュメントに基づいています:Docker MCP カタログと Toolkit、MCPJungle README、mcpo README、Supergateway README。
| 比較項目 | MCP Gateway | Docker MCP Gateway / Toolkit | MCPJungle | mcpo / Supergateway |
|---|---|---|---|---|
| 主な役割 | MCP と REST の機能ルーターと、コンパクトなメタサーフェス | Docker 管理のカタログ、プロファイル、コンテナ化された MCP サーバー、ゲートウェイ | 多数の MCP サーバーを 1 つのエンドポイントの背後で実行するセルフホスト可能なゲートウェイ | プロトコルブリッジ:mcpo は MCP から OpenAPI へ、Supergateway は stdio から SSE/WS へ |
| インストール | cargo、Homebrew、VS Code、Cursor、ローカルビルドによるスタンドアロン Rust バイナリ | Docker Desktop/Docker CLI プラグインのワークフロー | セルフホスト可能なゲートウェイのインストールとサーバー登録 | mcpo は Python/uvx/Docker、Supergateway は npm/CLI ブリッジ |
| 設定 | ウィザード、ローカルのスタータープロファイル、サービステンプレート、クライアントへのエクスポート、doctor JSON、バックアップとロールバック | Docker プロファイルとカタログの選択 | サーバーとクライアントの一元管理設定 | 公開するサーバーまたはトランスポートごとのブリッジコマンド/設定 |
| セキュリティ | OWASP Agentic AI マトリックス、ファイアウォール、レスポンス検査、ハッシュ固定された機能、mTLS/署名オプション | Docker カタログで、バージョン管理、来歴、セキュリティ更新を備えた検証済みコンテナイメージ | アクセス制御と可観測性の一元管理 | トランスポート/API の公開レイヤー。セキュリティはブリッジの認証とデプロイ境界に依存 |
| ID と権限付与 | ローカルの ID・権限付与コントラクトと CLI。マルチユーザー OAuth の分離はデフォルトで認証情報に依存しません(ADR-008)。バックエンドが required に設定されている場合、共有認証情報を提供せずフェイルクローズします。署名付きアサーション、呼び出し元トークンのパススルー、または RFC 8693 トークン交換による、バックエンドへのユーザーごとの ID 伝播。OIDC キーサーバーはデフォルトで無効で、委任されたベアラーの受け入れは別途オプトインが必要です。コントロールプレーンのロールマッピングは発行者ごとにスコープされます | Docker/チームの制御は Docker 組織の設定に依存 | 認証済みクライアントとサーバーアクセス制御 | 権限付与エンジンではありません。ID ポリシーは周辺のデプロイ環境に委ねます |
| ランタイム分離 | RuntimeProvider によるポリシー計画と、Docker/Podman/Kubernetes のデプロイ経路 | コンテナ優先の分離を中核となるランタイムモデルとして採用 | ゲートウェイの背後で MCP サーバーを実行、管理 | 任意のツールを分離するのではなく、既存のサーバープロセス/トランスポートをブリッジ |
| 信頼メタデータ | TrustCard/CBOM の生成、検証、TrustLab のエビデンス、来歴スタブ | カタログパッケージにイメージの来歴とセキュリティ更新フローが含まれます | ゲートウェイのインベントリと可観測性を重視 | プロトコルメタデータのブリッジ。信頼メタデータは主要な製品機能ではありません |
| 検出 | Meta-MCP の一覧表示/検索、ShadowRadar による未管理サーバーのインベントリ、機能レジストリ | パッケージ化されたサーバーの Docker MCP Catalog | 設定済みサーバー全体の一元的な検出 | 外部で構成しない限り、一度に 1 つのブリッジされたサーバーを公開 |
| ポリシーとガバナンス | ポリシー、権限付与、監査イベント、読み取り専用のコントロールプレーンタブ/API、エンタープライズ向けエビデンス境界 | Docker 組織/カタログ/プロファイルのポリシーモデル | チーム向けのアクセス制御を一元管理 | 広範なガバナンスプレーンはありません。必要に応じて別のポリシーレイヤーと併用 |
| インポートとブリッジ | ネイティブ MCP バックエンドと REST 機能 YAML、およびプロトコルインポート計画 | Docker パッケージ版 MCP サーバーカタログ | MCP サーバーの集約 | OpenAPI、SSE、WebSocket、stdio との互換性を実現する強力なブリッジ機能 |
| ランキングとルーティング | 安全性を考慮したランキング、説明、コスト/レイテンシー/信頼性/ヘルスのシグナル | カタログ/プロファイルの選択。MCP ツールのランカーではありません | 設定済みサーバーへのゲートウェイレベルのルーティング | トランスポートのルーティング。意味に基づくツールランキングではありません |
| デプロイ | ローカル、チームゲートウェイ、Docker Compose、systemd、launchd、セキュリティ強化済み Helm チャート(非 root、seccomp、読み取り専用 rootfs)、実験的な(v1alpha1)Kubernetes CRD | Docker Desktop、Docker CLI、Docker Hub/カタログのワークフロー | ローカルまたは共有のセルフホスト可能なゲートウェイ | 対象の MCP サーバーの隣で実行する、ローカルまたはリモートのブリッジプロセス |
| ライセンス | 全体を通じて PolyForm Noncommercial 1.0.0。商用利用にはライセンスが必要です | Docker 製品およびリポジトリのライセンスが適用されます | プロジェクトリポジトリのライセンスを参照してください | 各ブリッジのリポジトリライセンスを参照してください |
Anthropic MCP トンネルとの比較
2026-05-19、Anthropic はセルフホスト型サンドボックス(パブリックベータ)とMCP トンネル(リサーチプレビュー)を備えたClaude Managed Agentsをリリースしました。MCP トンネルを使うと、軽量ゲートウェイからの単一のアウトバウンド接続を通じて、Claude エージェントがプライベートネットワーク内の単一の MCP サーバーにアクセスできます。インバウンドのファイアウォールルールやパブリックエンドポイントは不要で、エンドツーエンドの暗号化が適用されます。
mcp-gateway と Anthropic の MCP トンネルは異なるレイヤーで機能し、組み合わせて使えます。トンネルは、プライベートな MCP サーバー1台への到達性を確保するための仕組みです。mcp-gateway は、多数の MCP および REST バックエンドを集約し、ルーティング、機能の名前空間管理、可観測性を提供するレイヤーです。両方をデプロイすると、mcp-gateway がトンネルから公開されるプライベートな MCP サーバーになります。トンネル1本、アウトバウンド接続1つで、その背後にあるすべてのバックエンドにアクセスできます。
| 懸念事項 | Anthropic MCP トンネル | mcp-gateway | 境界 |
|---|---|---|---|
| バックエンドのトポロジー | トンネルごとに MCP サーバー1台を、単一のアウトバウンド接続を通じて公開します(概要) | N 個のバックエンドを集約します。110 以上の REST 機能に加え、コンパクトな 9~17 個のツールメタサーフェスの背後に複数の MCP バックエンドを配置します(src/gateway/、capabilities/*.yaml) | プリミティブが異なります。1 台のサーバーへの到達性と、多数のバックエンドの集約です |
| ツールのルーティング | 不透明なパススルーです。エージェントには、トンネル経由のサーバーが公開するツールリストがそのまま表示されます | 機能の名前空間管理と、動的な gateway_search_tools/gateway_invoke による検出を行います(src/gateway/)。機能ごとに SHA-256 でピン留めします(src/capability/hash.rs) | レイヤーが異なります。トランスポートの到達性と、ツールサーフェスの選定および完全性です |
| 可観測性 | Anthropic 側で、トンネルごとのセッションテレメトリーを取得します | すべてのバックエンド呼び出しにわたって、統一された trace_id とコストを記録します(src/cost_accounting/、src/gateway/) | 対象範囲が異なります。トンネルごとのセッションと、バックエンドをまたぐトレースの相関です |
これらは相互に関連する問題を解決します。Claude Managed Agents からプライベートネットワークにデプロイされた mcp-gateway にアクセスしたいチームは、到達性の確保にトンネルを使い、ファンアウト、機能の適切な管理、OWASP Agentic AI の制御、統一されたコストおよびトレースのテレメトリーに mcp-gateway を使います。
API
| エンドポイント | メソッド | 説明 |
|---|---|---|
/health | GET | バックエンドのステータスを含むヘルスチェックです。認証済みの管理者呼び出し元には、バックエンドごとのランタイムプロファイルのライフサイクル状態も表示されます |
/mcp | POST | メタ MCP モード(動的検出) |
/mcp/{backend} | POST | バックエンドへの直接アクセス |
/ui | GET | ウェブダッシュボード |
/ui/api/control-plane | GET | インベントリー、ランタイムの健全性、判定、RBAC、ライセンス境界を表示する、ローカルコントロールプレーンの読み取り専用ビュー |
/dashboard | GET | オペレーターダッシュボードです。管理者専用です。ループバックバインドで serve が出力する1回限りのリンクから開きます |
/metrics | GET | Prometheus メトリクス(--features metrics を使用) |
パフォーマンス
| 指標 | 値 | 備考 |
|---|---|---|
| 起動時間 | 約 8ms | hyperfine で測定(ベンチマーク) |
| バイナリサイズ | 約 12~13 MB | LTO を使用したリリースビルド(ストリップ済み) |
| ホットパスのマイクロベンチマーク | 含まれています | Criterion スイートでは、レジストリ、解析、キャッシュキー、ファイアウォール、セマンティック検索のホットパスを対象とします |
| エンドツーエンドのレイテンシー | バックエンドに依存 | 合成された単一の数値に頼らず、実際の MCP サーバーと REST API を使って測定してください |
SKILL.md / agentskills.io との互換性
MCP Gateway は Agent Skills と Claude Code の SKILL.md ファイルを取り込み、機能 YAML と並べて検出可能なスキルとして公開できます。これにより、ローカルで作成されたもの、agentskills.io から提供されたもの、GitHub リリースから取得したものを問わず、あらゆる SKILL.md をゲートウェイで利用し、機能に使用されるものと同じメタツールのインターフェースを通じて公開できます。
# Import a local skill directory (auto-discovers SKILL.md + resources/)
mcp-gateway skills import ./skills/my-skill
# Import a single SKILL.md file
mcp-gateway skills import ./path/to/SKILL.md
# Import from an agentskills.io URL
mcp-gateway skills import https://agentskills.io/skills/my-skill/SKILL.md
# List imported skills
mcp-gateway skills list
# Search by name, description, trigger, or keyword
mcp-gateway skills search "gmail"
# Show the full body (including any embedded code blocks)
mcp-gateway skills show gws-gmail-send
# Remove a skill
mcp-gateway skills remove gws-gmail-send
解析される内容
- YAML フロントマター(
name、description、version、effort、allowed-tools、triggers、keywords) - Markdown 本文。フェンス付きの
bash/python/jsonコードブロックは、構造化されたSkillCodeBlockエントリーとして抽出されます - 段階的な開示に対応するリソース:
SKILL.advanced.md、reference.md、README.md、およびスキルディレクトリ内のすべてのresources/*.mdファイル
セキュリティモデル(読み取り専用)
インポートされたスキルはデータとして保存され、実行されません。埋め込まれた bash または python ブロックは解析され、skills show を通じてユーザーとエージェントに公開されますが、MCP Gateway が自動的に実行することはありません。将来のリリースでは、スキルごとのユーザー同意を条件としたオプトイン方式の実行機能が追加される可能性があります。現在、スキルのコマンドを実行するには、skills show からコピーして、ご自身のシェルで実行してください。
レジストリの場所:~/.mcp-gateway/skills.json(MCP_GATEWAY_SKILLS_REGISTRY または --registry で変更できます)。
参考:Anthropic SKILL.md の仕様 と agentskills.io。
ドキュメント
| ドキュメント | 内容 |
|---|---|
| クイックスタート | 2 分で起動するまでの手順 |
| 設定例(注釈付き) | よく使われる設定項目を網羅したコメント付き gateway.yaml |
| OAuth 設定 | Slack と Figma の例を使った OAuth 2.0 の設定 |
| 4.0 へのアップグレード | 発行者ごとの OAuth ストレージ、厳密な env_files の解析、プロトコルの最低要件、単一ライセンスへの変更 |
| 3.0 へのアップグレード | ユーザーごとの OAuth 分離と ID 伝播のアップグレード手順 |
| デプロイガイド | Docker、systemd、TLS/mTLS、スケーリング |
| マルチユーザー設定 | キーサーバー、ポリシースコープ、バックエンドごとの ID 伝播 |
| OpenAPI のインポート | OpenAPI 仕様から機能を生成 |
| Webhook | イベント連携の設定 |
| コミュニティレジストリ | 機能の共有とインストール |
| ベンチマーク | パフォーマンス測定 |
| 変更履歴 | リリース履歴 |
| OWASP Agentic AI コンプライアンス | リスク対応マトリックス |
| ShadowRadar | パッシブなローカル検出と静的なネットワークルールのエクスポート |
| Anthropic MCP トンネルとの比較 | mcp-gateway と Anthropic の MCP トンネルを組み合わせる方法 |
トラブルシューティング
バックエンドに接続できませんか? コマンドを直接テストし(npx -y @anthropic/mcp-server-tavily)、--log-level debug でゲートウェイのログを確認してください。
サーキットブレーカーが開いていますか? MCP クライアントで gateway_list_servers を呼び出してください。バックエンドごとの circuit_breaker が表示され、同梱の設定で動作します。HTTP の場合は、curl -H "Authorization: Bearer $ADMIN_KEY" localhost:39400/health | jq '.backends' を使いますが、これには auth.enabled: true と管理者の認証情報も必要です。認証はデフォルトでオフになっており、オフの間はすべての呼び出し元が匿名となるため、トークンは無視され、ベアラートークンを含むリクエストでも {count, all_healthy} だけが表示されます。しきい値は failsafe.circuit_breaker で調整してください(デフォルトでは連続して5回失敗すると開き、30s 後に再試行します)。
あるツールが応答しなくなり、その後約5分で自動的に復帰しましたか? これはサーキットブレーカーではなく、機能単位のエラーバジェットです。別の仕組みであり、キーも異なります。失敗率が error_budget.capability.threshold を超えた機能は単独で無効になり、そのバックエンドの他の機能は引き続き利用できます。また、error_budget.capability.cooldown(デフォルトは5分)が経過した後、次の呼び出し時に自動的に再有効化されます。現在一時停止中の機能は gateway_list_disabled_capabilities で確認できます。
バックエンド全体がオフラインになり、そのまま復帰しませんか? バックエンド単位のエラーバジェットにより自動停止されています。スライディングウィンドウ内で失敗率が error_budget.threshold を超えました。機能単位の場合と異なり、停止したバックエンドは自動では復帰しません。gateway_revive_server で復旧してください。停止が早すぎた場合は、しきい値またはウィンドウを引き上げてください。gateway_list_servers では、停止したバックエンドは "status": "disabled" と表示されます。これにより、自動停止とブレーカーが開いた状態を見分けられます。
両方のバジェットの各キーは、examples/gateway-full.yaml の error_budget: の下にインラインで記載されています。レート制限されたレスポンス(429、RESOURCE_EXHAUSTED)は、どちらのバジェットからも除外されます。スロットリングされたバックエンドも機能しているため、スロットリングだけでバックエンドが停止したり、機能が無効になったりすることはありません。
ツールが表示されませんか? バックエンドが稼働していることを確認してください(gateway_list_servers)。ツールの一覧は5分間キャッシュされます。
バージョン管理と安定性
このプロジェクトでは、製品のインターフェース、つまり CLI と設定ファイル形式に対してセマンティック バージョニングを採用しています。どちらかに変更があった場合は、それに応じてバージョン管理されます。受け付けられなくなった設定キーや、動作が変わったコマンドは、後方互換性のない変更です。
Rust ライブラリ API は、このインターフェースには含まれません。 型が pub なのは、モジュール化とテストのためであり、サポート対象の組み込み API として公開しているわけではありません。そのため、どのリリースでも変更される可能性があります。このクレートはバイナリを提供します。執筆時点で crates.io に報告されている逆依存関係はゼロです。ライブラリを組み込む場合は、キャレット範囲ではなく、正確なバージョン(=4.0.0)を固定してください。
これは、「pub フィールドを削除すること」と「サポート対象の API に対する互換性のない変更」が同じ意味になるのは、その API がサポートされている場合に限られるため、明示しています。この API はサポート対象ではありません。そのことは、当然の前提とするのではなく、公開しておく必要があります。
貢献
- フォークしてブランチを作成します(
git checkout -b feature/your-feature) - テストを実行し(
cargo test)、リントします(cargo fmt && cargo clippy -- -D warnings) - 明確な説明と CHANGELOG の記載を添えて、
mainに対する PR を作成します
詳しくは CONTRIBUTING.md をご覧ください。good first issue または help wanted を探すと、貢献を始めやすくなります。
エコシステム
mcp-gateway は、MCP ツールスイートの一部です。
| ツール | 説明 |
|---|---|
| mcp-gateway | ユニバーサル MCP ゲートウェイ:コンパクトな 9~17 個のツール構成で、100 以上の登録を置き換えます |
| trvl | AI 旅行エージェント。航空券、ホテル、地上交通機関向けの 36 個の MCP ツール |
| nab | ウェブコンテンツの抽出:Cookie とボット対策の回避に対応し、任意の URL を取得 |
| axterminator | macOS GUI の自動化。Accessibility API を介して 34 個の MCP ツールを利用 |
ライセンス
mcp-gateway は PolyForm Noncommercial License 1.0.0
(LICENSE-NONCOMMERCIAL)の下でライセンスされています。ファーストパーティの各ファイルには、
著作権表示と明示的な
// SPDX-License-Identifier: PolyForm-Noncommercial-1.0.0 ヘッダーが付いています。別のライセンスや
許可リストはありません。
これは次のことを意味します。
- 個人利用および非営利利用は無料で、ゲートウェイ全体の実行も含まれます。
- **ゲートウェイを商用利用するには、商用ライセンスが必要です。**これは プロジェクト全体に適用されます。ディスパッチ、トランスポート、バックエンド管理、ID、 セキュリティ、ガバナンスに加え、以前の 3.x リリースで MIT ヘッダーの下に 提供されていた汎用ビルディングブロックも対象です。COMMERCIAL.md をご覧ください。
- 以前のリリースで付与された権利は取り消されません。バージョン 3.0.0~3.2.1 は MIT のパッケージメタデータで 公開され、3.x 系列の v3.3.0 以降は、ファイルごとのヘッダーが付いた小規模な MIT コアを同梱していました。それらのコピーは受領者に対して引き続き MIT ライセンスです。v4.0.0 からは MIT コアはありません。NOTICE.md をご覧ください。
ライセンスの全体像:LICENSES.md。
クレジット
ミッコ・パルッコラが作成しました。Model Context Protocol のバージョン 2025-11-25 および 2026-07-28 を実装しています。新しいリビジョンがデフォルトで提供され、無効にすることもできます。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。