MCP Reference: cloudcli.googleapis.com

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

Un serveur MCP (Model Context Protocol) fait office de proxy entre un service externe qui fournit le contexte, les données ou les 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 la 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 un contexte, d'appeler un outil ou d'accéder à une ressource. Les points de terminaison MCP Google 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). Il ne se limite PAS aux commandes en lecture seule. Faites preuve d'une extrême prudence.

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 la vérification de l'activation de l'API Cloud CLI Execution, la facturation, le quota, etc.). Il ne s'agit PAS de la même chose que l'option --project dans les commandes gcloud utilisées pour spécifier le projet sur lequel gcloud opère.
  2. Formatage des options : Vous DEVEZ toujours utiliser le signe "=" pour séparer les clés d'option 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 de projet préconfiguré ni de paramètres de facturation dans l'environnement d'exécution. Pour les commandes dont la portée n'est pas limitée à 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'option --billing-project=PROJECT. Pour les commandes dont la portée est limitée à un projet, vous POUVEZ également spécifier --billing-project=PROJECT pour remplacer le projet de quota, ce qui prendra effet pour les API GCP qui ne sont pas compatibles avec le remplacement du projet de ressource.
  4. Portée du projet : Vous DEVEZ TOUJOURS transmettre l'option --project=PROJECT_ID pour les commandes dont la portée est limitée à un projet. Ne l'utilisez pas pour les commandes au niveau de l'organisation ou du dossier. Si vous ne fournissez pas de --project flag pour une commande dont la portée est limitée à un projet, le projet de ressource sera défini par défaut sur le projet défini dans l'option --billing-project.
  5. Si vous spécifiez l'option --billing-project dans la commande gcloud, assurez-vous que la valeur est un ID de projet 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. Vous DEVEZ spécifier au moins --project ou --billing-project 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'option --async pour éviter les délais d'expiration de l'agent.
  8. Limitation du taux de journalisation : Lorsque vous utilisez gcloud logging read, vous DEVEZ TOUJOURS inclure une option --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 options, puis réessayez lors de l'itération suivante.
  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" (par rapport 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/modèles gcloud :

  1. Lire les journaux d'instance GCE avec une gravité>=ERROR : 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épertorier tous les points de terminaison PSC : gcloud compute forwarding-rules list --project=PROJECT_ID
  3. Décrire un point de terminaison PSC : gcloud compute forwarding-rules describe FORWARDING_RULE_NAME --region=REGION --project=PROJECT_ID
    • Notez l'utilisation de "=" pour l'option --region.
  4. Répertorier 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. Répertorier les instances Compute : gcloud compute instances list --project=PROJECT_ID
  7. Obtenir la stratégie IAM d'un projet : gcloud projects get-iam-policy PROJECT_ID --project=PROJECT_ID

Les chaînes de réponse sont mises en forme 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 BigQuery CLI (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). Il ne se limite PAS aux commandes en lecture seule. Faites preuve d'une extrême prudence.

COMMANDES INTERDITES : Un agent NE DOIT PAS exécuter les commandes bq suivantes : bq init, bq pyshell, bq shell.

RÈGLES D'EXÉCUTION STRICTES :

  1. Vous DEVEZ spécifier au moins --project_id ou --quota_project_id dans la chaîne de commande.
  2. ID de projet et projet de quota : L'option --project_id spécifie le projet de ressource sur lequel la commande opère (reflète l'option --project de gcloud). L'option --quota_project_id spécifie le projet facturé pour la facturation/le quota de l'appel d'API BigQuery en aval (reflète l'option --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 spécifié en plus, le projet de facturation/quota sera le projet défini dans l'option --quota_project_id.
  3. Formatage des options : Vous DEVEZ toujours utiliser le signe "=" pour séparer les clés d'option 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'utilisez pas d'espaces entre les options et leurs valeurs.
  4. Aucune configuration par défaut : La commande bq est exécutée de manière sans état. 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'option --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 jobs de requête). Vous DEVEZ TOUJOURS transmettre l'option --nosync pour ces commandes afin d'éviter les délais d'expiration de l'agent.
  6. Restrictions de commande : Vous NE DEVEZ PAS utiliser les commandes bq suivantes : bq init, bq pyshell, bq shell. Le piping ou le chaînage de commandes NE SONT PAS pris en charge.
  7. Autocorrection : Si une commande renvoie une erreur, analysez stderr, corrigez la syntaxe ou les options, puis réessayez lors de l'itération suivante.

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) comme projet d'exécution de l'API pour la facturation, l'activation de l'API et les vérifications de la consommation de quota.

Exemples de commandes/modèles bq :

  1. Exécuter une requête : bq query --use_legacy_sql=false --project_id=PROJECT_ID 'SELECT * FROMproject.dataset.tableLIMIT 10'
  2. Créer un ensemble de données : bq mk --dataset --location=us --project_id=PROJECT_ID myDataset
  3. Créer 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 de la table : bq update --description="New 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 de l'outil MCP pour tous les outils d'un serveur MCP, utilisez la méthode tools/list. L'exemple suivant montre comment utiliser curl pour répertorier tous les outils et leurs spécifications actuellement disponibles dans 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
}'