MCP Tools Reference: cloudcli.googleapis.com

Alat: run_gcloud_command

Menjalankan satu perintah gcloud CLI dalam project Google Cloud pengguna. PERINGATAN KESELAMATAN KRITIS (BERPOTENSI MERUSAK): Alat ini dapat membuat, memperbarui, atau menghapus resource GCP (misalnya, gcloud compute instances delete). Alat ini TIDAK dibatasi untuk perintah hanya baca. Gunakan dengan sangat hati-hati. PERINTAH YANG DILARANG: Agen TIDAK BOLEH menjalankan perintah gcloud berikut (termasuk varian alfa/beta-nya): app deploy, app instances ssh, auth, billing, components, config, docker, feedback, info, init, meta, survey. ATURAN EKSEKUSI YANG KETAT:

  1. Anda HARUS memberikan parameter 'project' (yaitu project="projects/PROJECT_ID") saat menggunakan alat ini (digunakan untuk pemeriksaan pengaktifan Cloud CLI Execution API, penagihan, kuota, dll.). Parameter ini TIDAK sama dengan flag --project dalam perintah gcloud yang digunakan untuk menentukan project yang dioperasikan gcloud.
  2. Pemformatan Flag: Anda HARUS selalu menggunakan tanda '=' untuk memisahkan kunci flag dari nilainya untuk semua opsi panjang. Benar: --zone=us-central1-a atau --project=my-project. Salah: --zone us-central1-a atau --project my-project.
  3. Project Penagihan: Anda tidak dapat mengasumsikan project atau setelan penagihan yang telah dikonfigurasi sebelumnya di lingkungan eksekusi. Untuk perintah yang tidak memiliki cakupan project (misalnya, tingkat folder atau organisasi) atau skenario tertentu seperti Cloud Storage Requester Pays, Anda HARUS meneruskan flag --billing-project=PROJECT. Untuk perintah yang memiliki cakupan project, Anda DAPAT menentukan --billing-project=PROJECT secara opsional untuk mengganti project kuota, yang akan berlaku untuk GCP API yang tidak mendukung resource-project-override.
  4. Cakupan Project: Anda HARUS SELALU meneruskan flag --project=PROJECT_ID untuk perintah yang memiliki cakupan project. Jangan gunakan untuk perintah tingkat organisasi atau folder. Jika Anda tidak memberikan flag --project untuk perintah yang memiliki cakupan project, project resource akan ditetapkan secara default ke project yang ditetapkan dalam flag --billing-project.
  5. Jika menentukan flag --billing-project dalam perintah gcloud, pastikan nilainya adalah project ID atau nomor project. Nilai tersebut TIDAK BOLEH berupa nilai khusus (yaitu LEGACY, CURRENT_PROJECT, CURRENT_PROJECT_WITH_FALLBACK).
  6. Setidaknya salah satu dari --project atau --billing-project HARUS ditentukan dalam string perintah.
  7. Operasi Asinkron: Untuk operasi sinkron yang berjalan lama (misalnya, membuat VM atau database), Anda HARUS SELALU meneruskan flag --async untuk mencegah waktu tunggu agen.
  8. Pembatasan Frekuensi Log: Saat menggunakan gcloud logging read, Anda HARUS SELALU menyertakan flag --limit (misalnya, --limit=100) untuk mencegah waktu tunggu kredensial dan koneksi.
  9. Koreksi Mandiri: Jika perintah menampilkan error, analisis stderr, koreksi sintaksis atau flag, lalu coba lagi pada iterasi berikutnya.
  10. input_files: (Opsional) Daftar file yang akan dibuat di lingkungan sebelum menjalankan perintah. Setiap file harus memiliki 'path' (relatif terhadap direktori saat ini) dan 'contents'. 'contents' harus berupa teks biasa yang mewakili konten file. Hal ini berguna untuk perintah yang membaca dari file (misalnya, gcloud builds submit --config=cloudbuild.yaml --async --project=PROJECT_ID).

