All Products
Search
Document Center

Container Service for Kubernetes:Deploy an MCP Server in Knative

Last Updated:Jun 21, 2026

Menghost MCP Server di Knative memungkinkan Anda memanfaatkan arsitektur serverless untuk autoscaling berbasis permintaan dan pemrosesan berbasis event pada layanan AI.

Cara kerja

Alur kerja ini menunjukkan bagaimana aplikasi AI di Knative menggunakan protokol MCP untuk berinteraksi dengan tool eksternal.

  1. Inisiasi permintaan: Pengguna memberikan perintah kepada AI agent. MCP client bawaan agent tersebut menghasilkan permintaan pemanggilan tool standar dan mengirimkannya melalui SSE atau HTTP.

    Knative tidak mendukung MCP Server yang menggunakan protokol transport stdio.
  2. Penanganan dan eksekusi layanan: Knative Service menerima permintaan HTTP, meneruskannya ke instans MCP Server yang tersedia, dan secara otomatis melakukan scaling berdasarkan beban.

    Untuk membuat MCP Server sendiri, lihat MCP Server SDK atau FastMCP. Anda juga dapat menemukan implementasi yang sudah ada di repositori GitHub MCP Server.
  3. Tanggapan hasil: MCP Server mengembalikan hasil ke AI agent, yang kemudian mengirimkan respons akhir kepada pengguna.

Prasyarat

Anda telah melakukan deploy Knative di kluster. Untuk informasi lebih lanjut, lihat Deploy and manage Knative components.

Anda telah melakukan deploy Knative di kluster ACS.

Langkah 1: Deploy MCP Server

Pada bagian ini, Anda akan melakukan deploy layanan MCP contoh untuk perencanaan perjalanan di Tiongkok (Hangzhou). Layanan ini mengemas fungsi perencanaan perjalanan, pencarian penerbangan, pemesanan hotel, dan prakiraan cuaca ke dalam tool terstandarisasi yang dapat dipanggil oleh AI agent.

  1. Buat file bernama mcp-server.yaml.

    YAML berikut mendefinisikan Knative Service yang menarik image MCP Server contoh.
    apiVersion: serving.knative.dev/v1
    kind: Service
    metadata:
      name: helloworld-go
      namespace: default
    spec:
      template:
        spec:
          containers:
            - env:
                - name: TARGET
                  value: Knative
              # Ganti {region} pada path image dengan ID wilayah aktual Anda, misalnya cn-hangzhou.
              image: >-
                registry-{region}-vpc.ack.aliyuncs.com/acs/knative-samples-mcp-trip:v1.0-6b9fc59
              name: user-container
  2. Buat Knative Service.

    kubectl apply -f mcp-server.yaml

Langkah 2: Akses layanan

Setelah Anda melakukan deploy layanan, kirim permintaan MCP untuk memverifikasi bahwa layanan berfungsi sebagaimana mestinya.

  1. Pada halaman Services, peroleh Gateway dan Default Domain dari layanan tersebut.

    Gateway merupakan alamat ALB, seperti alb-xxx.aliyuncsslb.com. Default Domain untuk layanan helloworld-go adalah helloworld-go.default.example.com.

  2. Akses layanan helloworld-go.

    Ganti helloworld-go.default.example.com dengan Nama domain aktual Anda dan <GATEWAY_IP> dengan alamat IP gateway aktual Anda.

    Perintah ini mengirim permintaan tools/list ke layanan untuk menampilkan daftar semua tool yang didukung.
    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 .

    Perintah tersebut mengembalikan respons JSON terformat yang berisi daftar tool dari MCP Server.

    Output yang diharapkan

    {
      "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 the weather forecast for the next few days in China (Hangzhou) for trip preparation.",
            "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, cuisine, and cultural experiences.",
            "inputSchema": {
              "type": "object",
              "properties": {
                "days": {
                  "description": "Number of travel days (1-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 flight information to China (Hangzhou).",
            "inputSchema": {
              "type": "object",
              "properties": {
                "date": {
                  "description": "Departure date (YYYY-MM-DD)",
                  "type": "string"
                },
                "origin": {
                  "description": "Departure city (for example, Beijing, Shanghai)",
                  "type": "string"
                }
              },
              "required": [
                "origin",
                "date"
              ]
            },
            "name": "search_flights"
          }
        ]
      }
    }

Billing

Knative itu sendiri tidak dikenai biaya tambahan. Namun, Anda akan ditagih untuk layanan cloud yang digunakan, seperti sumber daya komputasi dan jaringan. Untuk informasi lebih lanjut, lihat Cloud service costs dan Billing.