1. Introduzione
Ti diamo il benvenuto. In questo codelab, imparerai a potenziare i tuoi agenti AI utilizzando i server Model Context Protocol (MCP) gestiti da Google.
Il Model Context Protocol (MCP) è uno standard open source che consente ai modelli di AI di connettersi in modo sicuro ed efficiente a strumenti e origini dati esterni. Sebbene la maggior parte delle implementazioni MCP venga eseguita localmente sul tuo computer, Google fornisce server MCP remoti gestiti. Si tratta di endpoint completamente ospitati e pronti per l'uso aziendale che consentono ai tuoi agenti di interagire direttamente con l'infrastruttura Google Cloud senza che tu debba gestire codice o container lato server.
Il vantaggio di "Gestito"
A differenza dei server MCP locali che utilizzano l'input/output standard (stdio), i server gestiti di Google utilizzano Streamable HTTP. Questa architettura offre:
- Infrastruttura zero:nessun server da eseguire il provisioning o scalare.
- Sicurezza by design:integrazione nativa con Google Cloud IAM e Audit Logs.
- Scalabilità stateless: interazione perfetta tramite bilanciatori del carico e proxy standard.
Obiettivi didattici
- Come attivare e autenticare i server MCP gestiti.
- Come utilizzare il server MCP Cloud Logging come base di riferimento.
- Come orchestrare più server MCP (Developer Knowledge, Firestore e così via) per creare workflow autonomi.
Che cosa ti serve
- Un progetto Google Cloud con la fatturazione abilitata.
- Familiarità con la console Google Cloud e la CLI
gcloud. - Google Cloud Shell (Gemini CLI è preinstallata).
Questo codelab è pensato per utenti e sviluppatori di tutti i livelli (inclusi i principianti).
Problemi relativi ai rapporti
Mentre lavori al codelab e con Antigravity, potresti riscontrare problemi.
Per problemi relativi al codelab (errori di battitura, istruzioni errate), apri un bug con il pulsante Report a mistake nell'angolo in basso a sinistra di questo codelab:

2. Prima di iniziare
In questo passaggio, preparerai l'ambiente Google Cloud. Eseguiremo tutte le attività in Google Cloud Shell, che fornisce un terminale persistente e preconfigurato.
Attiva Cloud Shell
- Vai alla console Google Cloud.
- Fai clic sull'icona Attiva Cloud Shell nell'intestazione in alto a destra.
- Una volta avviata la sessione del terminale, autorizza il prompt se richiesto.
Imposta l'ID progetto
Assicurati che Cloud Shell punti al progetto corretto:
# Set your active project
gcloud config set project YOUR_PROJECT_ID
# Verify the setting
gcloud config list project
Abilitare le API Foundation
I server MCP gestiti richiedono l'abilitazione sia dell'API del prodotto sottostante sia dell'interfaccia MCP. Esegui questo comando per abilitare il backend Cloud Logging (la nostra base di riferimento per questo lab):
# Enable the Cloud Logging API and its MCP interface
gcloud services enable logging.googleapis.com
gcloud beta services mcp enable logging.googleapis.com
Nota:i servizi MCP gestiti sono attualmente in versione beta. Per attivarli, devi utilizzare il componente gcloud beta.
Configurare le credenziali predefinite dell'applicazione (ADC)
Gemini CLI utilizza la tua identità utente per comunicare con i server MCP. Concedi all'agente l'autorizzazione ad agire per tuo conto:
gcloud auth application-default login
Segui l'URL nel terminale, accedi e incolla il codice di autorizzazione in Cloud Shell.
Assegna ruoli IAM di base
I server MCP gestiti utilizzano un modello di sicurezza a due livelli. Devi aprire due "porte" specifiche:
- Gate 1 (accesso MCP): il ruolo che ti consente di chiamare il protocollo.
- Gate 2 (accesso al servizio): il ruolo che ti consente di visualizzare i dati (ad es. visualizzare i log).
Esegui questo comando per concederti l'accesso richiesto:
export PROJECT_ID=$(gcloud config get-value project)
export USER_EMAIL=$(gcloud config get-value account)
# Gate 1: Permission to use the MCP protocol
gcloud projects add-iam-policy-binding $PROJECT_ID \
--member="user:$USER_EMAIL" \
--role="roles/mcp.toolUser"
# Gate 2: Permission to view the actual logs
gcloud projects add-iam-policy-binding $PROJECT_ID \
--member="user:$USER_EMAIL" \
--role="roles/logging.viewer"
3. Elementi di base: connettere il primo server MCP
In questo passaggio, collegherai il tuo agente AI (Gemini CLI) al server MCP di Google Cloud Logging. Si tratta della nostra "base" perché consente all'agente di vedere cosa sta succedendo all'interno del tuo progetto in tempo reale.
Attività 1: configura il server MCP di logging
L'interfaccia a riga di comando di Gemini utilizza un file settings.json per gestire le connessioni. Dovrai modificare questo file (presente nella cartella ~/.gemini) per aggiungere il seguente snippet all'interno del blocco mcpServers. Sostituisci YOUR_PROJECT_ID con l'ID progetto effettivo:
"logging-mcp": {
"httpUrl": "https://logging.googleapis.com/mcp",
"authProviderType": "google_credentials",
"oauth": {
"scopes": [
"https://www.googleapis.com/auth/logging.read"
]
},
"timeout": 30000,
"headers": {
"x-goog-user-project": "YOUR_PROJECT_ID"
}
}
Nota: l'intestazione x-goog-user-project è obbligatoria per i server Managed MCP per garantire che l'utilizzo e la fatturazione delle API siano attribuiti correttamente al tuo progetto.
Attività 2: simula l'attività del progetto (crea log)
Se il tuo progetto è nuovo o inattivo, potrebbe non avere log "interessanti" recenti. Utilizziamo la CLI gcloud per inserire alcune voci personalizzate in modo che l'agente abbia qualcosa da trovare.
Esegui questi comandi uno alla volta per simulare una sequenza di eventi:
# 1. Simulate a standard system start
gcloud logging write mcp-test-log "System boot sequence initiated" --severity=INFO
# 2. Simulate a warning about resource limits
gcloud logging write mcp-test-log "High memory pressure detected in zone us-central1-a" --severity=WARNING
# 3. Simulate a critical authentication failure
gcloud logging write mcp-test-log "ERROR: Failed to connect to Cloud SQL. Permission Denied." --severity=ERROR
Attività 3: verifica gli strumenti in Gemini CLI
Prima di iniziare a chattare, verifichiamo che l'agente possa "vedere" gli strumenti esposti dal server di logging. Avvia Gemini CLI:
gemini
Una volta all'interno del prompt di Gemini CLI (>), esegui il comando list:
/mcp list
Punto di controllo della verifica:dovresti vedere logging-mcp elencato come Pronto con circa 6 strumenti disponibili, tra cui list_log_entries.
Attività 4: il tuo primo prompt di infrastruttura live
Ora chiediamo all'agente di trovare i log che abbiamo appena creato. Poiché in precedenza hai concesso il ruolo roles/logging.viewer, l'agente ora può "contattarti" e leggere lo stato del progetto.
Digita il seguente prompt in Gemini CLI:
Show me the 3 most recent log entries from the log named 'mcp-test-log'. What is the highest severity issue you see?
Osserva l'agente:
- L'agente potrebbe chiederti l'ID progetto Google Cloud. Forniscilo.
- Identificherà che ha bisogno dello strumento
list_log_entries. - Ti verrà chiesto il permesso di eseguire lo strumento. Seleziona 1. Sì, consenti una volta.
- Analizzerà la risposta JSON e ti informerà dell'errore Cloud SQL Permission Denied che abbiamo simulato.
4. Journey A: The Brain (Developer Knowledge MCP)
In questo percorso, darai un "cervello" al tuo agente connettendolo al server MCP di Google Developer Knowledge.
Uno dei maggiori rischi con gli agenti AI è l'allucinazione, ovvero la fornitura con sicurezza di comandi CLI obsoleti o parametri API ritirati. Questo server MCP risolve il problema basandosi sul corpus della documentazione ufficiale e live per gli sviluppatori di Google (che copre Google Cloud, Firebase, Android e altro ancora).
Attività 1: abilita i servizi di conoscenza
Come per il passaggio di base, dobbiamo abilitare sia l'API di backend sia l'endpoint del servizio MCP.
# 1. Enable the Developer Knowledge API
gcloud services enable developerknowledge.googleapis.com
# 2. Enable the MCP Server interface
gcloud beta services mcp enable developerknowledge.googleapis.com
Attività 2: esegui il provisioning di una chiave API limitata
L'MCP Developer Knowledge utilizza le chiavi API per l'autenticazione. Per motivi di sicurezza, creeremo una chiave e la limiteremo in modo che possa essere utilizzata solo con questa API specifica.
- Esegui questo script per creare e recuperare la chiave:
# Create the restricted API key
gcloud alpha services api-keys create \
--display-name="MCP-Knowledge-Key" \
--api-target service=developerknowledge.googleapis.com
# Wait a few seconds for the key to propagate, then fetch the string
gcloud alpha services api-keys get-key-string \
$(gcloud alpha services api-keys list \
--filter="displayName='MCP-Knowledge-Key'" \
--format="value(name)") \
--format="value(keyString)"
- Copia la lunga stringa di caratteri restituita dal secondo comando. Questo è il tuo
YOUR_API_KEY.
Attività 3: configura Gemini CLI
Ora registra il server MCP di Knowledge con il tuo agente. In questo modo, l'agente può cercare la documentazione ufficiale ogni volta che incontra una domanda tecnica a cui non può rispondere con certezza assoluta.
Aggiungi il seguente snippet all'interno della sezione mcpServers del file ~/.gemini/settings.json, sostituendo YOUR_API_KEY con la stringa che hai appena copiato:
"developer-knowledge-mcp": {
"httpUrl": "https://developerknowledge.googleapis.com/mcp",
"headers": {
"X-Goog-Api-Key": "YOUR_API_KEY"
}
}
Attività 4: il test anti-allucinazioni
Verifichiamo che l'agente stia "facendo ricerche" anziché "indovinando".
Avvia Gemini CLI:
gemini
Verifica che il server sia pronto: digita /mcp list. Dovresti visualizzare google-developer-knowledge con due strumenti (search_documents, get_document).
Il prompt: chiedi all'agente di trovare un comando specifico e moderno.
I want to create a Google Cloud Storage bucket using the modern gcloud storage command. Search the official documentation for the exact syntax and show me an example for a bucket in the 'us-central1' region.
Cosa cercare:
- Gemini ti chiederà l'autorizzazione per utilizzare
search_documents. - A questo punto, probabilmente chiamerà
get_documentper leggere la pagina specifica che ha trovato. - La risposta finale deve includere un comando
gcloud storage buckets create ..., citato direttamente dalla documentazione.
5. Percorso B: la valutazione (risoluzione autonoma dei problemi)
Prerequisito:per questo percorso è necessario aver completato il Percorso A: Il cervello, in modo che l'agente possa cercare le correzioni.
In questo percorso, combinerai gli occhi (MCP di Cloud Logging) e il cervello (MCP di Developer Knowledge) del tuo agente per creare un ciclo di risoluzione dei problemi autonomo.
Anziché copiare manualmente i codici di errore in un motore di ricerca, l'agente riceverà un singolo prompt per analizzare il progetto alla ricerca di errori, ricercare la soluzione ufficiale e generare un report di correzione utilizzabile.
Attività 1: simula una giornata difficile in GCP
Per vedere la potenza della risoluzione dei problemi autonoma, abbiamo bisogno di un insieme realistico di errori. Utilizzeremo uno script Python per inserire una serie di ostacoli all'infrastruttura, dagli errori di autorizzazione negata ai problemi di quota, direttamente nei log.
- In Cloud Shell, crea una cartella a tua scelta e vai al suo interno.
- crea un file denominato
simulate_errors.py:
nano simulate_errors.py
- Incolla il seguente codice nell'editor:
import argparse
from google.cloud import logging
def simulate_errors(project_id):
client = logging.Client(project=project_id)
logger = client.logger("mcp-scenario-logger")
print(f"Simulating realistic errors for project: {project_id}...")
# 1. GCS Permission Error
logger.log_text("ERROR: GCS Upload failed for 'gs://my-app-bucket/data.json'. Status: 403 Forbidden. Missing 'storage.objects.create' for service account.", severity="ERROR")
# 2. Cloud Run Startup Error
logger.log_text("ERROR: Cloud Run service 'api-gateway' failed to start. Container failed to listen on port 8080. Check 'Cloud Run container startup requirements'.", severity="ERROR")
# 3. Secret Manager Access Error
logger.log_text("ERROR: Access denied to secret 'API_KEY'. The identity lacks 'secretmanager.versions.access'.", severity="ERROR")
print("Log entries written to 'mcp-scenario-logger'.")
if __name__ == "__main__":
parser = argparse.ArgumentParser()
parser.add_argument("--project", required=True)
args = parser.parse_args()
simulate_errors(args.project)
- Premi Ctrl+O, Invio e
Ctrl+Xper salvare e uscire. - Installa la libreria
Google Cloud Logginged esegui lo script:
python -m venv mcp_env
source mcp_env/bin/activate
pip install google-cloud-logging
python simulate_errors.py --project $(gcloud config get-value project)
Attività 2: esegui il ciclo autonomo
Ora invieremo un prompt complesso che indica a Gemini di orchestrare entrambi i server MCP contemporaneamente.
Avvia Gemini CLI:
gemini
Digita questo "prompt principale" nell'agente:
I need to troubleshoot recent issues in my project. Perform the following autonomous loop:
Step 1 : Retrieval: Use the Logging MCP to fetch the 5 most recent ERROR entries from the log 'mcp-scenario-logger'.
Step 2 : Iteration: For every unique error found, extract the service and specific error message.
Step 3 : Research: Use the Developer Knowledge MCP to find the official resolution or gcloud command to fix each issue.
Step 4 : Resolution: Consolidate everything into a markdown table with columns: | Service | Error Summary | Recommended Fix |.
Che cosa aspettarsi
Ora stai guardando un flusso di lavoro agentico in tempo reale. L'agente:
- Chiama
list_log_entriesper vedere la simulazione della "Giornata difficile" che abbiamo appena effettuato. - Analizza il testo per identificare gli errori di GCS, Cloud Run e Secret Manager.
- Chiama
search_documentseget_documentper ciascuno di questi servizi per trovare i ruoli IAM corretti o le correzioni della configurazione. - Mostrarti una tabella strutturata simile a questa (i suggerimenti potrebbero essere diversi):
Servizio | Riepilogo errore | Correzione consigliata |
Cloud Storage | 403 Forbidden durante il caricamento | Concedi |
Cloud Run | Impossibile rimanere in ascolto sulla porta 8080 | Assicurati che l'app esegua il binding a 0.0.0.0 sulla porta definita da |
Secret Manager | Ruolo di accesso alla versione mancante | Assegna |
6. Percorso C: i dati (Firestore MCP)
In questo percorso, utilizzerai il server MCP Firestore per gestire un database di documenti NoSQL utilizzando solo il linguaggio naturale.
Firestore è un database flessibile e scalabile, ma la sua gestione spesso richiede la scrittura di codice SDK complesso o la navigazione nella console. Con MCP, il tuo agente diventa un amministratore di database, in grado di inserire dati, eseguire query sui record e persino eseguire migrazioni di schemi complessi tramite chat.
Attività 1: attiva i servizi Firestore
Innanzitutto, abilita l'API Firestore e il relativo endpoint MCP.
# 1. Enable the Firestore API
gcloud services enable firestore.googleapis.com
# 2. Enable the MCP Server interface
gcloud beta services mcp enable firestore.googleapis.com
Attività 2: assegna i ruoli IAM di Firestore
Per eseguire query, la tua identità ha bisogno di autorizzazioni specifiche oltre all'accesso di base a MCP.
# Grant Firestore User role
gcloud projects add-iam-policy-binding $PROJECT_ID \
--member="user:$USER_EMAIL" \
--role="roles/datastore.user"
Attività 3: crea un database di test dedicato
Per mantenere sicuri i nostri esperimenti, creeremo un database Firestore dedicato denominato mcp-lab-db.
gcloud firestore databases create --database=mcp-lab-db --location=nam5 --type=firestore-native
Attività 4: configura Gemini CLI
Aggiungi il server MCP Firestore all'agente. Aggiungi la seguente configurazione alla sezione mcpServers del file ~/.gemini/settings.json. Sostituisci YOUR_PROJECT_ID con l'ID progetto effettivo:
"firestore-mcp": {
"httpUrl": "https://firestore.googleapis.com/mcp",
"authProviderType": "google_credentials",
"oauth": {
"scopes": [
"https://www.googleapis.com/auth/cloud-platform"
]
},
"timeout": 30000,
"headers": {
"x-goog-user-project": "YOUR_PROJECT_ID"
}
}
Attività 5: operazioni DB con il linguaggio naturale
Avvia Gemini CLI ed esegui alcune operazioni di base per verificare la connessione.
Avvia Gemini CLI:
gemini
Verifica che il server sia pronto: digita /mcp list. Dovresti vedere firestore-mcp con diversi strumenti (add_document, create_database, list_documents, etc).
Prova questi prompt in ordine:
Inserisci dati:
In the 'mcp-lab-db' database, add three documents to a 'products' collection. Include a laptop (stock 5), a mouse (stock 25), and a keyboard (stock 8).
Verifica:
List all documents in the 'products' collection from the 'mcp-lab-db' database.
Prova altri prompt che ti aiutano a gestire i database e le raccolte Firestore tramite il linguaggio naturale.
7. Journey D: Intelligence (BigQuery e Maps)
In questo percorso, doterai il tuo agente della capacità di analizzare petabyte di dati e comprendere il mondo fisico utilizzando i server MCP BigQuery e Maps Grounding Lite.
Al termine di questa sezione, l'agente sarà in grado di tradurre il linguaggio naturale in query SQL complesse e fornire consigli geospaziali sensibili al contesto (come tempi di percorrenza e meteo) per basare le sue risposte sulla realtà.
Attività 1: abilita i servizi di intelligence
Attiva le API e le interfacce MCP sia per BigQuery che per Google Maps.
# 1. Enable product APIs
gcloud services enable bigquery.googleapis.com mapstools.googleapis.com
# 2. Enable MCP Server interfaces
gcloud beta services mcp enable bigquery.googleapis.com
gcloud beta services mcp enable mapstools.googleapis.com
Attività 2: assegna ruoli IAM BigQuery
Per eseguire query, la tua identità ha bisogno di autorizzazioni specifiche oltre all'accesso di base a MCP.
# Grant BigQuery Job User and Data Viewer roles
gcloud projects add-iam-policy-binding $PROJECT_ID \
--member="user:$USER_EMAIL" \
--role="roles/bigquery.jobUser"
gcloud projects add-iam-policy-binding $PROJECT_ID \
--member="user:$USER_EMAIL" \
--role="roles/bigquery.dataViewer"
Attività 3: esegui il provisioning di una chiave API di Google Maps
A differenza di altri servizi che si basano esclusivamente su IAM, il server Maps Grounding Lite richiede una chiave API per la quota e la fatturazione.
Crea la chiave:
gcloud alpha services api-keys create --display-name="MCP-Maps-Key"
Recupera la stringa della chiave:
# Wait a few seconds for the key to propagate, then fetch the string
gcloud alpha services api-keys get-key-string \
$(gcloud alpha services api-keys list \
--filter="displayName='MCP-Maps-Key'" \
--format="value(name)") \
--format="value(keyString)"
Copia la stringa della chiave per il passaggio successivo.
Attività 4: configura Gemini CLI
Ora registra entrambi i server. Aggiungi gli snippet riportati di seguito alla sezione mcpServers del file ~/.gemini/settings.json. Sostituisci YOUR_PROJECT_ID e YOUR_MAPS_API_KEY di conseguenza.
"bigquery-mcp": {
"httpUrl": "https://bigquery.googleapis.com/mcp",
"authProviderType": "google_credentials",
"oauth": {
"scopes": [
"https://www.googleapis.com/auth/cloud-platform"
]
},
"timeout": 30000,
"headers": {
"x-goog-user-project": "YOUR_PROJECT_ID"
}
},
"maps-grounding-lite-mcp": {
"httpUrl": "https://mapstools.googleapis.com/mcp",
"headers": {
"X-Goog-Api-Key": "YOUR_MAPS_API_KEY"
}
}
Attività 5: l'intelligenza in azione
Avvia Gemini CLI e prova le nuove funzionalità "Intelligenza".
gemini
Verifica che il server sia pronto: digita /mcp list. Dovresti vedere bigquery-mcp e maps-grounding-lite-mcp con diversi strumenti elencati. .
Scenario 1: il motore analitico (BigQuery) Chiedi all'agente di eseguire una query su un set di dati pubblico senza che tu conosca SQL:
Run a query to count the number of penguins on each island in the BigQuery public dataset ml_datasets.penguins.
Scenario 2: contesto geospaziale (Maps) Chiedi all'agente di pianificare un viaggio nel mondo reale:
I am planning a drive from Mumbai to Pune tomorrow morning. Based on current weather and routing, what should I expect in terms of travel time and what should I carry?
Cosa cercare:
- Per BigQuery, l'agente chiamerà
execute_sqlper scoprire lo schema ed eseguire la query. - Per Maps, orchestrerà
lookup_weathere compute_routes per fornirti un piano di viaggio concreto e utile.
8. Rafforzamento: sicurezza della produzione e IAM
In questo passaggio finale, passerai dall'utilizzo di autorizzazioni "Proprietario" generiche a un modello di difesa in profondità di livello di produzione.
Gli agenti AI sono "utili" per natura. Se limiti uno strumento a livello di UI, un agente intelligente potrebbe tentare di aggirare la limitazione eseguendo invece un comando shell. Per proteggere davvero la tua infrastruttura, devi creare limiti rigidi utilizzando Google Cloud IAM.
Modello di sicurezza a due livelli
Per eseguire qualsiasi azione, un agente deve passare attraverso due porte:
- Gate 1 (The MCP Gate): Does the identity have
roles/mcp.toolUser? (Autorizzazione a utilizzare il protocollo). - Gate 2 (il service gate): l'identità ha il ruolo di prodotto specifico (ad es.
roles/datastore.viewer)? (Autorizzazione a visualizzare i dati).
Attività 1: livello 1 - Filtro lato client (excludeTools)
Il primo livello di difesa consiste nel nascondere gli strumenti all'agente in modo che non "pensi" nemmeno di utilizzarli.
- Apri le impostazioni di Gemini CLI nell'editor di Cloud Shell:
cloudshell edit ~/.gemini/settings.json
- Trova il blocco firestore-mcp e aggiungi la direttiva
excludeToolsper nascondere le azioni distruttive:
"firestore-mcp": {
"httpUrl": "https://firestore.googleapis.com/mcp",
"excludeTools": ["delete_database", "update_database", "delete_document"],
...
}
Salva il file e riavvia Gemini CLI. Esegui /mcp list e noterai che questi strumenti non sono più presenti.
Attività 2: livello 2 - Supremazia dell'infrastruttura (il buttafuori IAM)
Il filtro lato client è una protezione "soft". Se chiedi all'agente di "Eliminare il mio database Firestore" e lo strumento è nascosto, potrebbe provare a eseguire gcloud firestore databases delete. Per evitare questo problema, utilizziamo un service account con privilegi minimi.
Crea un account di servizio "Solo lettura":
# Create the service account
gcloud iam service-accounts create mcp-reader-sa --display-name="MCP Reader Only"
# Grant ONLY the necessary roles (Gate 1 + Gate 2)
export PROJECT_ID=$(gcloud config get-value project)
SA_EMAIL="mcp-reader-sa@$PROJECT_ID.iam.gserviceaccount.com"
gcloud projects add-iam-policy-binding $PROJECT_ID --member="serviceAccount:$SA_EMAIL" --role="roles/mcp.toolUser"
gcloud projects add-iam-policy-binding $PROJECT_ID --member="serviceAccount:$SA_EMAIL" --role="roles/datastore.viewer"
gcloud projects add-iam-policy-binding $PROJECT_ID --member="serviceAccount:$SA_EMAIL" --role="roles/aiplatform.user"
Genera e attiva la chiave:
gcloud iam service-accounts keys create reader-key.json --iam-account=$SA_EMAIL
export GOOGLE_APPLICATION_CREDENTIALS=$(pwd)/reader-key.json
Attività 3: test di rimbalzo dell'agente utile
Ora proviamo a verificare se l'agente può aggirare la nostra sicurezza.
Il primo passaggio consiste nell'attivare il service account, in modo che anche se l'agente ricorre all'utilizzo del comando gcloud, operi con l'identità del service account che abbiamo appena creato.
Attiva il service account:
Esegui il seguente comando, sostituendo [PATH_TO_KEY_FILE] con il percorso effettivo del file della chiave JSON (ad es. reader-key.json).
gcloud auth activate-service-account --key-file=[PATH_TO_KEY_FILE]
Verifica la modifica:
Dopo aver eseguito il comando, puoi verificare che il service account sia attivo eseguendo:
gcloud auth list
L'output mostrerà il service account come credenziale attiva.
Avvia Gemini CLI:
gemini
Digita questo prompt:
I want to delete the 'mcp-lab-db' firestore database. If the tool is missing, try using the gcloud firestore command in the terminal.
Che cosa succede?
- L'agente tenterà innanzitutto di utilizzare lo strumento delete_database nel server MCP Firestore. L'operazione non riuscirà a causa della mancanza di autorizzazioni.
- Quindi tenta di essere "utile" ricorrendo allo strumento
run_shell_commandper utilizzare il comando gcloud firestore.
Il risultato:
Il comando non va a buon fine e viene visualizzato un errore Forbidden. Poiché l'agente viene eseguito con l'identità mcp-reader-sa, non dispone dell'autorizzazione datastore.databases.delete. IAM è l'ultima risorsa. Indipendentemente dal modo in cui l'agente tenta di raggiungere la risorsa, il "bouncer" a livello di API Google Cloud bloccherà la richiesta.
Tornare al tuo account utente:
Per tornare al tuo account utente, esegui questo comando:
gcloud config set account YOUR_EMAIL_ADDRESS
9. Esegui la pulizia
Per evitare addebiti indesiderati, elimina le risorse di test:
# Delete the Firestore database
gcloud firestore databases delete --database=mcp-lab-db
# Remove the service account
gcloud iam service-accounts delete mcp-reader-sa@$PROJECT_ID.iam.gserviceaccount.com
10. Conclusione
Complimenti! Hai esplorato correttamente l'intero stack dei server MCP gestiti da Google.
Hai iniziato con il "tronco" del lab, stabilendo una connessione di base a Cloud Logging. Da lì, hai iniziato a creare "Avventure" modulari, che consentono di basare le conoscenze dell'agente, automatizzare cicli di risoluzione dei problemi complessi, eseguire la migrazione dei dati in Firestore ed estrarre informazioni da BigQuery e Maps.
Ancora più importante, hai concluso ancorando il tuo agente alle radici della sicurezza della produzione. Hai dimostrato che, sebbene un agente possa essere "utile" fino a un certo punto, Google Cloud IAM è il buttafuori definitivo, in quanto garantisce che i tuoi workflow autonomi rispettino sempre il principio del privilegio minimo.
Concetti principali
- Gestito = scalabile:ti sei connesso a strumenti a livello di infrastruttura tramite HTTP trasmissibile senza eseguire il deployment di un singolo server.
- Grounding obbligatorio:hai sostituito le "ipotesi" del LLM con l'MCP Developer Knowledge, assicurandoti che l'agente utilizzi comandi validi e aggiornati.
- L'orchestrazione è la chiave: hai visto che la vera magia si verifica quando un agente combina più server MCP per risolvere un singolo problema aziendale.