MCP Reference: cloudcli.googleapis.com

Der Cloud CLI MCP Server bietet Tools zum Ausführen von Cloud CLI-Befehlen in einer Remote-Sandbox-Umgebung.

Ein MCP-Server (Model Context Protocol) fungiert als Proxy zwischen einem externen Dienst, der einem Large Language Model (LLM) oder einer KI-Anwendung Kontext, Daten oder Funktionen bereitstellt. MCP-Server verbinden KI-Anwendungen mit externen Systemen wie Datenbanken und Webdiensten und übersetzen deren Antworten in ein Format, das die KI-Anwendung versteht.

Server einrichten

Sie müssen MCP-Server aktivieren und die Authentifizierung einrichten, bevor Sie sie verwenden können. Weitere Informationen zur Verwendung von Remote-MCP-Servern von Google und Google Cloud finden Sie unter Übersicht über Google Cloud-MCP-Server.

Serverendpunkte

Ein MCP-Dienstendpunkt ist die Netzwerkadresse und Kommunikationsschnittstelle (in der Regel eine URL) des MCP-Servers, über den eine KI-Anwendung (der Host für den MCP-Client) eine sichere, standardisierte Verbindung herstellt. Er ist der Ansprechpartner für das LLM, um Kontext anzufordern, ein Tool aufzurufen oder auf eine Ressource zuzugreifen. Google-MCP-Endpunkte können global oder regional sein.

Der MCP-Server der Cloud CLI Execution API hat den folgenden globalen MCP-Endpunkt:

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

MCP-Tools

Ein MCP-Tool ist eine Funktion oder ausführbare Funktion, die ein MCP-Server einem LLM oder einer KI-Anwendung zur Verfügung stellt, um eine Aktion in der realen Welt auszuführen.

Tools

Der MCP-Server cloudcli.googleapis.com hat das folgende Tool:

MCP-Tools
run_gcloud_command

