Tutorial ini menunjukkan cara membuat dan men-deploy server Model Context Protocol (MCP) jarak jauh di Cloud Run menggunakan transportasi HTTP yang dapat di-streaming. Dengan transpor HTTP yang dapat di-streaming, server MCP beroperasi sebagai proses independen yang dapat menangani beberapa koneksi klien.
Sebelum memulai
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
- Siapkan lingkungan pengembangan Cloud Run di project Google Cloud Anda.
- Pastikan Anda memiliki izin yang sesuai untuk men-deploy layanan, dan peran Admin Cloud Run (
roles/run.admin
) serta Pengguna Akun Layanan (roles/iam.serviceAccountUser
) diberikan ke akun Anda. - Berikan peran Cloud Run
Invoker (
roles/run.invoker
) ke akun Anda. Peran ini memungkinkan server MCP jarak jauh mengakses layanan Cloud Run. -
Di konsol Google Cloud , buka halaman IAM.
Buka IAM - Pilih project.
- Klik Berikan akses.
-
Di kolom Akun utama baru, masukkan ID pengguna Anda. Ini biasanya berupa alamat email Akun Google yang digunakan untuk men-deploy layanan Cloud Run.
- Di daftar Pilih peran, pilih peran.
- Untuk memberikan peran tambahan, klik Tambahkan peran lain, lalu tambahkan setiap peran tambahan.
- Klik Simpan.
- PROJECT_NUMBER: nomor project Google Cloud Anda.
- PROJECT_ID: ID project Google Cloud Anda.
- PRINCIPAL: alamat email akun yang Anda beri peran.
- ROLE: peran yang Anda tambahkan ke akun deployer.
Jika Anda dikenai kebijakan organisasi pembatasan domain yang membatasi pemanggilan yang tidak diautentikasi untuk project, Anda perlu mengakses layanan yang di-deploy seperti yang dijelaskan di bagian Menguji layanan pribadi.
- Instal Uv, pengelola project dan paket Python.
Buat folder bernama
mcp-on-cloudrun
untuk menyimpan kode sumber yang akan di-deploy:mkdir mcp-on-cloudrun cd mcp-on-cloudrun
Buat project Python dengan alat
uv
untuk menghasilkan filepyproject.toml
:uv init --name "mcp-on-cloudrun" --description "Example of deploying an MCP server on Cloud Run" --bare --python 3.10
Perintah
uv init
membuat filepyproject.toml
berikut:[project] name = "mcp-server" version = "0.1.0" description = "Example of deploying an MCP server on Cloud Run" readme = "README.md" requires-python = ">=3.10" dependencies = []
Buat file baru tambahan berikut:
server.py
untuk kode sumber server MCPtest_server.py
untuk menguji server jarak jauh- Dockerfile untuk men-deploy ke Cloud Run
touch server.py test_server.py Dockerfile
Direktori project Anda harus berisi struktur berikut:
├── mcp-on-cloudrun │ ├── pyproject.toml │ ├── server.py │ ├── test_server.py │ └── Dockerfile
Jalankan perintah berikut untuk menambahkan FastMCP sebagai dependensi dalam file
pyproject.toml
:uv add fastmcp==2.8.0 --no-sync
Tambahkan kode sumber server MCP matematika berikut dalam file
server.py
:Sertakan kode berikut dalam Dockerfile untuk menggunakan alat
uv
dalam menjalankan fileserver.py
:Buat repositori Artifact Registry untuk menyimpan image container:
gcloud artifacts repositories create remote-mcp-servers \ --repository-format=docker \ --location=us-central1 \ --description="Repository for remote MCP servers" \ --project=PROJECT_ID
Bangun image container dan kirimkan ke Artifact Registry dengan Cloud Build:
gcloud builds submit --region=us-central1 --tag us-central1-docker.pkg.dev/PROJECT_ID/remote-mcp-servers/mcp-server:latest
Deploy image container server MCP ke Cloud Run:
gcloud run deploy mcp-server \ --image us-central1-docker.pkg.dev/PROJECT_ID/remote-mcp-servers/mcp-server:latest \ --region=us-central1 \ --no-allow-unauthenticated
Berikan peran Cloud Run Invoker (
roles/run.invoker
) ke akun layanan. Binding kebijakan Identity and Access Management ini memastikan bahwa mekanisme keamanan yang kuat digunakan untuk mengautentikasi klien MCP lokal Anda.Jalankan proxy Cloud Run untuk membuat tunnel yang diautentikasi ke server MCP jarak jauh di mesin lokal Anda:
gcloud run services proxy mcp-server --region=us-central1
Jika proxy Cloud Run belum diinstal, perintah ini akan meminta Anda untuk mendownload proxy. Ikuti perintah untuk mendownload dan menginstal proxy.
Sebelum menjalankan server pengujian, jalankan proxy Cloud Run.
Buat file pengujian bernama
test_server.py
, lalu tambahkan kode berikut:Di terminal baru, jalankan server pengujian:
uv run test_server.py
Anda akan melihat output berikut:
🛠️ Tool found: add 🛠️ Tool found: subtract 🪛 Calling add tool for 1 + 2 ✅ Result: 3 🪛 Calling subtract tool for 10 - 3 ✅ Result: 7
Pelajari lebih lanjut cara men-deploy aplikasi AI di Cloud Run.
Pelajari lebih lanjut cara menghosting server MCP di Cloud Run.
Pelajari cara menggunakan server MCP untuk men-deploy kode ke Cloud Run.
Pelajari cara memberikan peran
Konsol
gcloud
Untuk memberikan peran IAM yang diperlukan ke akun Anda di project Anda:
gcloud projects add-iam-policy-binding PROJECT_ID \ --member=PRINCIPAL \ --role=ROLE
Ganti:
Menyiapkan project Python
Langkah-langkah berikut menjelaskan cara menyiapkan project Python dengan uv
pengelola paket.
Membuat server MCP untuk operasi matematika
Untuk memberikan konteks yang berharga dalam meningkatkan penggunaan LLM dengan MCP, siapkan server MCP matematika dengan FastMCP. FastMCP menyediakan cara cepat untuk membangun server dan klien MCP dengan Python.
Ikuti langkah-langkah berikut untuk membuat server MCP untuk operasi matematika seperti penjumlahan dan pengurangan.
Men-deploy ke Cloud Run
Anda dapat men-deploy server MCP sebagai image container atau sebagai kode sumber:
Image container
Untuk men-deploy server MCP yang dikemas sebagai image container, ikuti petunjuk ini.
Sumber
Anda dapat men-deploy server MCP jarak jauh ke Cloud Run dari sumbernya.
Deploy dari sumber dengan menjalankan perintah berikut:
gcloud run deploy mcp-server --no-allow-unauthenticated --region=us-central1 --source .
Mengautentikasi klien MCP
Jika Anda men-deploy layanan dengan tanda --no-allow-unauthenticated
, setiap klien MCP
yang terhubung ke server MCP jarak jauh Anda harus melakukan autentikasi.
Cloud Run mengautentikasi semua traffic ke http://127.0.0.1:8080
dan meneruskan
permintaan ke server MCP jarak jauh.
Menguji server MCP jarak jauh
Anda menguji dan terhubung ke server MCP jarak jauh menggunakan klien FastMCP dan mengakses
URL http://127.0.0.1:8080/mcp
.
Untuk menguji dan memanggil mekanisme penambahan dan pengurangan, ikuti langkah-langkah berikut: