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.
-
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.
-
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.
-
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.
-
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 -
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.
-
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 adalahhelloworld-go.default.example.com. -
Akses layanan
helloworld-go.Ganti
helloworld-go.default.example.comdengan Nama domain aktual Anda dan<GATEWAY_IP>dengan alamat IP gateway aktual Anda.Perintah ini mengirim permintaan
tools/listke 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.
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.