Strumento: run_gcloud_command
Esegue un singolo comando dell'interfaccia a riga di comando gcloud CLI all'interno del progetto Google Cloud dell'utente. AVVISO DI SICUREZZA CRITICO (POTENZIALMENTE DISTRUTTIVO): questo strumento può creare, aggiornare o eliminare risorse Google Cloud (ad es. gcloud compute instances delete). NON è limitato ai comandi di sola lettura. Usa estrema cautela. COMANDI VIETATI: un agente NON DEVE eseguire i seguenti comandi gcloud (incluse le varianti alpha/beta): app deploy, app instances ssh, auth, billing, components, config, docker, feedback, info, init, meta, survey. REGOLE DI ESECUZIONE RIGIDE:
- Quando utilizzi questo strumento, DEVI fornire il parametro "project" (ad es. project="projects/PROJECT_ID"), che viene utilizzato per il controllo dell'attivazione dell'API Cloud CLI Execution, la fatturazione, la quota e così via. Questo NON è lo stesso del flag --project nei comandi gcloud utilizzati per specificare il progetto su cui opera gcloud.
- Formattazione dei flag: devi sempre utilizzare il segno "=" per separare le chiavi dei flag dai relativi valori per tutte le opzioni lunghe. Corretto:
--zone=us-central1-ao--project=my-project. Errato:--zone us-central1-ao--project my-project. - Progetto di fatturazione: non puoi presupporre impostazioni di fatturazione o di progetto preconfigurate nell'ambiente di esecuzione. Per i comandi non limitati al progetto (ad es. a livello di cartella o organizzazione) o per scenari specifici come Cloud Storage Requester Pays, DEVI passare il flag
--billing-project=PROJECT. Per i comandi con ambito progetto, PUOI specificare anche--billing-project=PROJECTper eseguire l'override del progetto di quota, che avrà effetto per le API GCP che non supportano l'override del progetto di risorse. - Ambito del progetto: DEVI SEMPRE passare il flag
--project=PROJECT_IDper i comandi con ambito del progetto. Non utilizzarlo per i comandi a livello di organizzazione o cartella. Se non fornisci un flag --project per un comando con ambito progetto, il progetto risorsa verrà impostato per impostazione predefinita sul progetto impostato nel flag --billing-project. - Se specifichi il flag --billing-project nel comando gcloud, assicurati che il valore sia un ID progetto o un numero di progetto. Il valore NON DEVE essere un valore speciale (ad es. LEGACY, CURRENT_PROJECT, CURRENT_PROJECT_WITH_FALLBACK).
- Nella stringa di comando deve essere specificato almeno uno dei parametri --project o --billing-project.
- Operazioni asincrone: per le operazioni sincrone a lunga esecuzione (ad es. la creazione di una VM o di un database), DEVI SEMPRE passare il flag
--asyncper evitare timeout dell'agente. - Limitazione della frequenza di logging: quando utilizzi
gcloud logging read, DEVI SEMPRE includere un flag--limit(ad es.--limit=100) per evitare timeout di connessione e delle credenziali. - Correzione automatica: se un comando restituisce un errore, analizza stderr, correggi la sintassi o i flag e riprova nell'iterazione successiva.
- input_files: (facoltativo) un elenco di file da creare nell'ambiente prima di eseguire il comando. Ogni file deve avere un "path" (relativo alla directory corrente) e "contents". I "contenuti" devono essere testo normale che rappresenta i contenuti del file. Questo è utile per i comandi che leggono dai file (ad es. gcloud builds submit --config=cloudbuild.yaml --async --project=PROJECT_ID).
Comandi/pattern gcloud di esempio:
- Leggi i log dell'istanza GCE con gravità >=ERROR:
gcloud logging read "severity>=ERROR AND resource.type='gce_instance'" --limit=10 --order=DESC --project=PROJECT_ID- Tieni presente l'utilizzo delle virgolette per l'espressione di filtro.
- Elenca tutti gli endpoint PSC:
gcloud compute forwarding-rules list --project=PROJECT_ID - Descrivi un endpoint PSC:
gcloud compute forwarding-rules describe FORWARDING_RULE_NAME --region=REGION --project=PROJECT_ID- Tieni presente l'utilizzo di "=" per il flag --region.
- Elenca tutti i cluster:
gcloud container clusters list --project=PROJECT_ID - Descrivere un cluster:
gcloud container clusters describe CLUSTER_NAME --region=REGION --project=PROJECT_ID - Elenca le istanze di Compute:
gcloud compute instances list --project=PROJECT_ID - Recupera il criterio IAM per un progetto:
gcloud projects get-iam-policy PROJECT_ID --project=PROJECT_ID
Le stringhe di risposta sono formattate per l'output del terminale per impostazione predefinita (stdout o stderr). Utilizza il flag --format per modificare il formato.
Il seguente esempio mostra come utilizzare curl per richiamare lo strumento MCP run_gcloud_command.
| Richiesta 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 }' |
Schema di input
Messaggio di richiesta per RunGcloud.
RunGcloudRequest
| Rappresentazione JSON |
|---|
{
"project": string,
"command": string,
"inputFiles": [
{
object ( |
| Campi | |
|---|---|
project |
Obbligatorio. Progetto per l'abilitazione dell'API e il consumo di quote per l'API Cloud CLI Execution. Il formato deve essere projects/ |
command |
Obbligatorio. L'intera riga di comando gcloud da eseguire come singola stringa. Esempio: "gcloud compute instances create my-vm --zone=us-central1-a" Gli LLM sono istruiti a utilizzare il flag |
inputFiles[] |
Facoltativo. File da rendere disponibili al comando gcloud per la sua esecuzione. |
File
| Rappresentazione JSON |
|---|
{ "path": string, "contents": string } |
| Campi | |
|---|---|
path |
Obbligatorio. Percorso del file relativo alla home directory. Non deve contenere attraversamento della directory principale (..) o espansioni della shell. |
contents |
Obbligatorio. Contenuti del file. |
Schema di output
Messaggio di risposta per RunGcloud.
RunGcloudResponse
| Rappresentazione JSON |
|---|
{ "response": { object ( |
| Campi | |
|---|---|
response |
La risposta all'esecuzione dello strumento CLI, contenente stdout, flusso stderr indipendenti e un codice di uscita. |
outputFiles[] |
File generati dall'esecuzione del comando gcloud. |
CliExecutionResponse
| Rappresentazione JSON |
|---|
{ "stdout": string, "stderr": string, "exitCode": string } |
| Campi | |
|---|---|
stdout |
Lo stream stdout dall'esecuzione dello strumento CLI. |
stderr |
Il flusso stderr dall'esecuzione dello strumento dell'interfaccia a riga di comando. |
exitCode |
Il codice di uscita dell'esecuzione dello strumento CLI. |
File
| Rappresentazione JSON |
|---|
{ "path": string, "contents": string } |
| Campi | |
|---|---|
path |
Obbligatorio. Percorso del file relativo alla home directory. Non deve contenere attraversamento della directory principale (..) o espansioni della shell. |
contents |
Obbligatorio. Contenuti del file. |
Annotazioni dello strumento
Suggerimento distruttivo: ✅ | Suggerimento idempotente: ❌ | Suggerimento di sola lettura: ❌ | Suggerimento open world: ❌