MCP Tools Reference: cloudcli.googleapis.com

Outil : run_gcloud_command

Exécute une seule commande gcloud CLI dans le projet Google Cloud de l'utilisateur. AVERTISSEMENT DE SÉCURITÉ CRITIQUE (POTENTIELLEMENT DESTRUCTEUR) : cet outil peut créer, mettre à jour ou supprimer des ressources GCP (par exemple, gcloud compute instances delete). Elle n'est PAS limitée aux commandes en lecture seule. Soyez extrêmement prudent. COMMANDES INTERDITES : un agent NE DOIT PAS exécuter les commandes gcloud suivantes (y compris leurs variantes alpha/bêta) : app deploy, app instances ssh, auth, billing, components, config, docker, feedback, info, init, meta, survey. RÈGLES D'EXÉCUTION STRICTES :

  1. Vous DEVEZ fournir le paramètre "project" (c'est-à-dire project="projects/PROJECT_ID") lorsque vous utilisez cet outil (il est utilisé pour vérifier l'activation de l'API Cloud CLI Execution, la facturation, le quota, etc.). Il ne s'agit PAS du même projet que celui spécifié par l'indicateur "--project" dans les commandes gcloud.
  2. Mise en forme des indicateurs : vous devez toujours utiliser le signe "=" pour séparer les clés d'indicateur de leurs valeurs pour toutes les options longues. Correct : --zone=us-central1-a ou --project=my-project. Incorrect : --zone us-central1-a ou --project my-project.
  3. Projet de facturation : vous ne pouvez pas supposer que des paramètres de projet ou de facturation préconfigurés sont présents dans l'environnement d'exécution. Pour les commandes non limitées à un projet (par exemple, au niveau d'un dossier ou d'une organisation) ou pour des scénarios spécifiques tels que Cloud Storage Requester Pays, vous DEVEZ transmettre l'indicateur --billing-project=PROJECT. Pour les commandes à portée de projet, vous POUVEZ également spécifier --billing-project=PROJECT pour remplacer le projet de quota. Cette option prendra effet pour les API GCP qui ne sont pas compatibles avec le remplacement du projet de ressources.
  4. Portée du projet : vous DEVEZ TOUJOURS transmettre l'indicateur --project=PROJECT_ID pour les commandes à portée de projet. Ne l'utilisez pas pour les commandes au niveau de l'organisation ou du dossier. Si vous ne fournissez pas de flag "--project" pour une commande à portée de projet, le projet de ressource sera défini par défaut sur le projet défini dans le flag "--billing-project".
  5. Si vous spécifiez l'indicateur --billing-project dans la commande gcloud, assurez-vous que la valeur est un ID ou un numéro de projet. La valeur ne DOIT PAS être une valeur spéciale (c'est-à-dire LEGACY, CURRENT_PROJECT, CURRENT_PROJECT_WITH_FALLBACK).
  6. Au moins l'un des paramètres --project ou --billing-project DOIT être spécifié dans la chaîne de commande.
  7. Opérations asynchrones : pour les opérations synchrones de longue durée (par exemple, la création d'une VM ou d'une base de données), vous DEVEZ TOUJOURS transmettre l'indicateur --async pour éviter les délais d'attente de l'agent.
  8. Limitation du débit de journaux : lorsque vous utilisez gcloud logging read, vous DEVEZ TOUJOURS inclure un indicateur --limit (par exemple, --limit=100) pour éviter les délais d'expiration des identifiants et des connexions.
  9. Autocorrection : si une commande renvoie une erreur, analysez stderr, corrigez la syntaxe ou les indicateurs, puis réessayez lors de la prochaine itération.
  10. input_files : (facultatif) liste des fichiers à créer dans l'environnement avant d'exécuter la commande. Chaque fichier doit avoir un "chemin d'accès" (relatif au répertoire actuel) et un "contenu". Le contenu doit être du texte brut représentant le contenu du fichier. Cela est utile pour les commandes qui lisent des fichiers (par exemple, gcloud builds submit --config=cloudbuild.yaml --async --project=PROJECT_ID).

Exemples de commandes/schémas gcloud :

  1. Consultez les journaux d'instance GCE avec le niveau de gravité "ERROR" ou supérieur : gcloud logging read "severity>=ERROR AND resource.type='gce_instance'" --limit=10 --order=DESC --project=PROJECT_ID
    • Notez l'utilisation de guillemets pour l'expression de filtre.
  2. Répertoriez tous les points de terminaison PSC : gcloud compute forwarding-rules list --project=PROJECT_ID
  3. Décrivez un point de terminaison PSC : gcloud compute forwarding-rules describe FORWARDING_RULE_NAME --region=REGION --project=PROJECT_ID
    • Notez l'utilisation de "=" pour le flag --region.
  4. Répertoriez tous les clusters : gcloud container clusters list --project=PROJECT_ID
  5. Décrire un cluster : gcloud container clusters describe CLUSTER_NAME --region=REGION --project=PROJECT_ID
  6. Listez les instances de calcul : gcloud compute instances list --project=PROJECT_ID
  7. Obtenir la stratégie IAM pour un projet : gcloud projects get-iam-policy PROJECT_ID --project=PROJECT_ID

Les chaînes de réponse sont formatées pour la sortie du terminal par défaut (stdout ou stderr). Utilisez l'option --format pour modifier le format.

L'exemple suivant montre comment utiliser curl pour appeler l'outil MCP run_gcloud_command.

Requête 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
}'
                

Schéma d'entrée

Message de requête pour RunGcloud.

RunGcloudRequest

Représentation JSON
{
  "project": string,
  "command": string,
  "inputFiles": [
    {
      object (File)
    }
  ]
}
Champs
project

string

Obligatoire. Projet pour l'activation de l'API et la consommation de quotas pour l'API Cloud CLI Execution.

Le format doit être projects/ ou projects/.

command

string

Obligatoire. Ligne de commande gcloud complète à exécuter sous forme de chaîne unique. Exemple : "gcloud compute instances create my-vm --zone=us-central1-a"

Les LLM sont invités à utiliser l'indicateur --async pour les opérations de longue durée afin d'éviter les délais d'expiration.

inputFiles[]

object (File)

Facultatif. Fichiers à mettre à la disposition de la commande gcloud pour son exécution.

Fichier

Représentation JSON
{
  "path": string,
  "contents": string
}
Champs
path

string

Obligatoire. Chemin d'accès au fichier par rapport au répertoire d'accueil. Ne doit pas contenir de traversée de répertoire parent (..) ni d'expansion de shell.

contents

string

Obligatoire. Contenu du fichier.

Schéma de sortie

Message de réponse pour RunGcloud.

RunGcloudResponse

Représentation JSON
{
  "response": {
    object (CliExecutionResponse)
  },
  "outputFiles": [
    {
      object (File)
    }
  ]
}
Champs
response

object (CliExecutionResponse)

Réponse de l'exécution de l'outil CLI, contenant des flux stdout et stderr indépendants, ainsi qu'un code de sortie.

outputFiles[]

object (File)

Fichiers générés par la commande gcloud lors de son exécution.

CliExecutionResponse

Représentation JSON
{
  "stdout": string,
  "stderr": string,
  "exitCode": string
}
Champs
stdout

string

Flux stdout de l'exécution de l'outil CLI.

stderr

string

Flux stderr de l'exécution de l'outil CLI.

exitCode

string (int64 format)

Code de sortie de l'exécution de l'outil CLI.

Fichier

Représentation JSON
{
  "path": string,
  "contents": string
}
Champs
path

string

Obligatoire. Chemin d'accès au fichier par rapport au répertoire d'accueil. Ne doit pas contenir de traversée de répertoire parent (..) ni d'expansion de shell.

contents

string

Obligatoire. Contenu du fichier.

Annotations d'outils

Indication de destruction : ✅ | Indication d'idempotence : ❌ | Indication de lecture seule : ❌ | Indication de monde ouvert : ❌