Google Cloud MCP für AlloyDB for AI Agents

1. Einführung

23518f986c1cab33.jpeg

Dieses Codelab bietet eine Anleitung für den Einstieg in den Google Cloud MCP-Server für AlloyDB. Außerdem wird beschrieben, wie Sie ihn als Teil des Toolsets für einen KI-Agenten aktivieren und als Teil einer Anwendung verwenden.

Voraussetzungen

  • Grundkenntnisse in Google Cloud und der Google Cloud Console
  • Grundkenntnisse in der Befehlszeile und Cloud Shell

Lerninhalte

  • AlloyDB-Cluster erstellen und Beispieldaten importieren
  • AlloyDB Data Access API aktivieren
  • Google Cloud MCP für AlloyDB NL aktivieren
  • Google Cloud MCP für AlloyDB zu Ihrem ADK-Agenten hinzufügen
  • Google Cloud MCP für AlloyDB in einer Anwendung verwenden
  • Agents mit AlloyDBMCP für Analysen verwenden

Voraussetzungen

  • Ein Google Cloud-Konto und ein Google Cloud-Projekt
  • Ein Webbrowser wie Chrome, der die Google Cloud Console und die Cloud Shell unterstützt

2. Einrichtung und Anforderungen

Projekteinrichtung

  1. Melden Sie sich in der Google Cloud Console an. Wenn Sie noch kein Gmail- oder Google Workspace-Konto haben, müssen Sie eines erstellen.

Verwenden Sie stattdessen ein privates Konto.

  1. Erstellen Sie ein neues Projekt oder verwenden Sie ein vorhandenes. Klicken Sie zum Erstellen eines neuen Projekts in der Google Cloud Console in der Kopfzeile auf die Schaltfläche „Projekt auswählen“, um ein Pop-up-Fenster zu öffnen.

295004821bab6a87.png

Klicken Sie im Fenster „Projekt auswählen“ auf die Schaltfläche „Neues Projekt“, um ein Dialogfeld für das neue Projekt zu öffnen.

37d264871000675d.png

Geben Sie im Dialogfeld den gewünschten Projektnamen ein und wählen Sie den Speicherort aus.

96d86d3d5655cdbe.png

  • Der Projektname ist der Anzeigename für die Teilnehmer dieses Projekts. Der Projektname wird von Google APIs nicht verwendet und kann jederzeit geändert werden.
  • Die Projekt-ID ist für alle Google Cloud-Projekte eindeutig und unveränderlich. Sie kann also nicht mehr geändert werden, nachdem sie festgelegt wurde. In der Google Cloud Console wird automatisch eine eindeutige ID generiert, die Sie aber anpassen können. Wenn Ihnen die generierte ID nicht gefällt, können Sie eine andere zufällige ID generieren oder eine eigene ID angeben, um die Verfügbarkeit zu prüfen. In den meisten Codelabs müssen Sie auf Ihre Projekt-ID verweisen, die in der Regel mit dem Platzhalter PROJECT_ID angegeben wird.
  • Zur Information: Es gibt einen dritten Wert, die Projektnummer, die von einigen APIs verwendet wird. Weitere Informationen zu diesen drei Werten

Abrechnung aktivieren

Privates Rechnungskonto einrichten

Wenn Sie die Abrechnung mit Google Cloud-Guthaben einrichten, können Sie diesen Schritt überspringen.

Hier können Sie die Abrechnung in der Cloud Console aktivieren, um ein privates Rechnungskonto einzurichten.

Hinweise:

  • Die Kosten für Cloud-Ressourcen für dieses Lab sollten weniger als 3 $ betragen.
  • Sie können die Schritte am Ende dieses Labs ausführen, um Ressourcen zu löschen und so weitere Kosten zu vermeiden.
  • Neue Nutzer haben Anspruch auf den kostenlosen Testzeitraum mit einem Guthaben von 300 $.

Cloud Shell starten

Während Sie Google Cloud von Ihrem Laptop aus per Fernzugriff nutzen können, wird in diesem Codelab Google Cloud Shell verwendet, eine Befehlszeilenumgebung, die in der Cloud ausgeführt wird.

Klicken Sie in der Google Cloud Console rechts oben in der Symbolleiste auf das Cloud Shell-Symbol:

Cloud Shell aktivieren

Alternativ können Sie auch die Tasten G und dann S drücken. Dadurch wird Cloud Shell aktiviert, wenn Sie sich in der Google Cloud Console befinden oder diesen Link verwenden.

Die Bereitstellung und Verbindung mit der Umgebung sollte nur wenige Augenblicke dauern. Anschließend sehen Sie in etwa Folgendes:

Screenshot des Google Cloud Shell-Terminals, auf dem zu sehen ist, dass die Umgebung verbunden ist

Diese virtuelle Maschine verfügt über sämtliche Entwicklertools, die Sie benötigen. Sie bietet ein Basisverzeichnis mit 5 GB nichtflüchtigem Speicher und läuft in Google Cloud, was die Netzwerkleistung und Authentifizierung erheblich verbessert. Sie können alle Aufgaben in diesem Codelab in einem Browser erledigen. Sie müssen nichts installieren.

3. Hinweis

API aktivieren

Wenn Sie AlloyDB, Compute Engine, Netzwerkdienste und Vertex AI verwenden möchten, müssen Sie die entsprechenden APIs in Ihrem Google Cloud-Projekt aktivieren.

Prüfen Sie im Cloud Shell-Terminal, ob Ihre Projekt-ID eingerichtet ist:

gcloud config get-value project

Ihre Google-Projekt-ID sollte zurückgegeben werden.

Legen Sie die Umgebungsvariable PROJECT_ID fest:

PROJECT_ID=$(gcloud config get-value project)

Aktivieren Sie alle erforderlichen Dienste:

gcloud services enable alloydb.googleapis.com \
                       compute.googleapis.com \
                       cloudresourcemanager.googleapis.com \
                       servicenetworking.googleapis.com \
                       aiplatform.googleapis.com \
                       discoveryengine.googleapis.com

Erwartete Ausgabe

student@cloudshell:~ (test-project-001-402417)$ gcloud config set project test-project-001-402417
Updated property [core/project].
student@cloudshell:~ (test-project-001-402417)$ PROJECT_ID=$(gcloud config get-value project)
Your active configuration is: [cloudshell-14650]
student@cloudshell:~ (test-project-001-402417)$ 
student@cloudshell:~ (test-project-001-402417)$ gcloud services enable alloydb.googleapis.com \
                       compute.googleapis.com \
                       cloudresourcemanager.googleapis.com \
                       servicenetworking.googleapis.com \
                       aiplatform.googleapis.com \
                       discoveryengine.googleapis.com
Operation "operations/acat.p2-4470404856-1f44ebd8-894e-4356-bea7-b84165a57442" finished successfully.

4. AlloyDB bereitstellen

AlloyDB-Cluster und primäre Instanz erstellen Sie können die Lösung entweder mit einem vorbereiteten Skript bereitstellen, mit dem alle erforderlichen Ressourcen bereitgestellt werden, oder sie Schritt für Schritt selbst bereitstellen. Eine Anleitung dazu finden Sie in der Dokumentation.

AlloyDB mit automatisiertem Script bereitstellen

Bei diesem Ansatz wird ein automatisiertes Script verwendet, um den AlloyDB-Cluster bereitzustellen und die erforderlichen Informationen für die Arbeit mit den bereitgestellten Ressourcen bereitzustellen.

Führen Sie im Cloud Shell-Terminal den Befehl aus, um das Bereitstellungsscript aus dem Repository zu klonen.

REPO_NAME="codelabs"
REPO_URL="https://github.com/GoogleCloudPlatform/$REPO_NAME"
SOURCE_DIR="alloydb-ai-mcp"

git clone --no-checkout --filter=blob:none --depth=1 $REPO_URL

cd $REPO_NAME
git sparse-checkout set $SOURCE_DIR
git checkout
cd $SOURCE_DIR

Führen Sie das Bereitstellungsskript aus.

./deploy_alloydb.sh

Die Ausführung des Skripts dauert einige Zeit, in der Regel etwa 5 bis 7 Minuten. Die Ausgabe sollte dann Informationen zu Ihrem bereitgestellten AlloyDB-Cluster enthalten. Bitte beachten Sie, dass Ihr Passwort anders sein wird. Notieren Sie es sich für die spätere Verwendung.

...
<redacted>
...
Creating primary instance: alloydb-aip-01-pr (8 vCPUs for TRIAL cluster)
Operation ID: operation-1765988049916-646282264938a-bddce198-9f248715
Creating instance...done.                                                                                                                                                                                                             
----------------------------------------
Deployment Process Completed
Cluster:  alloydb-aip-01 (TRIAL)
Instance: alloydb-aip-01-pr
Region:   us-central1
Initial Password: JBBoDTgixzYwYpkF (if new cluster)
----------------------------------------
 

Den neuen Cluster und die primäre Instanz können Sie auch in der Webkonsole sehen.

4271eb55bcc9ec84.png

5. Datenbank vorbereiten

Sie müssen die Vertex AI-Integration aktivieren, um KI-Funktionen und ‑Operatoren zu verwenden, die Data Access API aktivieren und eine Datenbank für das Beispieldataset erstellen.

Erforderliche Berechtigungen für AlloyDB erteilen

Fügen Sie dem AlloyDB-Dienst-Agent Vertex AI-Berechtigungen hinzu.

Öffnen Sie oben über das Pluszeichen (+) einen weiteren Cloud Shell-Tab.

abc505ac4d41f24e.png

Führen Sie im neuen Cloud Shell-Tab Folgendes aus:

PROJECT_ID=$(gcloud config get-value project)
gcloud projects add-iam-policy-binding $PROJECT_ID \
  --member="serviceAccount:service-$(gcloud projects describe $PROJECT_ID --format="value(projectNumber)")@gcp-sa-alloydb.iam.gserviceaccount.com" \
  --role="roles/aiplatform.user"

