Knative 上で MCP サーバーをホストすることで、そのサーバーレスアーキテクチャを活用し、AI サービスにイベント駆動型の機能とオートスケーリングをもたらします。
仕組み
このワークフローは、Knative 上の AI アプリケーションが Model Context Protocol (MCP) を使用して外部ツールと対話する仕組みを示しています。
-
リクエストの開始:ユーザーが AI エージェントにコマンドを発行します。エージェントに組み込まれた MCP クライアントは、標準化されたツール呼び出しリクエストを生成し、Server-Sent Events (SSE) または HTTP プロトコルを使用して送信します。
Knative は、`stdio` トランスポートプロトコルを使用する MCP サーバーをサポートしていません。
-
リクエストの処理と実行:Knative サービスは HTTP リクエストを受信し、利用可能な MCP サーバーインスタンスにルーティングし、ロードに基づいて自動的にスケーリングします。
独自の MCP サーバーを開発するには、MCP Server SDK または FastMCP をご参照ください。既存の実装については、MCP Server GitHub リポジトリをご参照ください。
-
結果の応答:MCP サーバーはタスク結果を AI エージェントに返し、AI エージェントは最終的な応答をユーザーに転送します。
前提条件
ステップ 1: MCP サーバーのデプロイ
この例では、中国 (杭州) での旅行計画用の MCP サービスをデプロイします。このサービスは、旅程計画、フライト検索、ホテル予約、天気予報の関数を、AI エージェントが呼び出し可能な標準化されたツールにパッケージ化します。
-
mcp-server.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 などのターゲットリージョンに置き換えます。 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 リクエストを送信して、サービスが正常に動作していることを確認します。
-
サービス管理 ページで、サービスの ゲートウェイ と デフォルトドメイン を取得します。

-
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 自体に追加費用はかかりません。ただし、Knative の使用中にプロビジョニングされる、コンピューティングリソース (Elastic Compute Service (ECS)) やネットワークリソース (Application Load Balancer) などの基盤となるクラウドリソースの費用はお客様の負担となります。これらのリソースは、各クラウドサービスによって個別に課金されます。詳細な料金情報については、「クラウドリソース料金」をご参照ください。