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
- Enterprise AI platform – 認証、ルーティング、およびライフサイクルを単一のゲートウェイの背後に管理する、多くの MCP 互換の LLM バックエンド(例:Copilot, カスタムモデル)をホストします。
- Tool‑as‑a‑service – ドメイン固有のツール(天気、金融、コード実行)を一度登録すれば、あらゆる MCP クライアントがエンドポイントをハードコードすることなく呼び出せます。
- Multi‑tenant development sandbox – 開発者が API を介して分離された adapters/tools を立ち上げ、ローカルでテストし、その後本番環境へ昇格させます。
- LLM‑driven agents – 複数のツール(例:データの取得、スクリプトの実行、ファイルの書き込み)をオーケストレーションするエージェントを作成し、VS Code の Copilot チャットを通じて公開します。
- Observability & governance – 規制環境において、すべての MCP トラフィックのログ、テレメトリ、およびロールベースのアクセス制御を中央集約化します。
Quick‑Start Summary (Local)
- Prerequisites – .NET 8 SDK、Docker Desktop (Kubernetes 搭載)、およびローカル Docker レジストリをインストールします。
- Build images – サンプル MCP サーバーとサンプルツールをコンパイルし、
localhost:5000に push します。 - Publish gateway images – 提供された publish プロファイルを使用して
dotnet publishを実行し、gateway と tool‑router コンテナを生成します。 - Deploy –
deployment/k8s/local-deployment.ymlを適用し、サービスを port‑forward します (kubectl port-forward … 8000:8000)。 - Create an adapter –
/adaptersに JSON{ "name": "mcp‑example", "imageName": "mcp‑example", "imageVersion": "1.0.0" }を POST します。 - Register a tool –
/toolsにツール定義(例:天気ツール)とそのコンテナイメージを POST します。 - Connect a client – VS Code の MCP 設定を
http://localhost:8000/adapters/<name>/mcpに向けて直接サーバーへアクセスするか、またはhttp://localhost:8000/mcpに向けてツールルーティングを利用します。 - (Optional) Enable agents – Azure Cognitive Services エンドポイントを含む
FoundrySettingsブロックを追加し、/agentsおよび/sessionsAPI を介してエージェント/sessions を作成します。
Where to Find More
- OpenAPI spec –
openapi/mcp-gateway.openapi.json(Postman, Swagger UI などにインポート可能) - Management portal source –
portal/README.md - Entra ID role configuration guide –
docs/entra-app-roles.md - Sample server implementations –
sample-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 なファサードを提供します。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト