Knative で MCP サーバーをホストすると、そのサーバーレスアーキテクチャを利用して、AI サービス向けのオンデマンドのオートスケーリングとイベント駆動型処理を実現できます。
仕組み
このワークフローは、Knative の AI アプリケーションが MCP プロトコルを使用して外部ツールとやり取りする方法を示しています。
-
リクエストの開始:ユーザーが AI エージェントにコマンドを発行します。エージェントに組み込まれた MCP クライアントが標準のツール呼び出しリクエストを生成し、SSE または HTTP 経由で送信します。
Knative は、stdio トランスポートプロトコルを使用する MCP サーバーをサポートしていません。
-
サービスの処理と実行:Knative サービスは HTTP リクエストを受信し、利用可能な MCP サーバーインスタンスにルーティングし、ロードに基づいて自動的にスケーリングします。
独自の MCP サーバーを構築するには、MCP Server SDK または FastMCP をご参照ください。MCP Server の GitHub リポジトリ で既存の実装を見つけることもできます。
-
結果の応答:MCP サーバーは結果を AI エージェントに返し、AI エージェントは最終的な応答をユーザーに送信します。
前提条件
クラスターに Knative をデプロイ済みであること。詳細については、「」または「Knative コンポーネントのデプロイと管理」をご参照ください。
ACS クラスターに Knative をデプロイ済みであること。
手順 1:MCP サーバーのデプロイ
このセクションでは、中国 (杭州) の旅行計画用のサンプル MCP サービスをデプロイします。このサービスは、旅行計画、フライト検索、ホテル予約、天気予報の各機能を、AI エージェントが呼び出し可能な標準化されたツールにパッケージ化します。
-
mcp-server.yamlという名前のファイルを作成します。以下の YAML は、サンプルの MCP サーバーイメージをプルする Knative サービスを定義します。
apiVersion: serving.knative.dev/v1 kind: Service metadata: name: helloworld-go namespace: default spec: template: spec: containers: - env: - name: TARGET value: Knative # イメージパスの {region} を、cn-hangzhou などの実際のリージョン ID に置き換えます。 image: >- registry-{region}-vpc.ack.aliyuncs.com/acs/knative-samples-mcp-trip:v1.0-6b9fc59 name: user-container -
Knative サービスを作成します。
kubectl apply -f mcp-server.yaml
手順 2:サービスへのアクセス
サービスをデプロイした後、MCP リクエストを送信して、サービスが期待どおりに動作することを確認します。
-
サービス管理 ページで、サービスの ゲートウェイ と デフォルトドメイン を取得します。
[ゲートウェイ] は、
alb-xxx.aliyuncsslb.comのような ALB アドレスです。helloworld-go サービスの [デフォルトドメイン] はhelloworld-go.default.example.comです。 -
helloworld-goサービスにアクセスします。helloworld-go.default.example.comを実際のドメイン名に、<GATEWAY_IP>を実際のゲートウェイ IP アドレスに置き換えます。このコマンドは、サポートされているすべてのツールをリスト表示するために、
tools/listリクエストをサービスに送信します。curl -H "Host: helloworld-go.default.example.com" http://<GATEWAY_IP>/mcp -H "Content-Type: application/json" \ -d '{ "jsonrpc": "2.0", "id": "1", "method": "tools/list", "params": {} }' | jq .このコマンドは、MCP サーバーからのツールリストを含む、フォーマットされた JSON 応答を返します。
課金
Knative 自体に追加料金は発生しません。ただし、コンピューティングリソースやネットワークリソースなど、使用するクラウドサービスに対して課金されます。詳細については、「クラウドサービスの費用」および「課金」をご参照ください。