Utilizzare il server MCP remoto AlloyDB

Questo documento mostra come utilizzare il server Model Context Protocol (MCP) remoto di AlloyDB per PostgreSQL per connettersi ad applicazioni AI, tra cui Gemini CLI, ChatGPT, Claude e applicazioni personalizzate che stai sviluppando. Il server MCP remoto AlloyDB per PostgreSQL ti consente di accedere ed eseguire gli strumenti AlloyDB per gestire i cluster e le istanze AlloyDB dai tuoi ambienti di sviluppo abilitati all'AI e dalle piattaforme di agenti AI. Il server MCP remoto di AlloyDB per PostgreSQL viene attivato quando attivi l'API AlloyDB per PostgreSQL.

Il Model Context Protocol (MCP) standardizza il modo in cui i modelli linguistici di grandi dimensioni (LLM) e le applicazioni o gli agenti AI si connettono a origini dati esterne. I server MCP ti consentono di utilizzare i loro strumenti, risorse e prompt per eseguire azioni e ottenere dati aggiornati dal loro servizio di backend.

Qual è la differenza tra i server MCP locali e remoti?

Server MCP locali
In genere vengono eseguiti sulla macchina locale e utilizzano i flussi di input e output standard (stdio) per la comunicazione tra i servizi sullo stesso dispositivo.
Server MCP remoti
Viene eseguito sull'infrastruttura del servizio e offre un endpoint HTTP alle applicazioni di AI per la comunicazione tra il client AI MCP e il server MCP. Per maggiori informazioni sull'architettura MCP, consulta la sezione Architettura MCP.

Potresti voler utilizzare il server MCP locale di AlloyDB per i seguenti motivi:

  • Sviluppo e test locali
  • Utilizzo offline di MCP
  • Gestisci i cluster e le istanze AlloyDB dalla tua applicazione di AI

Per saperne di più su come utilizzare il server MCP locale, consulta Utilizzare AlloyDB per PostgreSQL con MCP, Gemini CLI e altri agenti o Server MCP per AlloyDB per PostgreSQL. Le sezioni seguenti si applicano solo al server MCP remoto AlloyDB per PostgreSQL.

Google Cloud server MCP remoti

Google e i Google Cloud server MCP remoti hanno le seguenti funzionalità e vantaggi:

  • Rilevamento semplificato e centralizzato
  • Endpoint HTTP globali o regionali gestiti
  • Autorizzazione granulare
  • Sicurezza facoltativa di prompt e risposte con la protezione Model Armor
  • Audit log centralizzato

Per informazioni su altri server MCP e sui controlli di sicurezza e governance disponibili per i server MCP di Google Cloud, consulta la panoramica dei server MCP di Google Cloud.

Limitazioni

Il server MCP remoto AlloyDB presenta le seguenti limitazioni:

  • Lo strumento create_user non supporta la creazione di un utente con autenticazione integrata con una password. Un utente può essere creato solo con l'autenticazione IAM.
  • Se lo strumento execute_sql restituisce una risposta più grande di 10 MB, la risposta potrebbe essere troncata.
  • L'autorizzazione IAM richiesta per execute_sql_read_only è alloydb.instances.executeSqlReadOnly, che non è visibile nella console Google Cloud . Per utilizzare l'API o Google Cloud CLI, devi disporre di uno dei seguenti ruoli: alloydb.viewer, alloydb.databaseUser o alloydb.admin.
  • execute_sql_read_only è supportato solo per PostgreSQL versione 17 e successive.
  • Potenziali operazioni di scrittura che utilizzano wrapper di dati esterni (FDW) con execute_sql_read_only. Se hai configurato una connessione FDW dalla tua istanza AlloyDB a un database remoto e il mapping utente per questa connessione FDW dispone di autorizzazioni di scrittura, ad esempio INSERT, UPDATE e DELETE, sul database remoto, queste autorizzazioni possono essere utilizzate anche quando utilizzi execute_sql_read_only.

    Per evitare scritture accidentali nei database remoti quando utilizzi execute_sql_read_only, verifica che le mappature degli utenti configurate per le connessioni FDW non concedano autorizzazioni in scrittura agli utenti che devono disporre dell'accesso di sola lettura tramite questo strumento. Esamina attentamente le autorizzazioni assegnate agli utenti nei mapping degli utenti FDW.

Prima di iniziare

  1. Accedi al tuo account Google Cloud . Se non conosci Google Cloud, crea un account per valutare le prestazioni dei nostri prodotti in scenari reali. I nuovi clienti ricevono anche 300 $di crediti senza costi per l'esecuzione, il test e il deployment dei workload.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. If you're using an existing project for this guide, verify that you have the permissions required to complete this guide. If you created a new project, then you already have the required permissions.

  4. Enable the AlloyDB API.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the API

  5. Installa Google Cloud CLI.

  6. Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.

  7. Per inizializzare gcloud CLI, esegui questo comando:

    gcloud init
  8. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  9. If you're using an existing project for this guide, verify that you have the permissions required to complete this guide. If you created a new project, then you already have the required permissions.

  10. Enable the AlloyDB API.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the API

  11. Installa Google Cloud CLI.

  12. Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.

  13. Per inizializzare gcloud CLI, esegui questo comando:

    gcloud init

Ruoli obbligatori

Per ottenere le autorizzazioni necessarie per utilizzare il server MCP di AlloyDB per PostgreSQL, chiedi all'amministratore di concederti i seguenti ruoli IAM nel progetto in cui vuoi utilizzare il server MCP di AlloyDB per PostgreSQL:

  • Crea un'istanza AlloyDB: AlloyDB Admin (roles/alloydb.admin)
  • Crea un utente AlloyDB: AlloyDB Admin (roles/alloydb.admin)
  • Esegui query SQL in AlloyDB:
    • AlloyDB Admin (roles/alloydb.admin)
    • AlloyDB Database User (roles/alloydb.databaseUser) (funziona anche Studio Query User (roles/databasesconsole.studioQueryUser))
  • Esegui query SQL di sola lettura in AlloyDB:
  • Recupera un'istanza AlloyDB o elenca tutte le istanze AlloyDB in un progetto: AlloyDB Viewer (roles/alloydb.viewer)
  • Elenca gli utenti AlloyDB: AlloyDB Viewer (roles/alloydb.viewer)

Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.

Questi ruoli predefiniti contengono le autorizzazioni necessarie per utilizzare il server MCP di AlloyDB per PostgreSQL. Per vedere quali sono esattamente le autorizzazioni richieste, espandi la sezione Autorizzazioni obbligatorie:

Autorizzazioni obbligatorie

Per utilizzare il server MCP di AlloyDB per PostgreSQL sono necessarie le seguenti autorizzazioni:

  • Effettua chiamate allo strumento MCP: mcp.tools.call
  • Crea un cluster AlloyDB: alloydb.cluster.create
  • Crea un utente AlloyDB: alloydb.users.create
  • Clona un'istanza AlloyDB: alloydb.instances.create
  • Esegui query SQL su un'istanza AlloyDB:
    • alloydb.instances.executeSql
    • alloydb.instances.login
  • Esegui query SQL di sola lettura su un'istanza AlloyDB:
    • alloydb.instances.executeSqlReadOnly
    • alloydb.instances.login
  • Ottieni un cluster AlloyDB: alloydb.instances.get
  • Recupera un'operazione del cluster AlloyDB: alloydb.clusters.get
  • Importa i dati in un cluster AlloyDB: alloydb.clusters.import
  • Esporta i dati da un cluster AlloyDB in Cloud Storage: alloydb.clusters.export
  • Elenca i cluster AlloyDB in un progetto: alloydb.clusters.list
  • Elenca gli utenti AlloyDB: alloydb.users.list
  • Aggiorna un cluster AlloyDB: alloydb.clusters.update
  • Aggiorna un utente AlloyDB: alloydb.users.update

Potresti anche ottenere queste autorizzazioni con ruoli personalizzati o altri ruoli predefiniti.

Autenticazione e autorizzazione

Il server MCP remoto di AlloyDB per PostgreSQL utilizza il protocollo OAuth 2.0 con Identity and Access Management (IAM) per l'autenticazione e l'autorizzazione. Tutte le Google Cloud identità sono supportate per l'autenticazione ai server MCP.

Il server MCP remoto di AlloyDB non accetta le chiavi API.

Ti consigliamo di creare un'identità separata per gli agenti che utilizzano gli strumenti MCP in modo da poter controllare e monitorare l'accesso alle risorse. Per saperne di più sull'autenticazione, consulta Autenticarsi sui server MCP.

Ambiti OAuth MCP di AlloyDB

OAuth 2.0 utilizza ambiti e credenziali per determinare se un principal autenticato è autorizzato a eseguire un'azione specifica su una risorsa. Per saperne di più sugli ambiti OAuth 2.0 in Google, leggi Utilizzare OAuth 2.0 per accedere alle API di Google.

AlloyDB ha i seguenti ambiti OAuth dello strumento MCP:

URI dell'ambito per gcloud CLI Descrizione
https://www.googleapis.com/auth/alloydb Visualizzare, modificare, configurare ed eliminare i tuoi dati di Google Cloud AlloyDB e visualizzare l'indirizzo email del tuo Account Google.

Potrebbero essere necessari ambiti aggiuntivi per le risorse a cui si accede durante una chiamata allo strumento. Per visualizzare un elenco degli ambiti richiesti per AlloyDB, consulta API AlloyDB Admin.

Configura un client MCP per utilizzare il server MCP AlloyDB

Le applicazioni e gli agenti AI, come Claude o Gemini CLI, possono creare un client MCP che si connette a un singolo server MCP. Un'applicazione AI può avere più client che si connettono a server MCP diversi. Per connettersi a un server MCP remoto, il client MCP deve conoscere l'URL del server MCP remoto.

Nella tua applicazione AI, cerca un modo per connetterti a un server MCP remoto. Ti viene chiesto di inserire i dettagli del server, ad esempio il nome e l'URL.

Per il server MCP di AlloyDB per PostgreSQL, inserisci quanto segue in base alle esigenze:

  • Nome server: server MCP di AlloyDB per PostgreSQL
  • URL server o endpoint: https://alloydb.googleapis.com/mcp
  • Trasporto: HTTP
  • Dettagli di autenticazione: a seconda di come vuoi autenticarti, puoi inserire le tue Google Cloud credenziali, l'ID client e il client secret OAuth oppure un'identità e le credenziali dell'agente. Per saperne di più sull'autenticazione, consulta Autenticarsi sui server MCP.
  • Ambito OAuth: l'ambito OAuth 2.0 che vuoi utilizzare per connetterti al server MCP di AlloyDB per PostgreSQL.

Per indicazioni specifiche per l'host sulla configurazione e la connessione al server MCP, vedi quanto segue:

Per indicazioni più generali, consulta le seguenti risorse:

Strumenti disponibili

Per visualizzare i dettagli degli strumenti MCP disponibili e le relative descrizioni per il server MCP AlloyDB per PostgreSQL, consulta il riferimento a MCP per AlloyDB per PostgreSQL.

Strumenti per le liste

Utilizza lo strumento di ispezione MCP per elencare gli strumenti o invia una richiesta HTTP tools/list direttamente al server MCP remoto AlloyDB per PostgreSQL. Il metodo tools/list non richiede l'autenticazione. Devi fornire una stringa o un ID numerico, ad esempio 1 o my-id.

POST /mcp HTTP/1.1
Host: alloydb.googleapis.com
Content-Type: application/json

{
  "id": USER_SPECIFIED_ID,
  "jsonrpc": "2.0",
  "method": "tools/list",
}

Esegui SQL

Per eseguire istruzioni SQL:

  1. Imposta l'impostazione dell'istanza data_api_access sull'istanza AlloyDB sul valore ALLOW_DATA_API_ACCESS. Quando crei un'istanza utilizzando lo strumento create_instance, la configurazione data_api_access viene attivata automaticamente.

    Se la configurazione data_api_access non è abilitata su un'istanza, puoi abilitarla utilizzando il comando curl per aggiornare il valore del campo dataApiAccess a ENABLED:

    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/LOCATION/clusters/CLUSTER_ID/instances/INSTANCE_ID?updateMask=dataApiAccess \
     -d '{
       "dataApiAccess": "ENABLED",
     }'
    

    Sostituisci quanto segue:

    • PROJECT_ID: l'ID del tuo Google Cloud progetto.
    • LOCATION: la regione in cui si trova il cluster AlloyDB.
    • CLUSTER_ID: l'ID del tuo cluster AlloyDB.
    • INSTANCE_ID: l'ID dell'istanza AlloyDB.
  2. In Gemini CLI, inserisci un prompt simile al seguente:

    Attiva l'autenticazione IAM dei database sull'istanza AlloyDB INSTANCE_NAME Assicurati che le istruzioni SQL utilizzino i privilegi associati all'account utente per l'autenticazione IAM dei database USER_ACCOUNT

    Sostituisci quanto segue:

    • INSTANCE_NAME: il nome dell'istanza AlloyDB.
    • USER_ACCOUNT: l'account utente IAM da utilizzare per l'autenticazione durante l'esecuzione di istruzioni SQL.

Esempi di casi d'uso

Di seguito sono riportati alcuni casi d'uso di esempio per il server MCP di AlloyDB.

Sviluppo di applicazioni web

Un caso d'uso di esempio potrebbe essere lo sviluppo rapido di applicazioni web e il provisioning delle istanze AlloyDB come database di origine. In questo caso d'uso, l'utilizzo del server AlloyDB MCP ti consente di creare un nuovo database e popolarlo con i dati iniziali per un nuovo progetto utilizzando il linguaggio naturale.

Prompt di esempio:

"Create a new alloydb PostgreSQL development instance and set up a table called products." (Crea una nuova istanza di sviluppo di alloydb PostgreSQL e configura una tabella chiamata products.)

Workflow:il workflow per la configurazione di un'applicazione web potrebbe essere il seguente:

  • Provisioning: l'agente crea un cluster in cui può essere allocata l'istanza. L'agente chiama quindi lo strumento create_instance per creare una nuova istanza AlloyDB con specifiche dimensionate per l'ambiente di sviluppo. Puoi abilitare la connettività IP pubblico sulla nuova istanza. Puoi anche automatizzare la configurazione degli endpoint di Private Service Connect.

  • Verifica: l'agente utilizza lo strumento get_operation per eseguire il polling dello stato dell'operazione di creazione dell'istanza.

  • Connessione: al termine dell'operazione, l'agente utilizza lo strumento get_instance per recuperare i metadati di connessione dell'istanza.

  • Configurazione dello schema: l'agente crea il database e poi utilizza execute_sql per eseguire l'istruzione SQL CREATE TABLE products.

  • Inserimento dei dati: l'agente utilizza di nuovo execute_sql per inserire i dati iniziali (DML) nella tabella appena creata.

Gestione della configurazione operativa e del database

In questo caso d'uso di esempio, puoi esaminare le istanze di database esistenti per assicurarti che soddisfino gli standard di configurazione operativa. Puoi anche utilizzare l'agente per gestire gli utenti del database sull'istanza.

Prompt di esempio:

Elenca tutte le istanze PostgreSQL nel mio progetto e mostrami i relativi dettagli per verificare che utilizzino la stessa configurazione e che l'elenco più recente degli utenti del database sia stato aggiornato correttamente.

Workflow: il workflow per controllare la configurazione dell'istanza AlloyDB e dell'utente del database potrebbe essere simile al seguente.

  • Rilevamento: l'agente utilizza list_instances per recuperare un elenco di tutte le istanze AlloyDB nel progetto.

  • Ispezione: per ogni istanza identificata, l'agente chiama get_instance per recuperare i metadati di configurazione dettagliati, come la versione del database, la regione e il tipo di macchina, e chiama list_users per controllare gli utenti del database sull'istanza. Questi metadati includono informazioni sull'attivazione della connettività IP pubblico o sulla configurazione degli endpoint Private Service Connect.

  • Report: l'agente riassume i risultati, evidenziando eventuali istanze o utenti che si discostano dalla configurazione prevista.

Configurazioni di sicurezza facoltative

MCP introduce nuovi rischi e considerazioni sulla sicurezza a causa dell'ampia varietà di azioni che possono essere intraprese con gli strumenti MCP. Per ridurre al minimo e gestire questi rischi, Google Cloud offre criteri predefiniti e personalizzabili per controllare l'utilizzo degli strumenti MCP nella tua organizzazione o nel tuo progetto Google Cloud.

Per saperne di più sulla sicurezza e sulla governance di MCP, consulta Sicurezza e protezione dell'AI.

Utilizzare Model Armor

Model Armor è un servizioGoogle Cloud progettato per migliorare la sicurezza delle tue applicazioni di AI. Funziona controllando in modo proattivo i prompt e le risposte degli LLM, proteggendo da vari rischi e supportando pratiche di AI responsabile. Che tu stia implementando l'AI nel tuo ambiente cloud o su provider cloud esterni, Model Armor può aiutarti a prevenire input dannosi, verificare la sicurezza dei contenuti, proteggere i dati sensibili, mantenere la conformità e applicare le tue norme di sicurezza dell'AI in modo coerente nel tuo panorama AI diversificato.

Quando Model Armor è abilitato con il logging abilitato, Model Armor registra l'intero payload. Ciò potrebbe esporre informazioni sensibili nei log.

Abilita Model Armor

Prima di poter utilizzare Model Armor, devi abilitare le API Model Armor.

Console

  1. Abilita l'API Model Armor.

    Ruoli richiesti per abilitare le API

    Per abilitare le API, devi disporre del ruolo IAM Amministratore utilizzo dei servizi (roles/serviceusage.serviceUsageAdmin), che include l'autorizzazione serviceusage.services.enable. Scopri come concedere i ruoli.

    Abilitare l'API

  2. Seleziona il progetto in cui vuoi attivare Model Armor.

gcloud

Prima di iniziare, segui questi passaggi utilizzando Google Cloud CLI con l'API Model Armor:

  1. Nella console Google Cloud , attiva Cloud Shell.

    Attiva Cloud Shell

    Nella parte inferiore della console Google Cloud viene avviata una sessione di Cloud Shell e viene visualizzato un prompt della riga di comando. Cloud Shell è un ambiente shell con Google Cloud CLI già installata e con valori già impostati per il progetto corrente. L'inizializzazione della sessione può richiedere alcuni secondi.

  2. Esegui questo comando per impostare l'endpoint API per il servizio Model Armor.

    gcloud config set api_endpoint_overrides/modelarmor "https://modelarmor.LOCATION.rep.googleapis.com/"

    Sostituisci LOCATION con la regione in cui vuoi utilizzare Model Armor.

Configurare la protezione per i server MCP remoti di Google e Google Cloud

Per proteggere le chiamate e le risposte degli strumenti MCP, puoi utilizzare le impostazioni di base di Model Armor. Un'impostazione di base definisce i filtri di sicurezza minimi che vengono applicati a tutto il progetto. Questa configurazione applica un insieme coerente di filtri a tutte le chiamate e le risposte degli strumenti MCP all'interno del progetto.

Configura un'impostazione di base di Model Armor con la sanificazione MCP attivata. Per saperne di più, consulta Configurare le impostazioni di base di Model Armor.

Vedi il seguente comando di esempio:

gcloud model-armor floorsettings update \
--full-uri='projects/PROJECT_ID/locations/global/floorSetting' \
--enable-floor-setting-enforcement=TRUE \
--add-integrated-services=GOOGLE_MCP_SERVER \
--google-mcp-server-enforcement-type=INSPECT_AND_BLOCK \
--enable-google-mcp-server-cloud-logging \
--malicious-uri-filter-settings-enforcement=ENABLED \
--add-rai-settings-filters='[{"confidenceLevel": "MEDIUM_AND_ABOVE", "filterType": "DANGEROUS"}]'

Sostituisci PROJECT_ID con l'ID progetto Google Cloud .

Tieni presente le seguenti impostazioni:

  • INSPECT_AND_BLOCK: il tipo di applicazione che ispeziona i contenuti per il server MCP di Google e blocca i prompt e le risposte che corrispondono ai filtri.
  • ENABLED: l'impostazione che attiva un filtro o l'applicazione.
  • MEDIUM_AND_ABOVE: il livello di confidenza per le impostazioni del filtro AI responsabile - Pericoloso. Puoi modificare questa impostazione, anche se valori più bassi potrebbero generare più falsi positivi. Per saperne di più, consulta Livelli di confidenza di Model Armor.

Disabilitare l'analisi del traffico MCP con Model Armor

Per impedire a Model Armor di analizzare automaticamente il traffico da e verso i server Google MCP in base alle impostazioni di base del progetto, esegui questo comando:

gcloud model-armor floorsettings update \
  --full-uri='projects/PROJECT_ID/locations/global/floorSetting' \
  --remove-integrated-services=GOOGLE_MCP_SERVER

Sostituisci PROJECT_ID con l'ID progetto Google Cloud . Model Armor non applica automaticamente le regole definite nelle impostazioni di base di questo progetto a nessun traffico del server Google MCP.

Le impostazioni di base e la configurazione generale di Model Armor possono influire su più di un semplice MCP. Poiché Model Armor si integra con servizi come Vertex AI, qualsiasi modifica apportata alle impostazioni di base può influire sulla scansione del traffico e sui comportamenti di sicurezza in tutti i servizi integrati, non solo in MCP.

Controllare l'utilizzo di MCP con i criteri di negazione IAM

I criteri di negazione IAM (Identity and Access Management) ti aiutano a proteggere Google Cloud i server MCP remoti. Configura questi criteri per bloccare l'accesso indesiderato agli strumenti MCP.

Ad esempio, puoi negare o consentire l'accesso in base a:

  • Il preside
  • Proprietà dello strumento come sola lettura
  • L'ID client OAuth dell'applicazione

Per saperne di più, consulta Controllare l'utilizzo di MCP con Identity and Access Management.

Passaggi successivi