gcloud projects add-iam-policy-binding $PROJECT_ID \
  --member="serviceAccount:service-$(gcloud projects describe $PROJECT_ID --format="value(projectNumber)")@gcp-sa-alloydb.iam.gserviceaccount.com" \
  --role="roles/discoveryengine.viewer"

Erwartete Konsolenausgabe:

student@cloudshell:~ (test-project-001-402417)$ PROJECT_ID=$(gcloud config get-value project)
Your active configuration is: [cloudshell-11039]
student@cloudshell:~ (test-project-001-402417)$ gcloud projects add-iam-policy-binding $PROJECT_ID \
  --member="serviceAccount:service-$(gcloud projects describe $PROJECT_ID --format="value(projectNumber)")@gcp-sa-alloydb.iam.gserviceaccount.com" \
  --role="roles/aiplatform.user"
Updated IAM policy for project [test-project-001-402417].
bindings:
- members:
  - serviceAccount:service-4470404856@gcp-sa-alloydb.iam.gserviceaccount.com
  role: roles/aiplatform.user
- members:
... < redacted > 
etag: BwYIEbe_Z3U=
version: 1
 

Data Access API aktivieren

Sie müssen die Data Access API für den AlloyDB-Cluster aktivieren, um MCP-Tools wie execute_sql verwenden zu können.

Führen Sie den Befehl im selben Terminaltab aus.

PROJECT_ID=$(gcloud config get-value project)
REGION=us-central1
ADBCLUSTER=alloydb-aip-01
curl -X PATCH \
 -H "Authorization: Bearer $(gcloud auth print-access-token)" \
 -H "Content-Type: application/json" \
 https://alloydb.googleapis.com/v1alpha/projects/$PROJECT_ID/locations/$REGION/clusters/$ADBCLUSTER/instances/$ADBCLUSTER-pr?updateMask=dataApiAccess \
 -d '{
   "dataApiAccess": "ENABLED",
 }'

Instanz-Flags aktualisieren

Damit wir erweiterte KI-Funktionen in AlloyDB verwenden können, müssen wir einige Datenbank-Flags aktivieren. Nachdem Sie die Data Access API aktiviert haben, kann es einige Minuten dauern, bis die Instanz für die nächsten Änderungen bereit ist. Sehen Sie sich den Status der Instanz in der Konsole an, um sicherzugehen, dass sie das grüne Häkchen hat.

Führen Sie den Befehl im selben Terminaltab aus.

PROJECT_ID=$(gcloud config get-value project)
REGION=us-central1
ADBCLUSTER=alloydb-aip-01
gcloud beta alloydb instances update $ADBCLUSTER-pr \
   --database-flags=google_ml_integration.enable_model_support=on,google_ml_integration.enable_ai_query_engine=on,google_ml_integration.enable_preview_ai_functions=on \
   --region=$REGION \
   --cluster=$ADBCLUSTER \
   --project=$PROJECT_ID \
   --update-mode=FORCE_APPLY

MCP aktivieren

Im nächsten Schritt aktivieren Sie den Google Cloud MCP-Server für AlloyDB in Ihrem Projekt. Der MCP ist standardmäßig nicht aktiviert und ist eine von mehreren Schutzebenen, darunter IAM-Authentifizierung und ‑Autorisierung, Datenzugriff API und Rollen in Ihrem Cluster.

Führen Sie den Befehl im selben Terminaltab aus.

PROJECT_ID=$(gcloud config get-value project)
gcloud beta services mcp enable alloydb.googleapis.com \
    --project=$PROJECT_ID

Schließen Sie den Tab, indem Sie entweder den Befehl „exit“ auf dem Tab ausführen:

exit

Verbindung zu AlloyDB Studio herstellen

In den folgenden Kapiteln können alle SQL-Befehle, für die eine Verbindung zur Datenbank erforderlich ist, in AlloyDB Studio ausgeführt werden. T

Rufen Sie die Seite „Cluster“ in AlloyDB for Postgres auf.

Öffnen Sie die Webkonsolenoberfläche für Ihren AlloyDB-Cluster, indem Sie auf die primäre Instanz klicken.

1d7298e7096e7313.png

Klicken Sie dann links auf „AlloyDB Studio“:

a33131c72ad29478.png

Wählen Sie die Postgres-Datenbank und den Nutzer „postgres“ aus und geben Sie das Passwort an, das beim Erstellen des Clusters angegeben wurde. Klicken Sie dann auf die Schaltfläche „Authentifizieren“.

Wenn das Passwort nicht funktioniert oder Sie es vergessen haben, können Sie es ändern. Weitere Informationen

2fcb84f70448118c.png

Die AlloyDB Studio-Benutzeroberfläche wird geöffnet. Wenn Sie die Befehle in der Datenbank ausführen möchten, klicken Sie rechts auf den Tab „Unbenannte Abfrage“.

6696bc771fab9983.png

Dadurch wird eine Schnittstelle geöffnet, in der Sie SQL-Befehle ausführen können.

ae34288e5bf237c7.png

Datenbank erstellen

Schnellstart zum Erstellen von Datenbanken

Führen Sie im AlloyDB Studio-Editor den folgenden Befehl aus.

Datenbank erstellen:

CREATE DATABASE quickstart_db

Erwartete Ausgabe:

Statement executed successfully

Mit quickstart_db verbinden

Prüfen Sie, ob Ihre Datenbank erstellt wurde, indem Sie eine Verbindung zu ihr herstellen. Stellen Sie über die Schaltfläche zum Wechseln des Nutzers/der Datenbank eine neue Verbindung zum Studio her.

6f5c98f5d0b3d550.png

Wählen Sie in der Drop-down-Liste die neue Datenbank „quickstart_db“ aus und verwenden Sie denselben Nutzer und dasselbe Passwort wie zuvor.

3171ebd8a95f1306.png

Dadurch wird eine neue Verbindung geöffnet, über die Sie mit Objekten aus der Datenbank „quickstart_db“ arbeiten können. Dort können Sie das importierte Schema und die importierten Daten untersuchen.

6. Beispieldaten

Jetzt müssen Sie Objekte in der Datenbank erstellen und Daten laden. Sie verwenden einen fiktiven Datensatz des Unternehmens Cymbal Shipping. Sie enthält fiktive Daten zu Waren, Lkw, Anfragen und Lkw-Fahrten sowie fiktive Fahrer.

Storage-Bucket erstellen

Sie verwenden das Google SDK (gcloud), um Daten aus unserem geklonten Repository in die AlloyDB-Datenbank zu importieren. Dazu müssen Sie einen Speicher-Bucket erstellen und dem AlloyDB-Dienstkonto Zugriff gewähren. Alternativ können Sie es auch immer über die Webkonsole versuchen, wie in der Dokumentation beschrieben.

Führen Sie im Google Cloud Shell-Terminal folgenden Befehl aus:

PROJECT_ID=$(gcloud config get-value project)
REGION=us-central1
gcloud storage buckets create gs://$PROJECT_ID-import --project=$PROJECT_ID --location=$REGION
gcloud storage buckets add-iam-policy-binding gs://$PROJECT_ID-import --member="serviceAccount:service-$(gcloud projects describe $PROJECT_ID --format="value(projectNumber)")@gcp-sa-alloydb.iam.gserviceaccount.com" --role=roles/storage.objectViewer

Daten laden

Als Nächstes laden Sie die Daten. Unser SQL-Dump befindet sich im Ordner des geklonten Repositorys. Beim folgenden Befehl wird davon ausgegangen, dass Sie Ihr Basisverzeichnis als Ausgangspunkt verwendet haben, als Sie das Repository im vorherigen Schritt beim Erstellen des AlloyDB-Clusters geklont haben.

Kopieren Sie den komprimierten SQL-Dump in den neuen Speicher-Bucket:

REPO_NAME="codelabs"
SOURCE_DIR="alloydb-ai-mcp"
cd ~/$REPO_NAME/$SOURCE_DIR
gcloud storage cp ~/$REPO_NAME/$SOURCE_DIR/postgres_dump.sql.gz  gs://$PROJECT_ID-import

Laden Sie die Daten dann in die quickstart_db-Datenbank:

PROJECT_ID=$(gcloud config get-value project)
CLUSTER_NAME=alloydb-aip-01
REGION=us-central1
gcloud alloydb clusters import $CLUSTER_NAME  --region=us-central1 --database=quickstart_db --gcs-uri=gs://$PROJECT_ID-import/postgres_dump.sql.gz --project=$PROJECT_ID --sql

Mit dem Befehl wird das Beispieldataset in die Datenbank „quickstart_db“ geladen. Sie können die Tabellen und Datensätze mit AlloyDB Studio überprüfen.

7. Mit Data Agent arbeiten

Wir beginnen mit einem Beispiel-KI-Agenten, der mit dem Google ADK für Python erstellt wurde, und zeigen, wie Sie ihn für die Verwendung mit dem Google Cloud MCP-Server für AlloyDB konfigurieren.

Quellcode des Agents prüfen

Sehen Sie sich den Agent-Code im geklonten Repository mit dem Google Cloud Shell-Editor an.

REPO_NAME="codelabs"
SOURCE_DIR="alloydb-ai-mcp"
edit ~/$REPO_NAME/$SOURCE_DIR/cymbal_logistic/data_agent/agent.py

Im Agent sehen Sie einen Abschnitt für den Google Cloud MCP-Server für AlloyDB. Wir stellen einen Endpunkt als MCP_SERVER_URL, Authentifizierung und Projekt-ID bereit und fügen ihn dem MCP-Toolset hinzu.

# Google Cloud MCP Server for AlloyDB

MCP_SERVER_URL = "https://alloydb.googleapis.com/mcp"
creds, project_id = default(scopes=["https://www.googleapis.com/auth/cloud-platform"])
if not creds.valid:
    creds.refresh(GoogleAuthRequest())

print(f"Authenticated as project: {project_id}")

# 2. Configure MCP Toolset
# We use StreamableHTTPConnectionParams to pass the auth header
headers = {
    "Authorization": f"Bearer {creds.token}",
    "X-Goog-User-Project": project_id
}
    
connection_params = StreamableHTTPConnectionParams(
    url=MCP_SERVER_URL,
    headers=headers,
    timeout=300.0,
    sse_read_timeout=600.0
)

mcp_toolset = McpToolset(connection_params=connection_params)

Im KI-Agentencode ist das MCP-Toolset als tools-Parameter für den KI-Agenten enthalten. Außerdem gibt es Cluster- und Instanznamen, die Region und die Datenbank als Variablen für den Agent-Prompt.

MODEL_ID = "gemini-3-flash-preview"
cluster_name="alloydb-aip-01"
instance_name="alloydb-aip-01-pr"
location="us-central1"
database_name="quickstart_db"

# Agent configuration

root_agent = Agent(
    model=MODEL_ID,
    name='root_agent',
    description='A helpful assistant for analyst requests.',
    instruction=f"""
    Answer user questions to the best of your knowledge using provided tools.
    Do not try to generate non-existent data but use the grounded data from the database.
    When you answer questions about Cymbal Logistic activity
    use the toolset to run query in the AlloyDB cluster {cluster_name} instance {instance_name} in the location {location}
    in the project {project_id} in the database {database_name}
    Use ai schema to use AI functions and models like gemini-3-flash-preview with the functions from the schema.
    """,
    tools=[mcp_toolset],
)

Der Google Cloud MCP-Dienst für AlloyDB umfasst eine vordefinierte Reihe von Tools. Wenn Sie alle verfügbaren Tools auflisten möchten, können Sie den Befehl curl über das Cloud Shell-Konsolenterminal mit dem folgenden Befehl verwenden. Die aktuelle Referenz für den Google Cloud-MCP-Server für AlloyDB finden Sie immer in der Dokumentation.

curl -s -X POST http://alloydb.googleapis.com/mcp \
  -H "Content-Type: application/json" \
  -d @- <<EOF | jq -r '.result.tools[].name'
{
  "id": "my_id_01",
  "jsonrpc": "2.0",
  "method": "tools/list"
}
EOF

Agent starten

Jetzt können Sie den Agenten im interaktiven Modus über die Google ADK-Weboberfläche starten. Die ADK-Weboberfläche bietet eine praktische Möglichkeit, die Workflows von Agenten zu testen und Fehler zu beheben.

Installieren wir zuerst alle erforderlichen Pakete für Python mit dem Paketmanager „uv“.

REPO_NAME="codelabs"
SOURCE_DIR="alloydb-ai-mcp"
cd ~/$REPO_NAME/$SOURCE_DIR/cymbal_logistic
uv sync

Wenn alle Pakete installiert sind, müssen Sie dem Agent-Verzeichnis eine .env-Datei hinzufügen, damit der Agent Vertex AI für die gesamte Kommunikation mit den KI-Modellen verwendet.

echo "GOOGLE_GENAI_USE_VERTEXAI=true" > data_agent/.env
echo "GOOGLE_CLOUD_PROJECT=$(gcloud config get-value project -q)" >> data_agent/.env
echo "GOOGLE_CLOUD_LOCATION=global" >> data_agent/.env

Dann können Sie den Agenten starten.

uv run adk web --allow_origins 'regex:https://.*\.cloudshell\.dev'

Die Ausgabe sollte in etwa wie im folgenden Beispiel aussehen. Der Endpunkt lautet http://127.0.0.1:8000.

4aa60270e31efe37.jpeg

Sie können in der Cloud Shell auf diese URL klicken. Dadurch wird in einem separaten Browsertab ein Vorschaufenster geöffnet, in dem Sie data_agent aus der Drop-down-Liste auf der linken Seite auswählen.

811a5b12534432d8.jpeg

Im ADK-Webinterface können Sie Ihre Fragen unten rechts eingeben und den vollständigen Ausführungsablauf mit den Traces für jeden Schritt auf der rechten Seite sehen.

8. AlloyDB MCP mit Agent testen

Mit dem Agent können Sie Fragen in kostenloser Form in natürlicher Sprache stellen. Der Agent verwendet den Google Cloud MCP-Server für AlloyDB als Tool, um die Fragen zu beantworten. Die Fragen werden unten rechts und die Antwort mit allen Aufrufen der Tools oben angezeigt.

8c7058ed2b8c2dd8.jpeg

Sie arbeiten mit Betriebsdaten für ein Versandunternehmen, die Informationen zu Versandanträgen, Lkw, Fahrern und Fahrten von Fahrern enthalten. Die erste Frage bezieht sich auf die Anzahl der Fahrten, die im Februar 2026 durchgeführt wurden.

Geben Sie im Eingabefeld unten rechts Folgendes ein und drücken Sie die Eingabetaste.

Hello, can you tell me how many trips we've done in February this year? 

Der Agent führt mehrere Tool-Aufrufe aus, um die richtigen Tabellen im Schema und die Tabellenstruktur zu ermitteln, bevor er die richtige SQL-Anweisung ausführt, um die richtigen Daten abzurufen.

160d758589f025f1.jpeg

Schließlich wird das Ergebnis ausgegeben, nachdem die richtige Abfrage erstellt und in der Datenbank ausgeführt wurde.

Laut den Aufzeichnungen in unserer Datenbank wurden im Februar 2026 108 Fahrten abgeschlossen.

Sie können sehen, was jeder Tool-Aufruf bewirkt, indem Sie auf die Tool-Ausführung klicken. Hier ist beispielsweise die Abfrage, die ausgeführt wurde, um unsere Ergebnisse zu erhalten.

9285cfe2291e085b.jpeg

Machen Sie die Anfrage nun komplexer, indem Sie die Ergebnisse mit dem Vormonat vergleichen lassen.

How is it in comparison in numbers and mileage with the January?

Das Ergebnis wird zurückgegeben, indem verschiedene Abfragen ausgeführt werden, um die Ergebnisse zu analysieren und eine Differenz bei der Anzahl der Fahrten und der Kilometerleistung zu ermitteln.

In comparison to January 2026, February saw a slight decrease in both the number of trips and the total mileage:

January 2026: 114 trips with a total mileage of 185,597 km.
February 2026: 108 trips with a total mileage of 177,893 km.
This represents a decrease of 6 trips and 7,704 km in mileage for February compared to January.

Probieren Sie andere einfache Anfragen über die ADK-Weboberfläche aus und sehen Sie sich an, wie verschiedene Anfragen ausgeführt werden, um die Ergebnisse zu erzielen.

Beenden Sie den Agent, indem Sie im Terminal ctrl+c drücken. Sie können den Browsertab mit der ADK-Weboberfläche schließen.

Jetzt können Sie eine Beispielanwendung ausprobieren und sehen, wie sie als Tool für Datenanalysten verwendet werden kann.

9. Beispiel-App

Im selben geklonten Repository befindet sich eine Beispielanwendung für unser Unternehmen Cymbol Logistic. Die Anwendung verwendet das Python-Framework Mesop von Google .

Sie können den Anwendungscode analysieren, indem Sie die Datei app.py im Cloud Shell-Editor öffnen.

REPO_NAME="codelabs"
SOURCE_DIR="alloydb-ai-mcp"
edit ~/$REPO_NAME/$SOURCE_DIR/cymbal_logistic/app.py

Im Code verwenden wir eine Funktion, um einen neuen Prompt mit Variablen an unseren Daten-Agent zu übergeben. Der Grund dafür ist, dass wir die Konfiguration in der Benutzeroberfläche vornehmen können, wenn wir eine andere Datenbank oder Instanz aufrufen möchten. Hier sind die Funktionsdefinition und der Prompt.

def run_query_sync(request_text, cluster_name, location, instance_name, database_name, project_id, session_id, summary):
    local_runner = FrontendRunner()
    
    instruction = f"""
    Answer user questions to the best of your knowledge using provided tools.
    Do not try to generate non-existent data but use the grounded data from the database.
    When you answer questions about Cymbal Logistic activity
    use the toolset to run query in the AlloyDB cluster {cluster_name} instance {instance_name} in the location {location}
    in the project {project_id} in the database {database_name}
    Use ai schema to use AI functions and models like gemini-3-flash-preview with the functions from the schema.
    """
    ...

Drücken Sie nach der Überprüfung des Codes die Schaltfläche „Terminal“, um die Anwendung zu starten und zu testen. Die Anwendung wird auf Port 8080 gestartet. Wenn Sie den Port ändern möchten, passen Sie den Befehl entsprechend an.

Führen Sie den Befehl in Cloud Shell aus.

REPO_NAME="codelabs"
SOURCE_DIR="alloydb-ai-mcp"
cd ~/$REPO_NAME/$SOURCE_DIR/cymbal_logistic
uv run mesop app.py --port=8080

Klicken Sie dann in Google Cloud Shell auf http://localhost:8080, um die Webvorschau zu verwenden.

ea2315883c3e583a.jpeg

Daraufhin wird ein neuer Tab im Browser mit der Anwendungsoberfläche geöffnet.

Klicken Sie rechts oben auf das Kästchen „Debug-Ausgabe aktivieren“ und geben Sie eine Frage wie die folgende ein.

What was the average speed for each driver last month? List top 5 fasters drivers ranking them by the average speed. Show the name, distance and average speed for each of them.

236bf33373ee8bf.jpeg

Drücke dann die Taste Submit Request.

Der Agent arbeitet im Hintergrund und gibt die Ausgabe und Debugging-Informationen mit allen Abfragen aus, die von unserem MCP-Toolset ausgeführt werden. Sehen Sie sich die Abfragen an, um den Workflow zu sehen.

4130ea489058d102.jpeg

Sie können die Agenten und App-Funktionen testen, indem Sie verschiedene analytische Fragen stellen.

Bisher konnten Sie mit dem Agenten mit MCP einige grundlegende Analysen und Ermittlungen durchführen. Im nächsten Kapitel werden Sie versuchen, erweiterte AlloyDB-Funktionen zu verwenden.

10. AlloyDB AI-Funktionen

Mit den AlloyDB AI-Funktionen können Sie Text und multimodale Daten (insbesondere Bilder) auf intelligente Weise filtern und einstufen und die Leistungsfähigkeit von Gemini für Ihre Anfragen nutzen. Insbesondere die AlloyDB AI-Funktionen AI.IF und AI.RANK können in SQL-Anweisungen zusammen mit herkömmlichen SQL-Operatoren (Filter, Joins, Aggregation usw.) verwendet werden.

Bevor wir die KI-Funktionen verwenden, untersuchen wir eine Suche und Aggregationen mit den „klassischen“ Methoden. Probieren Sie den folgenden Prompt aus.

Can you analyze the activity for the last 5 months and evaluate drivers for the most positive customer feedbacks. Give me top 5 drivers listing names, distance and years of experience for each driver.

Sie kann die Spalte „Bewertung“ in der Tabelle mit Kundenfeedback finden und damit die Fahrer mit der besten Bewertung ermitteln. Anschließend wurden die Informationen verwendet, um weitere Informationen zu den Fahrern zu erhalten.

SELECT 
    d.first_name || ' ' || d.last_name as driver_name,
    SUM(sr.distance_km) as total_distance,
    d.experience_years,
    COUNT(cf.feedback_id) as positive_feedback_count

FROM drivers d

JOIN truck_trips tt ON d.driver_id = tt.driver_id

JOIN customer_feedback cf ON tt.trip_id = cf.trip_id

JOIN shipping_requests sr ON tt.request_id = sr.request_id

WHERE tt.arrival_time >= '2025-12-01' 
AND tt.arrival_time < '2026-05-01'
  
AND cf.rating >= 4

GROUP BY d.driver_id, d.first_name, d.last_name, d.experience_years

ORDER BY positive_feedback_count DESC, total_distance DESC

LIMIT 5;

Die Bewertung enthält jedoch möglicherweise nicht alle Parameter, die wir auswerten möchten. Dazu können wir AlloyDB AI-Funktionen verwenden.

AI.RANK-Operatoren

Die Funktion „ai.rank()“ bewertet, wie gut ein Dokument eine bestimmte Anfrage beantwortet. Sie kann zum Ranking oder erneuten Ranking von Ergebnissen der Abfrage verwendet werden. Weitere Informationen zu Operatoren finden Sie in der Dokumentation.

Ändern Sie die Anfrage und bitten Sie explizit darum, AI.RANK bei der Analyse zu verwenden, um die Faktoren anhand ihrer Leistung und Professionalität zu bewerten.

Can you find the top 5 fastest drivers in the last month and rank them by the feedback using the AI.RANK function?  Give me top drivers  names, distance, years of experience and rank for each driver.

Die Ausführung des Befehls kann etwas länger dauern, da der Agent herausfinden muss, wie die Funktion „AI.RANK“ verwendet wird, die Daten abrufen und „AI.RANK“ anwenden muss, um die Informationen entsprechend zu sortieren. Am Ende sollten Sie die Liste der Treiber erhalten, die vom Modell gerankt wurden, sowie die Liste der ausgeführten Abfragen.

477342ca1aaf1c13.jpeg

Die Ausführung dieser Abfrage kann je nach vom Modell gewähltem Pfad einige Zeit dauern. Im Debug-Fenster sehen Sie die genaue Abfrage, die ausgeführt wurde, um die Informationen zu den Treibern zu erhalten.

WITH fastest_drivers AS (
    SELECT 
        d.driver_id,
        d.first_name || ' ' || d.last_name as driver_name,
        d.experience_years,
        SUM(sr.distance_km) as total_distance,
        AVG(sr.distance_km / (NULLIF(EXTRACT(EPOCH 
FROM (tt.arrival_time - tt.departure_time)), 0) / 3600)) as avg_speed,
        COALESCE(STRING_AGG(cf.feedback_text, ' | '), 'No feedback') as feedbacks,
        ROW_NUMBER() OVER (
ORDER BY AVG(sr.distance_km / (NULLIF(EXTRACT(EPOCH 
FROM (tt.arrival_time - tt.departure_time)), 0) / 3600)) DESC) - 1 as row_idx
    
FROM drivers d
    
JOIN truck_trips tt ON d.driver_id = tt.driver_id
    
JOIN shipping_requests sr ON tt.request_id = sr.request_id
    LEFT 
JOIN customer_feedback cf ON tt.trip_id = cf.trip_id
    
WHERE tt.arrival_time >= '2026-04-04'
      
AND tt.arrival_time IS NOT NULL 
      
AND tt.departure_time IS NOT NULL
      
AND tt.arrival_time > tt.departure_time
    
GROUP BY d.driver_id, d.first_name, d.last_name, d.experience_years
    
ORDER BY avg_speed DESC
    
LIMIT 5
)
SELECT 
    f.driver_name,
    f.total_distance,
    f.experience_years,
    f.avg_speed,
    f.feedbacks,
    (SELECT r.score 
FROM ai.rank(
        'semantic-ranker-fast-004',
        'excellent customer service, professional, friendly, fast, 
and reliable delivery reviews',
        ARRAY[f.feedbacks],
        1
    ) r 
LIMIT 1) as feedback_score

