All Products
Search
Document Center

Container Service for Kubernetes:Deploy an MCP server in Knative

Last Updated:Mar 25, 2026

Host MCP server di Knative untuk memanfaatkan arsitektur serverless-nya, sehingga mengaktifkan kemampuan berbasis event dan auto-scaling untuk layanan AI Anda.

Cara kerja

Alur kerja ini menunjukkan cara aplikasi AI di Knative berinteraksi dengan tool eksternal menggunakan Model Context Protocol (MCP).

image
  1. Inisiasi permintaan: Pengguna memberikan perintah kepada AI agent. MCP client bawaan agent tersebut menghasilkan permintaan pemanggilan tool yang distandarkan dan mengirimkannya melalui protokol Server-Sent Events (SSE) atau HTTP.

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

    Untuk mengembangkan MCP server Anda sendiri, lihat MCP Server SDK atau FastMCP. Untuk implementasi yang sudah ada, lihat repositori GitHub MCP Server.
  3. Tanggapan hasil: MCP server mengembalikan hasil tugas ke AI agent, yang kemudian meneruskan tanggapan akhir kepada pengguna.

Prasyarat

Langkah 1: Deploy MCP server

Contoh ini mendeploy layanan MCP untuk perencanaan perjalanan di Tiongkok (Hangzhou). Layanan ini mengemas fungsi-fungsi seperti perencanaan itinerari, pencarian penerbangan, pemesanan hotel, dan prakiraan cuaca ke dalam tool terstandarisasi yang dapat dipanggil oleh AI agent.

  1. Buat file bernama mcp-server.yaml.

    Contoh ini 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 wilayah target 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 layanan dideploy, kirim permintaan MCP untuk memverifikasi bahwa layanan berfungsi.

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

    image

  2. Akses layanan helloworld-go.

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

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

    Output yang diharapkan adalah respons JSON terformat yang mencantumkan tool-tool dari MCP server.

    Klik untuk melihat 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 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"
          }
        ]
      }
    }

Tagihan

Tidak ada biaya tambahan untuk Knative itu sendiri. Namun, Anda bertanggung jawab atas biaya sumber daya cloud yang digunakan selama memakai Knative, seperti sumber daya komputasi (ECS) dan sumber daya jaringan (Application Load Balancer). Sumber daya ini ditagih secara terpisah oleh masing-masing layanan cloud. Untuk informasi harga lengkap, lihat Biaya sumber daya cloud.