Scopri come utilizzare il server MCP di BigQuery Migration Service

Questo documento mostra come utilizzare il server Model Context Protocol (MCP) remoto di BigQuery per connettersi ad applicazioni AI, tra cui Gemini CLI, ChatGPT, Claude e applicazioni personalizzate che stai sviluppando. Puoi utilizzare il server Model Context Protocol (MCP) di BigQuery Migration Service per eseguire attività come la traduzione di query SQL nella sintassi GoogleSQL, la generazione di istruzioni DDL dalle query di input SQL e l'ottenimento di spiegazioni delle traduzioni SQL. Il server MCP remoto BigQuery viene attivato quando abiliti l'API BigQuery.

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.

I server MCP locali vengono in genere eseguiti sulla macchina locale e utilizzano i flussi di input e output standard (stdio) per la comunicazione tra i servizi sullo stesso dispositivo. I server MCP vengono eseguiti sull'infrastruttura del servizio e offrono un endpoint HTTPS 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.

Google e i server Cloud de Confiance by S3NS MCP hanno le seguenti funzionalità e vantaggi:

  • Rilevamento semplificato e centralizzato
  • Endpoint HTTPS 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.

Prima di iniziare

  1. In the Cloud de Confiance console, on the project selector page, select or create a Cloud de Confiance 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

  2. 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.

  3. Abilita l'API BigQuery Migration Service.

    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

Ruoli obbligatori

Per ottenere le autorizzazioni necessarie per abilitare il server MCP di BigQuery Migration Service, chiedi all'amministratore di concederti i seguenti ruoli IAM nel progetto in cui vuoi abilitare il server MCP di BigQuery Migration Service:

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 attivare il server MCP di BigQuery Migration Service. Per vedere quali sono esattamente le autorizzazioni richieste, espandi la sezione Autorizzazioni obbligatorie:

Autorizzazioni obbligatorie

Per abilitare il server MCP di BigQuery Migration Service sono necessarie le seguenti autorizzazioni:

  • Effettua chiamate allo strumento MCP: mcp.tools.call
  • Utilizza BigQuery Migration Service:
    • bigquerymigration.workflows.create
    • bigquerymigration.workflows.get
    • bigquerymigration.workflows.list
    • bigquerymigration.workflows.delete
    • bigquerymigration.subtasks.get
    • bigquerymigration.subtasks.list

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

A seconda dell'attività, potrebbero essere necessarie ulteriori autorizzazioni di BigQuery Migration Service. Per informazioni su ruoli e autorizzazioni di BigQuery Migration Service, consulta Ruoli e autorizzazioni di BigQuery Migration Service.

Autenticazione e autorizzazione

I server MCP di BigQuery Migration Service utilizzano il protocollo OAuth 2.0 con Identity and Access Management (IAM) per l'autenticazione e l'autorizzazione. Tutte le Cloud de Confiance by S3NS identità sono supportate per l'autenticazione ai server MCP.

Il server MCP di BigQuery Migration Service non accetta chiavi API.

Ambiti OAuth MCP di BigQuery Migration Service

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, consulta Utilizzare OAuth 2.0 per accedere alle API di Google.

BigQuery Migration Service dispone dei seguenti ambiti OAuth dello strumento MCP:

URI dell'ambito per gcloud CLI Descrizione
https://www.googleapis.com/auth/bigquerymigration Visualizzare e gestire i tuoi flussi di lavoro in BigQuery Migration Service, nonché vedere l'indirizzo email del tuo Account Google.
https://www.googleapis.com/auth/devstorage.read_only Questo ambito è necessario per le traduzioni delle query che leggono i dati da Cloud Storage.

Le risorse a cui si accede durante una chiamata allo strumento potrebbero richiedere ambiti aggiuntivi.

Configura un client MCP per utilizzare il server MCP di BigQuery Migration Service

Le applicazioni e gli agenti AI, come Claude o Antigravity, possono istanziare 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. Se la tua applicazione non è elencata nelle indicazioni specifiche per il client, puoi utilizzare le seguenti informazioni per connetterti dalla maggior parte delle applicazioni.

Nella tua applicazione di AI, cerca un modo per aggiungere o connetterti a un server MCP remoto. Per il server MCP di BigQuery Migration Service, inserisci le seguenti informazioni come richiesto:

  • Nome server: server MCP di BigQuery Migration Service
  • URL server o Endpoint: bigquerymigration.googleapis.com/mcp
  • Trasporto: HTTP
  • Dettagli di autenticazione: le tue Cloud de Confiance by S3NS credenziali, il tuo ID client OAuth e il tuo segreto oppure l'identità e le credenziali di un agente

    I dettagli di autenticazione che scegli dipendono dal modo in cui vuoi autenticarti. Per maggiori informazioni, consulta Eseguire l'autenticazione nei server MCP.

Di seguito è riportata una configurazione di esempio per Gemini CLI:

{
  "name": "BQMS-MCP",
  "version": "1.0.0",
  "mcpServers": {
    "BigQueryMigration": {
      "httpUrl": "https://bigquerymigration.googleapis.com/mcp",
      "authProviderType": "google_credentials",
      "oauth": {
        "scopes": [
          "https://www.googleapis.com/auth/bigquerymigration",
          "https://www.googleapis.com/auth/devstorage.read_only"
        ]
      },
      "timeout": 30000,
      "headers": {
        "x-goog-user-project": "PROJECT_ID"
      }
    }
  }
}

Per indicazioni specifiche dell'applicazione sulla configurazione e la connessione al server MCP, vedi Indicazioni specifiche per il client.

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 di BigQuery Migration Service, consulta la documentazione di riferimento di BigQuery Migration Service MCP.

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 di BigQuery Migration Service. Il metodo tools/list non richiede l'autenticazione.

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

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

Esempi di casi d'uso

Di seguito sono riportati alcuni casi d'uso di esempio per il server MCP di BigQuery Migration Service:

  • Utilizzando un client MCP con un IDE, traduci un file di query nella sintassi GoogleSQL.
  • Utilizzando un client MCP senza un IDE, traduci una query specificata nella sintassi GoogleSQL.
  • Valuta la qualità della traduzione.
  • Ottenere spiegazioni delle traduzioni SQL.
  • Genera un'istruzione DDL per una query specificata.

Prompt di esempio

Puoi utilizzare i seguenti prompt di esempio per creare e gestire le risorse del servizio di migrazione BigQuery:

  • Traduci la query DIALECT in questo FILENAME. Utilizza PROJECT_ID e LOCATION. Conserva i log di output e di traduzione in directory separate.

    Quando utilizzi questo prompt, il client MCP chiama lo strumento translate_query per tradurre la query nel file specificato. Il client MCP chiama periodicamente lo strumento get_translation per ottenere i risultati. Al termine della traduzione, il client scrive l'output nella directory di output e i log nella directory dei log.

  • Traduci questa query da DIALECT: QUERY. Utilizza PROJECT_ID e LOCATION.

    Quando utilizzi questo prompt, il client MCP chiama lo strumento translate_query per tradurre la query specificata e mostra i risultati della traduzione.

  • Valuta la qualità della traduzione.

    Quando utilizzi questo prompt, il client MCP legge ed esamina i log di traduzione e mostra un riepilogo dei problemi di traduzione con i passaggi successivi suggeriti.

  • Spiega la traduzione.

    Quando utilizzi questo prompt, il client MCP chiama lo strumento explain_translation per ottenere una spiegazione della traduzione. Se i log di traduzione contengono errori RelationNotFound o AttributeNotFound, il client MCP deve suggerire di creare un pacchetto di metadati. Se non riesci a generare i metadati, puoi inviare un prompt che richieda l'istruzione DDL.

    Una risposta di esempio è simile alla seguente:

    The translated code converts Teradata-specific features into their
    BigQuery equivalents. Here's a breakdown of the key changes:
    * `MACRO` to `PROCEDURE`: The `YourMacroName` macro was converted
    into a BigQuery stored procedure because
    BigQuery doesn't support macros.
    * `SELECT INTO` to `SET`:
      * For setting multiple `OUT` parameters in `YourStoredProcedureName`, the
        `SELECT ... INTO` is changed to `SET (...) = (SELECT STRUCT(...))`.
      * For single variable assignment in `YourOtherProcedureName`,
        `SELECT ... INTO` is replaced by `SET variable = (SELECT ...)` which is
        the standard in BigQuery.
    * Atomic Operations to `MERGE: The BEGIN REQUEST ... END REQUEST` blocks in
      the `ProcedureA`, `ProcedureB`, and `ProcedureC` procedures,
      which perform atomic "update or insert" operations, are translated into
      standard SQL `MERGE` statements. This is the correct and modern way to
      handle this logic in BigQuery.
    
  • Genera DDL per questa query di input.

    Il client MCP chiama lo strumento generate_ddl_suggestion per avviare un job di suggerimento. Il client riceve i risultati dei suggerimenti chiamando lo strumento fetch_ddl_suggestion. Quando il suggerimento è disponibile, il client MCP lo visualizza.

    Se le istruzioni DDL sono corrette, puoi inviare un prompt per anteporre le istruzioni DDL generate alla query per migliorare la qualità della traduzione.

  • Anteponi le istruzioni DDL generate alla query di input e ritraduci.

    Quando utilizzi questo prompt, il client MCP antepone le istruzioni DDL alla query di input originale e chiama lo strumento translate_query. Il client chiama lo strumento get_translation per ottenere la traduzione. La nuova traduzione della query e i log vengono mantenuti quando sono disponibili.

    Se le istruzioni DDL generate sono corrette, gli errori RelationNotFound o AttributeNotFound devono essere risolti, il che comporta un miglioramento della qualità della traduzione.

Nei prompt, sostituisci quanto segue:

  • DIALECT: il dialetto della query SQL che stai traducendo.
  • QUERY: la query che stai traducendo.
  • FILENAME: il file che contiene la query che stai traducendo.
  • PROJECT_NUMBER: il tuo Cloud de Confiance by S3NS numero di progetto.
  • LOCATION: la posizione del traduttore SQL.

Configurazioni di sicurezza facoltative

MCP introduce nuovi rischi e considerazioni sulla sicurezza a causa dell'ampia varietà di azioni che puoi eseguire con gli strumenti MCP. Per ridurre al minimo e gestire questi rischi, Cloud de Confiance by S3NS offre impostazioni predefinite e policy personalizzabili per controllare l'utilizzo degli strumenti MCP nella tua organizzazione o nel tuo progetto Cloud de Confiance by S3NS.

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

Utilizzare Model Armor

Model Armor è un Cloud de Confiance by S3NS servizio progettato per migliorare la sicurezza delle tue applicazioni di AI. Funziona controllando in modo proattivo i prompt e le risposte dei 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 di 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. Installa Google Cloud CLI, quindi accedi a gcloud CLI con la tua identità federata. Dopo aver eseguito l'accesso, inizializza Google Cloud CLI eseguendo il comando seguente:

    gcloud init

  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 Cloud de Confiance by S3NS

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 al 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 Cloud de Confiance .

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 MCP di Google 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 Cloud de Confiance . Model Armor non applica automaticamente le regole definite nelle impostazioni del prezzo minimo 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 su MCP.

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

Le policy di negazione IAM (Identity and Access Management) ti aiutano a proteggere i server MCP remoti. Configura queste policy per bloccare l'accesso indesiderato allo strumento MCP. Cloud de Confiance by S3NS

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.

Quote e limiti

Il server MCP di BigQuery Migration Service non ha quote proprie. Non esiste un limite al numero di chiamate che puoi effettuare al server MCP.

Sei comunque soggetto alle quote applicate dalle API chiamate dagli strumenti del server MCP. Per saperne di più, consulta la sezione API BigQuery Migration Service nella pagina Quote e limiti.

Passaggi successivi