すべてのプロダクト
Search
ドキュメントセンター

Container Service for Kubernetes:Knative での MCP サーバーのデプロイ

最終更新日:Mar 25, 2026

Knative 上で MCP サーバーをホストすることで、そのサーバーレスアーキテクチャを活用し、AI サービスにイベント駆動型の機能とオートスケーリングをもたらします。

仕組み

このワークフローは、Knative 上の AI アプリケーションが Model Context Protocol (MCP) を使用して外部ツールと対話する仕組みを示しています。

image
  1. リクエストの開始:ユーザーが AI エージェントにコマンドを発行します。エージェントに組み込まれた MCP クライアントは、標準化されたツール呼び出しリクエストを生成し、Server-Sent Events (SSE) または HTTP プロトコルを使用して送信します。

    Knative は、`stdio` トランスポートプロトコルを使用する MCP サーバーをサポートしていません。
  2. リクエストの処理と実行:Knative サービスは HTTP リクエストを受信し、利用可能な MCP サーバーインスタンスにルーティングし、ロードに基づいて自動的にスケーリングします。

    独自の MCP サーバーを開発するには、MCP Server SDK または FastMCP をご参照ください。既存の実装については、MCP Server GitHub リポジトリをご参照ください。
  3. 結果の応答:MCP サーバーはタスク結果を AI エージェントに返し、AI エージェントは最終的な応答をユーザーに転送します。

前提条件

ステップ 1: MCP サーバーのデプロイ

この例では、中国 (杭州) での旅行計画用の MCP サービスをデプロイします。このサービスは、旅程計画、フライト検索、ホテル予約、天気予報の関数を、AI エージェントが呼び出し可能な標準化されたツールにパッケージ化します。

  1. 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
  2. Knative サービスを作成します。

    kubectl apply -f mcp-server.yaml

ステップ 2: サービスへのアクセス

サービスのデプロイ後、MCP リクエストを送信して、サービスが正常に動作していることを確認します。

  1. サービス管理 ページで、サービスの ゲートウェイデフォルトドメイン を取得します。

    image

  2. 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 応答です。

    クリックして期待される出力を表示

    {
      "jsonrpc": "2.0",
      "id": "1",
      "result": {
        "tools": [
          {
            "annotations": {
              "readOnlyHint": false,
              "destructiveHint": true,
              "idempotentHint": false,
              "openWorldHint": true
            },
            "description": "Book a hotel near West Lake in China (Hangzhou)",
            "inputSchema": {
              "type": "object",
              "properties": {
                "check_in": {
                  "description": "Check-in date (YYYY-MM-DD)",
                  "type": "string"
                },
                "guests": {
                  "description": "Number of guests",
                  "type": "number"
                },
                "nights": {
                  "description": "Number of nights",
                  "type": "number"
                }
              },
              "required": [
                "check_in",
                "guests",
                "nights"
              ]
            },
            "name": "book_hotel"
          },
          {
            "annotations": {
              "readOnlyHint": false,
              "destructiveHint": true,
              "idempotentHint": false,
              "openWorldHint": true
            },
            "description": "Get a multi-day weather forecast for China (Hangzhou) to help plan your trip",
            "inputSchema": {
              "type": "object",
              "properties": {
                "date_start": {
                  "description": "Start date (YYYY-MM-DD)",
                  "type": "string"
                },
                "days": {
                  "description": "Number of forecast days",
                  "type": "number"
                }
              },
              "required": [
                "date_start",
                "days"
              ]
            },
            "name": "get_weather_forecast"
          },
          {
            "annotations": {
              "readOnlyHint": false,
              "destructiveHint": true,
              "idempotentHint": false,
              "openWorldHint": true
            },
            "description": "Generate a multi-day, in-depth travel itinerary for China (Hangzhou), including daily attractions, dining, and cultural experiences",
            "inputSchema": {
              "type": "object",
              "properties": {
                "days": {
                  "description": "Number of travel days (1 to 7)",
                  "maximum": 7,
                  "minimum": 1,
                  "type": "number"
                }
              },
              "required": [
                "days"
              ]
            },
            "name": "plan_hangzhou_trip"
          },
          {
            "annotations": {
              "readOnlyHint": false,
              "destructiveHint": true,
              "idempotentHint": false,
              "openWorldHint": true
            },
            "description": "Search for flights to China (Hangzhou)",
            "inputSchema": {
              "type": "object",
              "properties": {
                "date": {
                  "description": "Departure date (YYYY-MM-DD)",
                  "type": "string"
                },
                "origin": {
                  "description": "Departure city (for example, Beijing or Shanghai)",
                  "type": "string"
                }
              },
              "required": [
                "origin",
                "date"
              ]
            },
            "name": "search_flights"
          }
        ]
      }
    }

課金

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