1. Pengantar
Selamat datang! Dalam codelab ini, Anda akan mempelajari cara meningkatkan kemampuan agen AI menggunakan Server Model Context Protocol (MCP) yang Dikelola Google.
Model Context Protocol (MCP) adalah standar open source yang memungkinkan model AI terhubung secara aman dan efisien ke sumber data dan alat eksternal. Meskipun sebagian besar penerapan MCP berjalan secara lokal di komputer Anda, Google menyediakan Server MCP Jarak Jauh Terkelola. Endpoint ini dihosting sepenuhnya dan siap digunakan perusahaan, sehingga memungkinkan agen Anda berinteraksi langsung dengan infrastruktur Google Cloud tanpa Anda harus mengelola kode atau container sisi server.
Keunggulan "Dikelola"
Tidak seperti server MCP lokal yang menggunakan input/output standar (stdio), server terkelola Google menggunakan HTTP yang Dapat Di-stream. Arsitektur ini menawarkan:
- Tanpa Infrastruktur: Tidak ada server yang perlu disediakan atau diskalakan.
- Security by Design: Integrasi native dengan IAM dan Audit Logs Google Cloud.
- Penskalaan Stateless: Interaksi yang lancar melalui load balancer dan proxy standar.
Yang akan Anda pelajari
- Cara mengaktifkan dan mengautentikasi Server MCP Terkelola.
- Cara menggunakan Server MCP Cloud Logging sebagai dasar pokok.
- Cara mengorkestrasi beberapa server MCP (Pengetahuan Developer, Firestore, dll.) untuk membangun alur kerja otonom.
Yang Anda butuhkan
- Project Google Cloud dengan penagihan diaktifkan.
- Pemahaman tentang Konsol Google Cloud dan
gcloudCLI. - Google Cloud Shell (Gemini CLI sudah terinstal di sini).
Codelab ini dirancang untuk pengguna dan developer dari semua tingkat keahlian (termasuk pemula).
Melaporkan masalah
Saat mengerjakan codelab dan Antigravity, Anda mungkin mengalami masalah.
Untuk masalah terkait codelab (salah ketik, petunjuk yang salah), buka bug dengan tombol Report a mistake di sudut kiri bawah codelab ini:

2. Sebelum Memulai
Pada langkah ini, Anda akan menyiapkan lingkungan Google Cloud. Kita akan melakukan semua tugas dalam Google Cloud Shell, yang menyediakan terminal persisten yang telah dikonfigurasi sebelumnya.
Mengaktifkan Cloud Shell
- Buka Konsol Google Cloud.
- Klik ikon Activate Cloud Shell di header kanan atas.
- Setelah sesi terminal dimulai, izinkan perintah jika diminta.
Menetapkan Project ID
Pastikan Cloud Shell Anda mengarah ke project yang benar:
# Set your active project
gcloud config set project YOUR_PROJECT_ID
# Verify the setting
gcloud config list project
Mengaktifkan Foundation API
Server MCP terkelola memerlukan pengaktifan API produk yang mendasarinya dan antarmuka MCP. Jalankan perintah berikut untuk mengaktifkan backend Cloud Logging (dasar untuk lab ini):
# Enable the Cloud Logging API and its MCP interface
gcloud services enable logging.googleapis.com
gcloud beta services mcp enable logging.googleapis.com
Catatan: Layanan MCP terkelola saat ini dalam versi Beta. Anda harus menggunakan komponen gcloud beta untuk mengaktifkannya.
Menyiapkan Kredensial Default Aplikasi (ADC)
Gemini CLI menggunakan identitas pengguna Anda untuk berkomunikasi dengan server MCP. Beri agen izin untuk bertindak atas nama Anda:
gcloud auth application-default login
Buka URL di terminal, login, lalu tempelkan kembali kode otorisasi ke Cloud Shell.
Menetapkan Peran IAM Dasar
Server MCP terkelola menggunakan Model Keamanan Lapisan Ganda. Anda memerlukan dua "gerbang" khusus yang terbuka:
- Gerbang 1 (Akses MCP): Peran yang memungkinkan Anda memanggil protokol.
- Gerbang 2 (Akses Layanan): Peran yang memungkinkan Anda melihat data (misalnya, melihat log).
Jalankan perintah berikut untuk memberi diri Anda akses yang diperlukan:
export PROJECT_ID=$(gcloud config get-value project)
export USER_EMAIL=$(gcloud config get-value account)
# Gate 1: Permission to use the MCP protocol
gcloud projects add-iam-policy-binding $PROJECT_ID \
--member="user:$USER_EMAIL" \
--role="roles/mcp.toolUser"
# Gate 2: Permission to view the actual logs
gcloud projects add-iam-policy-binding $PROJECT_ID \
--member="user:$USER_EMAIL" \
--role="roles/logging.viewer"
3. Dasar-Dasar: Menghubungkan Server MCP Pertama Anda
Pada langkah ini, Anda akan menautkan agen AI (Gemini CLI) ke Server MCP Google Cloud Logging. Ini adalah "dasar" kami karena memungkinkan agen melihat apa yang terjadi di dalam project Anda secara real-time.
Tugas 1: Mengonfigurasi Server MCP Logging
Gemini CLI menggunakan file settings.json untuk mengelola koneksinya. Anda harus mengedit file ini (ada di folder ~/.gemini) untuk menambahkan cuplikan berikut di dalam blok mcpServers. Ganti YOUR_PROJECT_ID dengan Project ID Anda yang sebenarnya:
"logging-mcp": {
"httpUrl": "https://logging.googleapis.com/mcp",
"authProviderType": "google_credentials",
"oauth": {
"scopes": [
"https://www.googleapis.com/auth/logging.read"
]
},
"timeout": 30000,
"headers": {
"x-goog-user-project": "YOUR_PROJECT_ID"
}
}
Catatan: Header x-goog-user-project diperlukan untuk server MCP Terkelola guna memastikan penggunaan dan penagihan API dikaitkan dengan benar ke project Anda.
Tugas 2: Menyimulasikan Aktivitas Project (Membuat Log)
Jika project Anda baru atau tidak aktif, project tersebut mungkin tidak memiliki log "menarik" terbaru. Mari kita gunakan CLI gcloud untuk menyuntikkan beberapa entri kustom sehingga agen memiliki sesuatu untuk ditemukan.
Jalankan perintah ini satu per satu untuk menyimulasikan urutan peristiwa:
# 1. Simulate a standard system start
gcloud logging write mcp-test-log "System boot sequence initiated" --severity=INFO
# 2. Simulate a warning about resource limits
gcloud logging write mcp-test-log "High memory pressure detected in zone us-central1-a" --severity=WARNING
# 3. Simulate a critical authentication failure
gcloud logging write mcp-test-log "ERROR: Failed to connect to Cloud SQL. Permission Denied." --severity=ERROR
Tugas 3: Memverifikasi Alat di Gemini CLI
Sebelum kita memulai percakapan, mari kita verifikasi bahwa agen dapat "melihat" alat yang diekspos oleh server Logging. Buka Gemini CLI:
gemini
Setelah berada di dalam perintah Gemini CLI (>), jalankan perintah list:
/mcp list
Pos Pemeriksaan Verifikasi: Anda akan melihat logging-mcp tercantum sebagai Siap dengan sekitar 6 alat yang tersedia, termasuk list_log_entries.
Tugas 4: Perintah Infrastruktur Live Pertama Anda
Sekarang, minta agen untuk menemukan log yang baru saja kita buat. Karena Anda memberikan peran roles/logging.viewer sebelumnya, agen kini dapat "menghubungi" dan membaca status project Anda.
Ketik perintah berikut ke Gemini CLI:
Show me the 3 most recent log entries from the log named 'mcp-test-log'. What is the highest severity issue you see?
Mengamati Agen:
- Agen mungkin meminta ID Project Google Cloud Anda. Harap berikan informasi tersebut.
- Agen akan mengidentifikasi bahwa ia memerlukan alat
list_log_entries. - Anda akan diminta izin untuk menjalankan alat tersebut. Pilih 1. Ya, izinkan sekali.
- Aplikasi ini akan mengurai respons JSON dan memberi tahu Anda tentang error Cloud SQL Permission Denied yang kami simulasikan.
4. Perjalanan A: Otak (MCP Pengetahuan Developer)
Dalam perjalanan ini, Anda akan memberi agen Anda "otak" dengan menghubungkannya ke Server MCP Pengetahuan Developer Google.
Salah satu risiko terbesar agen AI adalah halusinasi—dengan yakin memberikan perintah CLI yang sudah tidak berlaku atau parameter API yang sudah tidak digunakan lagi. Server MCP ini menyelesaikannya dengan mendasarkan agen pada korpus dokumentasi developer live resmi Google (yang mencakup Google Cloud, Firebase, Android, dan lainnya).
Tugas 1: Aktifkan Layanan Pengetahuan
Seperti langkah dasar, kita harus mengaktifkan API backend dan endpoint layanan MCP.
# 1. Enable the Developer Knowledge API
gcloud services enable developerknowledge.googleapis.com
# 2. Enable the MCP Server interface
gcloud beta services mcp enable developerknowledge.googleapis.com
Tugas 2: Menyediakan Kunci API Terbatas
MCP Pengetahuan Developer menggunakan Kunci API untuk autentikasi. Untuk keamanan, kita akan membuat kunci dan membatasinya agar hanya dapat digunakan dengan API tertentu ini.
- Jalankan skrip berikut untuk membuat dan mengambil kunci Anda:
# Create the restricted API key
gcloud alpha services api-keys create \
--display-name="MCP-Knowledge-Key" \
--api-target service=developerknowledge.googleapis.com
# Wait a few seconds for the key to propagate, then fetch the string
gcloud alpha services api-keys get-key-string \
$(gcloud alpha services api-keys list \
--filter="displayName='MCP-Knowledge-Key'" \
--format="value(name)") \
--format="value(keyString)"
- Salin string panjang karakter yang ditampilkan oleh perintah kedua. Ini adalah
YOUR_API_KEYAnda.
Tugas 3: Mengonfigurasi Gemini CLI
Sekarang, daftarkan server MCP Knowledge dengan agen Anda. Hal ini memungkinkan agen menelusuri dokumen resmi setiap kali menemukan pertanyaan teknis yang tidak dapat dijawab dengan kepastian 100%.
Tambahkan cuplikan berikut di dalam bagian mcpServers dalam file ~/.gemini/settings.json Anda, dengan mengganti YOUR_API_KEY dengan string yang baru saja Anda salin:
"developer-knowledge-mcp": {
"httpUrl": "https://developerknowledge.googleapis.com/mcp",
"headers": {
"X-Goog-Api-Key": "YOUR_API_KEY"
}
}
Tugas 4: Uji Anti-Halusinasi
Mari kita verifikasi bahwa agen sekarang "melakukan riset" dan bukan "menebak".
Buka Gemini CLI:
gemini
Verifikasi bahwa server sudah Siap: Ketik /mcp list. Anda akan melihat google-developer-knowledge dengan 2 alat (search_documents, get_document).
Perintah: Minta agen untuk menemukan perintah modern tertentu.
I want to create a Google Cloud Storage bucket using the modern gcloud storage command. Search the official documentation for the exact syntax and show me an example for a bucket in the 'us-central1' region.
Yang harus diperhatikan:
- Gemini akan meminta izin untuk menggunakan
search_documents. - Kemudian, kemungkinan akan memanggil
get_documentuntuk membaca halaman tertentu yang ditemukannya. - Jawaban akhir harus menyertakan perintah
gcloud storage buckets create ..., yang dikutip langsung dari dokumentasi.
5. Perjalanan B: Triase (Pemecahan Masalah Otonom)
Prasyarat: Perjalanan ini mengharuskan Anda telah menyelesaikan Perjalanan A: Otak agar agen dapat meneliti perbaikan.
Dalam perjalanan ini, Anda akan menggabungkan Mata (MCP Cloud Logging) dan Otak (MCP Pengetahuan Developer) agen untuk membangun Loop Pemecahan Masalah Mandiri.
Daripada menyalin kode error secara manual ke mesin telusur, Anda akan memberi agen satu perintah untuk memindai project Anda guna menemukan error, meneliti penyelesaian resminya, dan membuat laporan perbaikan yang dapat ditindaklanjuti.
Tugas 1: Mensimulasikan "Hari Buruk" di GCP
Untuk melihat kemampuan pemecahan masalah otonom, kita memerlukan serangkaian kegagalan yang realistis. Kita akan menggunakan skrip Python untuk menyuntikkan berbagai hambatan infrastruktur—dari error izin ditolak hingga masalah kuota—langsung ke log Anda.
- Di Cloud Shell, buat folder pilihan Anda dan buka folder tersebut.
- buat file bernama
simulate_errors.py:
nano simulate_errors.py
- Tempelkan kode berikut ke dalam editor:
import argparse
from google.cloud import logging
def simulate_errors(project_id):
client = logging.Client(project=project_id)
logger = client.logger("mcp-scenario-logger")
print(f"Simulating realistic errors for project: {project_id}...")
# 1. GCS Permission Error
logger.log_text("ERROR: GCS Upload failed for 'gs://my-app-bucket/data.json'. Status: 403 Forbidden. Missing 'storage.objects.create' for service account.", severity="ERROR")
# 2. Cloud Run Startup Error
logger.log_text("ERROR: Cloud Run service 'api-gateway' failed to start. Container failed to listen on port 8080. Check 'Cloud Run container startup requirements'.", severity="ERROR")
# 3. Secret Manager Access Error
logger.log_text("ERROR: Access denied to secret 'API_KEY'. The identity lacks 'secretmanager.versions.access'.", severity="ERROR")
print("Log entries written to 'mcp-scenario-logger'.")
if __name__ == "__main__":
parser = argparse.ArgumentParser()
parser.add_argument("--project", required=True)
args = parser.parse_args()
simulate_errors(args.project)
- Tekan Ctrl+O, Enter, dan
Ctrl+Xuntuk menyimpan dan keluar. - Instal library
Google Cloud Loggingdan jalankan skrip:
python -m venv mcp_env
source mcp_env/bin/activate
pip install google-cloud-logging
python simulate_errors.py --project $(gcloud config get-value project)
Tugas 2: Menjalankan Loop Otonom
Sekarang, kita akan mengirimkan perintah kompleks yang menginstruksikan Gemini untuk mengoordinasikan kedua server MCP secara bersamaan.
Buka Gemini CLI:
gemini
Ketik "Perintah Utama" ini ke dalam agen:
I need to troubleshoot recent issues in my project. Perform the following autonomous loop:
Step 1 : Retrieval: Use the Logging MCP to fetch the 5 most recent ERROR entries from the log 'mcp-scenario-logger'.
Step 2 : Iteration: For every unique error found, extract the service and specific error message.
Step 3 : Research: Use the Developer Knowledge MCP to find the official resolution or gcloud command to fix each issue.
Step 4 : Resolution: Consolidate everything into a markdown table with columns: | Service | Error Summary | Recommended Fix |.
Proses selanjutnya
Sekarang Anda sedang menonton Alur Kerja Agentik secara real-time. Agen akan:
- Panggil
list_log_entriesuntuk melihat "Hari Buruk" yang baru saja kita simulasikan. - Analisis teks untuk mengidentifikasi bahwa GCS, Cloud Run, dan Secret Manager gagal.
- Panggil
search_documentsdanget_documentuntuk setiap layanan tersebut guna menemukan peran IAM atau perbaikan konfigurasi yang benar. - Menyajikan tabel terstruktur yang terlihat mirip dengan ini (rekomendasinya dapat berbeda):
Layanan | Ringkasan Error | Perbaikan yang Direkomendasikan |
Cloud Storage | 403 Dilarang saat mengupload | Berikan |
Cloud Run | Gagal memproses di port 8080 | Pastikan aplikasi terikat ke 0.0.0.0 di port yang ditentukan oleh |
Secret Manager | Peran akses versi tidak ada | Tetapkan |
6. Perjalanan C: Data (MCP Firestore)
Dalam perjalanan ini, Anda akan menggunakan Server MCP Firestore untuk mengelola database dokumen NoSQL hanya dengan menggunakan bahasa alami.
Firestore adalah database yang fleksibel dan skalabel, tetapi pengelolaannya sering kali memerlukan penulisan kode SDK yang kompleks atau penelusuran konsol. Dengan MCP, agen Anda menjadi Administrator Database, yang mampu mengisi data, membuat kueri catatan, dan bahkan melakukan migrasi skema yang kompleks melalui chat.
Tugas 1: Aktifkan Layanan Firestore
Pertama, aktifkan Firestore API dan endpoint MCP yang sesuai.
# 1. Enable the Firestore API
gcloud services enable firestore.googleapis.com
# 2. Enable the MCP Server interface
gcloud beta services mcp enable firestore.googleapis.com
Tugas 2: Tetapkan Peran IAM Firestore
Untuk menjalankan kueri, identitas Anda memerlukan izin khusus di luar akses MCP dasar.
# Grant Firestore User role
gcloud projects add-iam-policy-binding $PROJECT_ID \
--member="user:$USER_EMAIL" \
--role="roles/datastore.user"
Tugas 3: Membuat Database Pengujian Khusus
Untuk menjaga keamanan eksperimen, kita akan membuat database Firestore khusus bernama mcp-lab-db.
gcloud firestore databases create --database=mcp-lab-db --location=nam5 --type=firestore-native
Tugas 4: Mengonfigurasi Gemini CLI
Tambahkan server MCP Firestore ke agen Anda. Tambahkan konfigurasi berikut ke bagian mcpServers di file ~/.gemini/settings.json. Ganti YOUR_PROJECT_ID dengan Project ID Anda yang sebenarnya:
"firestore-mcp": {
"httpUrl": "https://firestore.googleapis.com/mcp",
"authProviderType": "google_credentials",
"oauth": {
"scopes": [
"https://www.googleapis.com/auth/cloud-platform"
]
},
"timeout": 30000,
"headers": {
"x-goog-user-project": "YOUR_PROJECT_ID"
}
}
Tugas 5: Operasi DB Natural Language
Luncurkan Gemini CLI dan lakukan beberapa operasi dasar untuk memverifikasi koneksi.
Buka Gemini CLI:
gemini
Verifikasi bahwa server sudah Siap: Ketik /mcp list. Anda akan melihat firestore-mcp dengan beberapa alat (add_document, create_database, list_documents, etc).
Coba perintah berikut secara berurutan:
Data Awal:
In the 'mcp-lab-db' database, add three documents to a 'products' collection. Include a laptop (stock 5), a mouse (stock 25), and a keyboard (stock 8).
Verifikasi:
List all documents in the 'products' collection from the 'mcp-lab-db' database.
Coba perintah lain yang membantu Anda mengelola database dan koleksi Firestore melalui bahasa alami.
7. Perjalanan D: Kecerdasan (BigQuery & Maps)
Dalam perjalanan ini, Anda akan melengkapi agen dengan kemampuan untuk menganalisis data berukuran petabyte dan memahami dunia fisik menggunakan server MCP BigQuery dan Maps Grounding Lite.
Di akhir bagian ini, agen Anda akan dapat menerjemahkan bahasa natural ke dalam kueri SQL yang kompleks dan memberikan saran geospasial yang sesuai konteks (seperti waktu tempuh dan cuaca) untuk mendasarkan responsnya pada kenyataan.
Tugas 1: Aktifkan Layanan Kecerdasan
Aktifkan API dan antarmuka MCP untuk BigQuery dan Google Maps.
# 1. Enable product APIs
gcloud services enable bigquery.googleapis.com mapstools.googleapis.com
# 2. Enable MCP Server interfaces
gcloud beta services mcp enable bigquery.googleapis.com
gcloud beta services mcp enable mapstools.googleapis.com
Tugas 2: Tetapkan Peran IAM BigQuery
Untuk menjalankan kueri, identitas Anda memerlukan izin khusus di luar akses MCP dasar.
# Grant BigQuery Job User and Data Viewer roles
gcloud projects add-iam-policy-binding $PROJECT_ID \
--member="user:$USER_EMAIL" \
--role="roles/bigquery.jobUser"
gcloud projects add-iam-policy-binding $PROJECT_ID \
--member="user:$USER_EMAIL" \
--role="roles/bigquery.dataViewer"
Tugas 3: Menyediakan Kunci Maps API
Tidak seperti layanan lain yang hanya mengandalkan IAM, server Maps Grounding Lite memerlukan Kunci API untuk kuota dan penagihan.
Buat kunci:
gcloud alpha services api-keys create --display-name="MCP-Maps-Key"
Ambil string kunci:
# Wait a few seconds for the key to propagate, then fetch the string
gcloud alpha services api-keys get-key-string \
$(gcloud alpha services api-keys list \
--filter="displayName='MCP-Maps-Key'" \
--format="value(name)") \
--format="value(keyString)"
Salin string kunci untuk langkah berikutnya.
Tugas 4: Mengonfigurasi Gemini CLI
Sekarang, daftarkan kedua server. Tambahkan cuplikan di bawah ke bagian mcpServers dalam file ~/.gemini/settings.json. Ganti YOUR_PROJECT_ID dan YOUR_MAPS_API_KEY yang sesuai.
"bigquery-mcp": {
"httpUrl": "https://bigquery.googleapis.com/mcp",
"authProviderType": "google_credentials",
"oauth": {
"scopes": [
"https://www.googleapis.com/auth/cloud-platform"
]
},
"timeout": 30000,
"headers": {
"x-goog-user-project": "YOUR_PROJECT_ID"
}
},
"maps-grounding-lite-mcp": {
"httpUrl": "https://mapstools.googleapis.com/mcp",
"headers": {
"X-Goog-Api-Key": "YOUR_MAPS_API_KEY"
}
}
Tugas 5: Kecerdasan dalam Tindakan
Luncurkan Gemini CLI dan uji kemampuan "Intelligence" baru.
gemini
Verifikasi bahwa server sudah Siap: Ketik /mcp list. Anda akan melihat bigquery-mcp dan maps-grounding-lite-mcp dengan beberapa alat yang tercantum. .
Skenario 1: Mesin Analisis (BigQuery) Minta agen untuk membuat kueri set data publik tanpa Anda mengetahui SQL:
Run a query to count the number of penguins on each island in the BigQuery public dataset ml_datasets.penguins.
Skenario 2: Konteks Geospatial (Peta) Minta agen untuk merencanakan perjalanan di dunia nyata:
I am planning a drive from Mumbai to Pune tomorrow morning. Based on current weather and routing, what should I expect in terms of travel time and what should I carry?
Yang harus diperhatikan:
- Untuk BigQuery, agen akan memanggil
execute_sqluntuk menemukan skema dan menjalankan kueri. - Untuk Maps, Gemini akan mengatur
lookup_weatherdan compute_routes untuk memberi Anda rencana perjalanan yang relevan dan bermanfaat.
8. Penguatan: Keamanan Produksi & IAM
Pada langkah terakhir ini, Anda akan beralih dari penggunaan izin "Pemilik" yang luas ke model Pertahanan Mendalam Tingkat Produksi.
Agen AI pada dasarnya "membantu". Jika Anda membatasi alat di tingkat UI, agen smart mungkin mencoba melewati batasan tersebut dengan menjalankan perintah shell. Untuk benar-benar mengamankan infrastruktur, Anda harus membangun batas yang ketat menggunakan Google Cloud IAM.
Model Keamanan Lapisan Ganda
Untuk menjalankan tindakan apa pun, agen harus melewati dua gerbang:
- Gerbang 1 (Gerbang MCP): Apakah identitas memiliki
roles/mcp.toolUser? (Izin untuk menggunakan protokol). - Gerbang 2 (Gerbang Layanan): Apakah identitas memiliki peran produk tertentu (misalnya,
roles/datastore.viewer)? (Izin untuk melihat data).
Tugas 1: Lapisan 1 - Pemfilteran Sisi Klien (excludeTools)
Lapisan pertahanan pertama adalah menyembunyikan alat dari agen sehingga agen tidak "berpikir" untuk menggunakannya.
- Buka setelan Gemini CLI Anda di editor Cloud Shell:
cloudshell edit ~/.gemini/settings.json
- Temukan blok firestore-mcp dan tambahkan direktif
excludeToolsuntuk menyembunyikan tindakan destruktif:
"firestore-mcp": {
"httpUrl": "https://firestore.googleapis.com/mcp",
"excludeTools": ["delete_database", "update_database", "delete_document"],
...
}
Simpan file dan mulai ulang Gemini CLI. Jalankan /mcp list dan perhatikan bahwa alat tersebut kini sudah tidak ada.
Tugas 2: Layer 2 - Keunggulan Infrastruktur (Penjaga IAM)
Pemfilteran sisi klien adalah batas aman "ringan". Jika Anda meminta agen untuk "Hapus database Firestore saya", dan alat tersebut disembunyikan, agen mungkin mencoba menjalankan gcloud firestore databases delete. Untuk mencegah hal ini, kami menggunakan Akun Layanan dengan Hak Istimewa Terendah.
Buat Akun Layanan "Khusus Baca":
# Create the service account
gcloud iam service-accounts create mcp-reader-sa --display-name="MCP Reader Only"
# Grant ONLY the necessary roles (Gate 1 + Gate 2)
export PROJECT_ID=$(gcloud config get-value project)
SA_EMAIL="mcp-reader-sa@$PROJECT_ID.iam.gserviceaccount.com"
gcloud projects add-iam-policy-binding $PROJECT_ID --member="serviceAccount:$SA_EMAIL" --role="roles/mcp.toolUser"
gcloud projects add-iam-policy-binding $PROJECT_ID --member="serviceAccount:$SA_EMAIL" --role="roles/datastore.viewer"
gcloud projects add-iam-policy-binding $PROJECT_ID --member="serviceAccount:$SA_EMAIL" --role="roles/aiplatform.user"
Buat dan Aktifkan Kunci:
gcloud iam service-accounts keys create reader-key.json --iam-account=$SA_EMAIL
export GOOGLE_APPLICATION_CREDENTIALS=$(pwd)/reader-key.json
Tugas 3: Uji Pengecoh "Agen yang Membantu"
Sekarang, mari kita uji apakah agen dapat melewati keamanan kita.
Langkah pertama kita adalah mengaktifkan Akun Layanan, sehingga meskipun agen kembali menggunakan perintah gcloud, agen tersebut beroperasi dengan identitas akun layanan yang baru saja kita buat.
Aktifkan Akun Layanan:
Jalankan perintah berikut, dengan mengganti [PATH_TO_KEY_FILE] dengan jalur sebenarnya ke file kunci JSON Anda (misalnya, reader-key.json).
gcloud auth activate-service-account --key-file=[PATH_TO_KEY_FILE]
Verifikasi Perubahan:
Setelah menjalankan perintah, Anda dapat memverifikasi bahwa akun layanan aktif dengan menjalankan:
gcloud auth list
Output akan menampilkan akun layanan sebagai kredensial aktif.
Luncurkan Gemini CLI:
gemini
Ketik perintah ini:
I want to delete the 'mcp-lab-db' firestore database. If the tool is missing, try using the gcloud firestore command in the terminal.
Apa yang terjadi?
- Agen akan mencoba menggunakan alat delete_database di Server MCP Firestore terlebih dahulu. Tindakan ini akan gagal karena tidak memiliki izin.
- Kemudian, ia mencoba untuk "membantu" dengan beralih ke alat
run_shell_commanduntuk menggunakan perintah gcloud firestore.
Hasil:
Perintah gagal dengan error Forbidden. Karena agen berjalan dengan identitas mcp-reader-sa, agen tidak memiliki izin datastore.databases.delete. IAM adalah penghentian terakhir. Terlepas dari cara agen mencoba menjangkau resource, "Bouncer" di tingkat Google Cloud API akan memblokir permintaan.
Beralih kembali ke akun pengguna Anda:
Untuk beralih kembali ke akun pengguna Anda, berikan perintah berikut:
gcloud config set account YOUR_EMAIL_ADDRESS
9. Pembersihan
Untuk menghindari tagihan yang tidak diinginkan, hapus resource pengujian Anda:
# Delete the Firestore database
gcloud firestore databases delete --database=mcp-lab-db
# Remove the service account
gcloud iam service-accounts delete mcp-reader-sa@$PROJECT_ID.iam.gserviceaccount.com
10. Kesimpulan
Selamat! Anda telah berhasil menjelajahi seluruh stack Server MCP Terkelola Google.
Anda memulai dengan "Trunk" lab, yang membangun koneksi dasar ke Cloud Logging. Kemudian, Anda bercabang ke "Petualangan" modular—mendasari pengetahuan agen Anda, mengotomatiskan loop pemecahan masalah yang kompleks, memigrasikan data di Firestore, dan mengekstrak kecerdasan dari BigQuery dan Maps.
Yang terpenting, Anda telah menyelesaikan dengan menyematkan agen di Roots keamanan produksi. Anda membuktikan bahwa meskipun agen dapat "membantu" hingga menimbulkan kesalahan, Google Cloud IAM adalah penjaga keamanan terbaik, yang memastikan alur kerja otonom Anda selalu mematuhi Prinsip Hak Istimewa Terendah.
Poin-Poin Penting
- Terkelola = Dapat Diskalakan: Anda terhubung ke alat tingkat infrastruktur melalui HTTP yang Dapat Di-streaming tanpa men-deploy satu server pun.
- Perujukan Wajib Dilakukan: Anda mengganti "tebakan" LLM dengan MCP Pengetahuan Developer, sehingga memastikan agen Anda menggunakan perintah yang valid dan terbaru.
- Orkestrasi adalah Kekuatan: Anda melihat bahwa keajaiban yang sebenarnya terjadi saat agen menggabungkan beberapa server MCP untuk memecahkan satu masalah bisnis.