microsoft/mcp-gateway

MCP Gateway is a reverse proxy and management layer for MCP servers, enabling scalable, session-aware stateful routing and lifecycle management of MCP servers in Kubernetes environments.

MCP Gateway – とは何ですか

MCP Gateway は、Model Context Protocol (MCP) のために構築されたオープンソースのリバースプロキシおよび管理レイヤーです。Kubernetes クラスター内で動作し、主に2つのプレーンを提供します。

  • Control plane – MCP サーバーインスタンス(adapters と呼ばれます)および追加機能を提供する tools作成、更新、一覧表示、および削除 できる REST API セットです。また、Azure Cognitive Services エンドポイントが提供されている場合、オプションで agents および sessions(LLM 駆動のワークフロー)を管理します。
  • Data plane – 入力される MCP トラフィックを適切なサーバーにルーティングするステートレスなリバースプロキシです。session‑aware routing(同じ session_id を持つすべてのリクエストが同じ pod に送信される)および、ツール呼び出しを正しいツールコンテナに動的に転送する Tool Gateway Router を提供します。

このゲートウェイはエンタープライズ展開向けに設計されています。Bearer トークン認証とロールベースのアクセス制御(RBAC)のために Azure Entra ID と統合され、組み込みの React 管理ポータルが付属しており、Docker/Kubernetes でローカルに展開、またはワンクリックの Azure テンプレートで展開できます。


Core Concepts

Concept What It Means
MCP Server (Adapter) Model Context Protocol を実装するコンテナ。本質的には LLM が通信できるストリーミング可能な HTTP エンドポイントです。
Tool 特定の MCP‑tool 定義(名前、入力スキーマ、実行エンドポイント)を実装する登録済みサービス(コンテナ)。
Tool Gateway Router ゲートウェイの背後に配置される MCP サーバー。入力される MCP リクエストを検査し、ツールの定義を検索して、呼び出しを正しいツールコンテナに転送します。
Session‑aware routing 同じ session_id を持つすべての呼び出しが同じバックエンド pod に到達することを保証し、ステートフルなインタラクションを維持します。
Agents & Sessions (preview) 登録済みツール(およびいくつかの組み込みの bash/file ツール)を呼び出せる、オプションの LLM 駆動エージェント。Sessions は Server‑Sent Events を介してイベントをストリーミングします。

Key Features

  • RESTful control‑plane API で、adapters、tools、agents、および sessions を管理(CRUD、ステータス、ログ)。
  • Authentication & RBAC を Azure Entra ID を使用して実現(読み取り/書き込みロール mcp.admin, mcp.engineer など)。
  • Stateless reverse proxy で、本番環境レベルの拡張性を実現するための分散セッションストアを備えています。
  • Dynamic tool routing – 新しいツールを一度登録すれば、ルーターが自動的に呼び出しをツールへ直接行います。
  • Built‑in management portal (/portal/) で、視覚的な CRUD、ログの検査、およびブラウザ内での JSON‑RPC テストコンソールを提供します。
  • Kubernetes‑native deployment (StatefulSets, headless services) および、シンプルなローカル Docker‑K8s 展開パスを提供します。
  • Optional LLM agents が、ツールや組み込みの bash/file ユーティリティを呼び出せ、、サンドボックス形式の安全制限を備えています。
  • Support for both local and remote MCP servers – 既存の MCP エンドポイントをプロキシできます。

Typical Use Cases

  1. Enterprise AI platform – 認証、ルーティング、およびライフサイクルを単一のゲートウェイの背後に管理する、多くの MCP 互換の LLM バックエンド(例:Copilot, カスタムモデル)をホストします。
  2. Tool‑as‑a‑service – ドメイン固有のツール(天気、金融、コード実行)を一度登録すれば、あらゆる MCP クライアントがエンドポイントをハードコードすることなく呼び出せます。
  3. Multi‑tenant development sandbox – 開発者が API を介して分離された adapters/tools を立ち上げ、ローカルでテストし、その後本番環境へ昇格させます。
  4. LLM‑driven agents – 複数のツール(例:データの取得、スクリプトの実行、ファイルの書き込み)をオーケストレーションするエージェントを作成し、VS Code の Copilot チャットを通じて公開します。
  5. Observability & governance – 規制環境において、すべての MCP トラフィックのログ、テレメトリ、およびロールベースのアクセス制御を中央集約化します。

Quick‑Start Summary (Local)

  1. Prerequisites – .NET 8 SDK、Docker Desktop (Kubernetes 搭載)、およびローカル Docker レジストリをインストールします。
  2. Build images – サンプル MCP サーバーとサンプルツールをコンパイルし、localhost:5000 に push します。
  3. Publish gateway images – 提供された publish プロファイルを使用して dotnet publish を実行し、gateway と tool‑router コンテナを生成します。
  4. Deploydeployment/k8s/local-deployment.yml を適用し、サービスを port‑forward します (kubectl port-forward … 8000:8000)。
  5. Create an adapter/adapters に JSON { "name": "mcp‑example", "imageName": "mcp‑example", "imageVersion": "1.0.0" } を POST します。
  6. Register a tool/tools にツール定義(例:天気ツール)とそのコンテナイメージを POST します。
  7. Connect a client – VS Code の MCP 設定を http://localhost:8000/adapters/<name>/mcp に向けて直接サーバーへアクセスするか、または http://localhost:8000/mcp に向けてツールルーティングを利用します。
  8. (Optional) Enable agents – Azure Cognitive Services エンドポイントを含む FoundrySettings ブロックを追加し、/agents および /sessions API を介してエージェント/sessions を作成します。

Where to Find More

  • OpenAPI specopenapi/mcp-gateway.openapi.json (Postman, Swagger UI などにインポート可能)
  • Management portal sourceportal/README.md
  • Entra ID role configuration guidedocs/entra-app-roles.md
  • Sample server implementationssample-servers/mcp-example/ および sample-servers/tool-example/
  • Azure deployment guide – 「Deploy to Azure」セクションの、ワンクリックテンプレートと Entra ID 設定手順。

Bottom line: MCP Gateway は、認証、セッション親和性、動的ツールルーティング、およびオプションの LLM エージェントのオーケストレーションを、クリーンな REST API と用意された UI を通じて、あらゆる Model Context Protocol サービスに対して、本番環境レベルの Kubernetes-native なファサードを提供します。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト