MCP Reference: cloudcli.googleapis.com

Le serveur MCP Cloud CLI fournit des outils permettant d'exécuter des commandes Cloud CLI dans un environnement bac à sable distant.

Un serveur MCP (Model Context Protocol) sert de proxy entre un service externe qui fournit du contexte, des données ou des capacités à un grand modèle de langage (LLM) ou à une application d'IA. Les serveurs MCP connectent les applications d'IA à des systèmes externes tels que des bases de données et des services Web, et traduisent leurs réponses dans un format que l'application d'IA peut comprendre.

Configuration du serveur

Vous devez activer les serveurs MCP et configurer l'authentification avant de les utiliser. Pour en savoir plus sur l'utilisation des serveurs MCP distants Google et Google Cloud, consultez Présentation des serveurs MCP Google Cloud.

Points de terminaison du serveur

Un point de terminaison de service MCP est l'adresse réseau et l'interface de communication (généralement une URL) du serveur MCP qu'une application d'IA (l'hôte du client MCP) utilise pour établir une connexion sécurisée et standardisée. Il s'agit du point de contact permettant au LLM de demander du contexte, d'appeler un outil ou d'accéder à une ressource. Les points de terminaison Google MCP peuvent être globaux ou régionaux.

Le serveur MCP de l'API Cloud CLI Execution possède le point de terminaison MCP global suivant :

  • https://cloudcli.googleapis.com/mcp

Outils MCP

Un outil MCP est une fonction ou une capacité exécutable qu'un serveur MCP expose à un LLM ou à une application d'IA pour effectuer une action dans le monde réel.

Outils

Le serveur MCP cloudcli.googleapis.com dispose des outils suivants :

Outils MCP
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. Lisez 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.

run_bq_command

Exécute une seule commande CLI BigQuery (bq). Cet outil vous permet d'exécuter n'importe quelle commande bq dans le projet de l'utilisateur, y compris les commandes qui créent, mettent à jour ou suppriment des ressources GCP (c'est-à-dire des mutations). AVERTISSEMENT DE SÉCURITÉ CRITIQUE (POTENTIELLEMENT DESTRUCTEUR) : cet outil peut créer, mettre à jour ou supprimer des ressources BigQuery (par exemple, bq rm, bq cancel, bq query). 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 bq suivantes : bq init, bq load, bq pyshell, bq shell. RÈGLES D'EXÉCUTION STRICTES :

  1. Au moins l'un des paramètres --project_id ou --quota_project_id DOIT être spécifié dans la chaîne de commande.
  2. ID de projet et projet de quota : l'indicateur --project_id spécifie le projet de ressources sur lequel la commande s'applique (il est identique à l'indicateur --project de gcloud). L'indicateur --quota_project_id spécifie le projet facturé pour la facturation/le quota de l'appel d'API BigQuery en aval (il est identique à l'indicateur --billing-project de gcloud). Si --project_id est spécifié dans la commande, il sera utilisé comme projet de facturation/quota. Si --project_id n'est pas spécifié OU si --quota_project_id est également spécifié, le projet de facturation/de quota sera celui défini dans l'indicateur --quota_project_id.
  3. 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 : "--project_id=my-project" ou "--location=us". Incorrect : "--project_id my-project" ou "--location us". N'insérez pas d'espaces entre les indicateurs et leurs valeurs.
  4. Aucune configuration par défaut : la commande bq est exécutée de manière apatride. Elle ne charge pas les fichiers de configuration locaux tels que .bigqueryrc. Par conséquent, pour toutes les opérations régionales (par exemple, la création d'un ensemble de données ou l'interrogation d'un ensemble de données régional), vous DEVEZ spécifier explicitement l'indicateur "--location" (par exemple, "--location=us" ou "--location=EU").
  5. Opérations asynchrones : certaines commandes lancent des opérations synchrones de longue durée (par exemple, l'exécution de tâches de requête). Vous DEVEZ TOUJOURS transmettre l'indicateur "--nosync" pour ces commandes afin d'éviter les délais d'attente de l'agent.
  6. Restrictions concernant les commandes : vous NE DEVEZ PAS utiliser les commandes bq suivantes : bq init, bq pyshell, bq shell. Le piping ou l'enchaînement de commandes ne sont PAS acceptés.
  7. Autocorrection : si une commande renvoie une erreur, analysez stderr, corrigez la syntaxe ou les indicateurs, puis réessayez lors de la prochaine itération.

Exemples de commandes bq mutantes : bq mk, bq rm, bq update, bq insert, bq query (sans --dry_run), etc. Utilisation : RunBq(command="bq query --project_id=PROJECT_ID 'SELECT 1'", project="projects/PROJECT_ID", input_files=[{"path": "PATH", "contents": "CONTENTS"}]) Vous DEVEZ fournir la commande bq complète sous forme de chaîne unique dans le paramètre "command". Vous DEVEZ fournir le paramètre "project" (format : projects/PROJECT_ID) en tant que projet d'exécution de l'API pour les vérifications de la facturation, de l'activation de l'API et de la consommation de quota.

Exemples de commandes/schémas bq :

  1. Exécutez une requête : bq query --use_legacy_sql=false --project_id=PROJECT_ID 'SELECT * FROM project.dataset.table LIMIT 10'
  2. Créez un ensemble de données : bq mk --dataset --location=us --project_id=PROJECT_ID myDataset
  3. Créez une table : bq mk --table --project_id=PROJECT_ID myDataset.myTable name:string,value:integer
  4. Supprimer un ensemble de données : bq rm -f --dataset --project_id=PROJECT_ID myDataset
  5. Supprimer une table : bq rm -f -t --project_id=PROJECT_ID myDataset.myTable
  6. Mettre à jour la description d'une table : bq update --description="Nouvelle description" --project_id=PROJECT_ID myDataset.myTable
  7. Répertorier les ensembles de données dans un projet : bq ls --datasets=true --project_id=PROJECT_ID

Obtenir les spécifications de l'outil MCP

Pour obtenir les spécifications des outils MCP pour tous les outils d'un serveur MCP, utilisez la méthode tools/list. L'exemple suivant montre comment utiliser curl pour lister tous les outils et leurs spécifications actuellement disponibles sur le serveur MCP.

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/list",
    "jsonrpc": "2.0",
    "id": 1
}'