Führt einen einzelnen gcloud CLI-Befehl im Google Cloud-Projekt des Nutzers aus. WICHTIGER SICHERHEITSHINWEIS (POTENZIELL DESTRUKTIV): Mit diesem Tool können GCP-Ressourcen erstellt, aktualisiert oder gelöscht werden (z.B. gcloud compute instances delete). Es ist NICHT auf schreibgeschützte Befehle beschränkt. Seien Sie äußerst vorsichtig. VERBOTENE BEFEHLE: Ein Agent darf die folgenden gcloud-Befehle (einschließlich ihrer Alpha-/Beta-Varianten) NICHT ausführen: app deploy, app instances ssh, auth, billing, components, config, docker, feedback, info, init, meta, survey. STRENGE AUSFÜHRUNGSREGELN:

  1. Sie MÜSSEN den Parameter „project“ angeben (d. h. project="projects/PROJECT_ID"), wenn Sie dieses Tool verwenden. Er wird für die Überprüfung der Aktivierung der Cloud CLI Execution API, die Abrechnung, das Kontingent usw. verwendet. Dies ist NICHT dasselbe wie das Flag „--project“ in gcloud-Befehlen, mit dem das Projekt angegeben wird, in dem gcloud ausgeführt wird.
  2. Flag-Formatierung: Sie MÜSSEN immer ein Gleichheitszeichen verwenden, um die Flag-Schlüssel von ihren Werten zu trennen. Richtig: --zone=us-central1-a oder --project=my-project. Falsch: --zone us-central1-a oder --project my-project.
  3. Abrechnungsprojekt: In der Ausführungsumgebung können Sie keine vorkonfigurierten Projekt- oder Abrechnungseinstellungen annehmen. Für Befehle ohne Projektbereich (z.B. auf Ordner- oder Organisationsebene) oder bestimmte Szenarien wie „Requester Pays“ in Cloud Storage MÜSSEN Sie das Flag --billing-project=PROJECT übergeben. Für Befehle mit Projektbereich können Sie zusätzlich --billing-project=PROJECT angeben, um das Kontingentprojekt zu überschreiben. Dies gilt für GCP APIs, die keine Überschreibung des Ressourcenprojekts unterstützen.
  4. Projektbereich: Sie SOLLTEN IMMER das Flag --project=PROJECT_ID für Befehle mit Projektbereich übergeben. Verwenden Sie es nicht für Befehle auf Organisations- oder Ordnerebene. Wenn Sie für einen Befehl mit Projektbereich kein Flag „--project“ angeben, wird das Ressourcenprojekt standardmäßig auf das Projekt festgelegt, das im Flag „--billing-project“ festgelegt ist.
  5. Wenn Sie das Flag „--billing-project“ im gcloud-Befehl angeben, muss der Wert eine Projekt-ID oder eine Projektnummer sein. Der Wert darf kein Sonderwert sein (z. B. LEGACY, CURRENT_PROJECT, CURRENT_PROJECT_WITH_FALLBACK).
  6. In der Befehlszeile muss mindestens eines der Flags „--project“ oder „--billing-project“ angegeben werden.
  7. Asynchrone Vorgänge: Bei zeitaufwendigen synchronen Vorgängen (z.B. Erstellen einer VM oder einer Datenbank) SOLLTEN Sie IMMER das Flag --async übergeben, um Agent-Time-outs zu vermeiden.
  8. Ratenbegrenzung für Logs: Wenn Sie gcloud logging read verwenden, MÜSSEN Sie IMMER ein Flag --limit angeben (z.B. --limit=100), um Time-outs für Anmeldedaten und Verbindungen zu vermeiden.
  9. Selbstkorrektur: Wenn ein Befehl einen Fehler zurückgibt, analysieren Sie „stderr“, korrigieren Sie die Syntax oder Flags und versuchen Sie es in der nächsten Iteration noch einmal.
  10. input_files: (Optional) Eine Liste von Dateien, die in der Umgebung erstellt werden sollen, bevor der Befehl ausgeführt wird. Jede Datei muss einen „Pfad“ (relativ zum aktuellen Verzeichnis) und einen „Inhalt“ haben. Der „Inhalt“ muss Klartext sein, der den Inhalt der Datei darstellt. Dies ist nützlich für Befehle, die aus Dateien lesen (z.B. gcloud builds submit --config=cloudbuild.yaml --async --project=PROJECT_ID).

Beispiel für gcloud-Befehle/Muster:

  1. GCE-Instanzlogs mit dem Schweregrad „ERROR“ oder höher lesen: gcloud logging read "severity>=ERROR AND resource.type='gce_instance'" --limit=10 --order=DESC --project=PROJECT_ID
    • Beachten Sie die Verwendung von Anführungszeichen für den Filterausdruck.
  2. Alle PSC-Endpunkte auflisten: gcloud compute forwarding-rules list --project=PROJECT_ID
  3. Einen PSC-Endpunkt beschreiben: gcloud compute forwarding-rules describe FORWARDING_RULE_NAME --region=REGION --project=PROJECT_ID
    • Beachten Sie die Verwendung von „=“ für das Flag „--region“.
  4. Alle Cluster auflisten: gcloud container clusters list --project=PROJECT_ID
  5. Einen Cluster beschreiben: gcloud container clusters describe CLUSTER_NAME --region=REGION --project=PROJECT_ID
  6. Compute-Instanzen auflisten: gcloud compute instances list --project=PROJECT_ID
  7. IAM-Richtlinie für ein Projekt abrufen: gcloud projects get-iam-policy PROJECT_ID --project=PROJECT_ID

Antwortstrings werden standardmäßig für die Terminalausgabe formatiert (stdout oder stderr). Verwenden Sie das Flag „--format“, um das Format zu ändern.

MCP-Tool-Spezifikationen abrufen

Verwenden Sie die Methode tools/list, um die MCP-Tool-Spezifikationen für alle Tools auf einem MCP-Server abzurufen. Im folgenden Beispiel wird gezeigt, wie Sie mit curl alle Tools und ihre Spezifikationen auflisten, die derzeit auf dem MCP-Server verfügbar sind.

Curl-Anfrage
                      
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
}'