Contoh perintah/pola gcloud:

  1. Membaca log instance GCE dengan tingkat keparahan>=ERROR: gcloud logging read "severity>=ERROR AND resource.type='gce_instance'" --limit=10 --order=DESC --project=PROJECT_ID
    • Perhatikan penggunaan tanda kutip untuk ekspresi filter.
  2. Mencantumkan semua endpoint PSC: gcloud compute forwarding-rules list --project=PROJECT_ID
  3. Mendeskripsikan endpoint PSC: gcloud compute forwarding-rules describe FORWARDING_RULE_NAME --region=REGION --project=PROJECT_ID
    • Perhatikan penggunaan '=' untuk flag --region.
  4. Mencantumkan semua cluster: gcloud container clusters list --project=PROJECT_ID
  5. Mendeskripsikan cluster: gcloud container clusters describe CLUSTER_NAME --region=REGION --project=PROJECT_ID
  6. Mencantumkan instance komputasi: gcloud compute instances list --project=PROJECT_ID
  7. Mendapatkan kebijakan IAM untuk project: gcloud projects get-iam-policy PROJECT_ID --project=PROJECT_ID

String respons diformat untuk output terminal secara default (stdout atau stderr). Gunakan flag --format untuk mengubah format.

Contoh berikut menunjukkan cara menggunakan curl untuk memanggil alat MCP run_gcloud_command.

Permintaan Curl
                  
curl --location 'https://cloudcli.googleapis.com/mcp' \
--header 'content-type: application/json' \
--header 'accept: application/json, text/event-stream' \
--data '{
  "method": "tools/call",
  "params": {
    "name": "run_gcloud_command",
    "arguments": {
      // provide these details according to the tool's MCP specification
    }
  },
  "jsonrpc": "2.0",
  "id": 1
}'
                

Skema Input

Pesan permintaan untuk RunGcloud.

RunGcloudRequest

Representasi JSON
{
  "project": string,
  "command": string,
  "inputFiles": [
    {
      object (File)
    }
  ]
}
Kolom
project

string

Wajib diisi. Project untuk pengaktifan API dan penggunaan kuota untuk Cloud CLI Execution API.

Format harus berupa projects/ atau projects/

command

string

Wajib diisi. Baris command line gcloud lengkap untuk dijalankan sebagai satu string. Contoh: "gcloud compute instances create my-vm --zone=us-central1-a"

LLM diinstruksikan untuk menggunakan flag --async untuk operasi yang berjalan lama guna menghindari waktu tunggu.

inputFiles[]

object (File)

Opsional. File yang akan disediakan untuk perintah gcloud agar dapat dijalankan.

File

Representasi JSON
{
  "path": string,
  "contents": string
}
Kolom
path

string

Wajib diisi. Jalur file relatif terhadap direktori utama. Tidak boleh berisi traversal direktori induk (..) atau ekspansi shell.

contents

string

Wajib diisi. Isi file.

Skema Output

Pesan respons untuk RunGcloud.

RunGcloudResponse

Representasi JSON
{
  "response": {
    object (CliExecutionResponse)
  },
  "outputFiles": [
    {
      object (File)
    }
  ]
}
Kolom
response

object (CliExecutionResponse)

Respons dari eksekusi alat CLI, yang berisi aliran stdout, stderr independen, dan kode keluar.

outputFiles[]

object (File)

File yang dihasilkan oleh perintah gcloud dari eksekusinya.

CliExecutionResponse

Representasi JSON
{
  "stdout": string,
  "stderr": string,
  "exitCode": string
}
Kolom
stdout

string

Aliran stdout dari eksekusi alat CLI.

stderr

string

Aliran stderr dari eksekusi alat CLI.

exitCode

string (int64 format)

Kode keluar dari eksekusi alat CLI.

File

Representasi JSON
{
  "path": string,
  "contents": string
}
Kolom
path

string

Wajib diisi. Jalur file relatif terhadap direktori utama. Tidak boleh berisi traversal direktori induk (..) atau ekspansi shell.

contents

string

Wajib diisi. Isi file.

Anotasi Alat

Petunjuk Destruktif: ✅ | Petunjuk Idempoten: ❌ | Petunjuk Hanya Baca: ❌ | Petunjuk Dunia Terbuka: ❌