FROM fastest_drivers f

ORDER BY feedback_score DESC;

Sie können die Anwendung weiterhin testen und Abfragen untersuchen, um zu sehen, wie der Agent zu den endgültigen Ergebnissen gelangt.

Damit ist das Lab abgeschlossen. Ich hoffe, Sie konnten sich alle Beispiele ansehen und erfahren, wie Sie den Google Cloud MCP-Dienst für AlloyDB verwenden. Damit Ihr MCP für Unternehmen funktioniert, ist es sinnvoll, ihn mit den in der AlloyDB-Dokumentation beschriebenen NL2SQL-Funktionen von AlloyDB zu kombinieren. Sie können es mit dem Codelab zum Generieren von SQL-Anweisungen für AlloyDB ausprobieren.

11. Umgebung bereinigen

Um unerwartete Kosten zu vermeiden, sollten Sie die temporären Ressourcen bereinigen. Am zuverlässigsten ist es, das Projekt zu löschen, in dem Sie den Workflow getestet haben. Optional können Sie sich jedoch einschränken, indem Sie einzelne Ressourcen wie AlloyDB löschen.

Löschen Sie die AlloyDB-Instanzen und den Cluster, wenn Sie das Lab abgeschlossen haben.

AlloyDB-Cluster und alle Instanzen löschen

Wenn Sie die Testversion von AlloyDB verwendet haben. Löschen Sie den Testcluster nicht, wenn Sie planen, andere Labs und Ressourcen damit zu testen. Sie können keinen weiteren Testcluster im selben Projekt erstellen.

Der Cluster wird mit der Option „force“ zerstört, wodurch auch alle zum Cluster gehörenden Instanzen gelöscht werden.

Definieren Sie in Cloud Shell die Projekt- und Umgebungsvariablen, wenn die Verbindung getrennt wurde und alle vorherigen Einstellungen verloren gegangen sind:

gcloud config set project <your project id>
export REGION=us-central1
export ADBCLUSTER=alloydb-aip-01
export PROJECT_ID=$(gcloud config get-value project)

Löschen Sie den Cluster:

gcloud alloydb clusters delete $ADBCLUSTER --region=$REGION --force

Erwartete Konsolenausgabe:

student@cloudshell:~ (test-project-001-402417)$ gcloud alloydb clusters delete $ADBCLUSTER --region=$REGION --force
All of the cluster data will be lost when the cluster is deleted.

Do you want to continue (Y/n)?  Y

Operation ID: operation-1697820178429-6082890a0b570-4a72f7e4-4c5df36f
Deleting cluster...done.   

AlloyDB-Sicherungen löschen

Löschen Sie alle AlloyDB-Sicherungen für den Cluster:

for i in $(gcloud alloydb backups list --filter="CLUSTER_NAME: projects/$PROJECT_ID/locations/$REGION/clusters/$ADBCLUSTER" --format="value(name)" --sort-by=~createTime) ; do gcloud alloydb backups delete $(basename $i) --region $REGION --quiet; done

Erwartete Konsolenausgabe:

student@cloudshell:~ (test-project-001-402417)$ for i in $(gcloud alloydb backups list --filter="CLUSTER_NAME: projects/$PROJECT_ID/locations/$REGION/clusters/$ADBCLUSTER" --format="value(name)" --sort-by=~createTime) ; do gcloud alloydb backups delete $(basename $i) --region $REGION --quiet; done
Operation ID: operation-1697826266108-60829fb7b5258-7f99dc0b-99f3c35f
Deleting backup...done.                                                                                                                                                                                                                                                            

12. Glückwunsch

Herzlichen Glückwunsch zum Abschluss des Codelabs.

Behandelte Themen

  • AlloyDB-Cluster erstellen und Beispieldaten importieren
  • AlloyDB Data Access API aktivieren
  • Google Cloud MCP für AlloyDB NL aktivieren
  • Google Cloud MCP für AlloyDB zu Ihrem ADK-Agenten hinzufügen
  • Google Cloud MCP für AlloyDB in einer Anwendung verwenden
  • Agents mit AlloyDBMCP für Analysen verwenden

13. Umfrage

Ausgabe:

Wie werden Sie diese Anleitung verwenden?

Nur lesen Lesen und Übungen durchführen