Utiliser le serveur MCP du service de migration BigQuery

Ce document explique comment utiliser le serveur MCP (Model Context Protocol) distant de BigQuery pour vous connecter à des applications d'IA, y compris Antigravity, ChatGPT, Claude et les applications personnalisées que vous développez. Vous pouvez utiliser le serveur MCP (Model Context Protocol) du service de migration BigQuery pour effectuer des tâches telles que la traduction de requêtes SQL en syntaxe GoogleSQL, la génération d'instructions LDD à partir de requêtes SQL d'entrée et l'obtention d'explications sur les traductions SQL. Le serveur MCP distant BigQuery est activé lorsque vous activez l'API BigQuery.

Le Model Context Protocol (MCP) standardise la façon dont les grands modèles de langage (LLM) et les applications ou agents d'IA se connectent à des sources de données externes. Les serveurs MCP vous permettent d'utiliser leurs outils, leurs ressources et leurs prompts pour effectuer des actions et obtenir des données à jour à partir de leur service de backend.

Les serveurs MCP locaux s'exécutent généralement sur votre machine locale et utilisent les flux d'entrée et de sortie standards (stdio) pour la communication entre les services sur le même appareil. Les serveurs MCP s'exécutent sur l'infrastructure du service et offrent un point de terminaison HTTPS aux applications d'IA pour la communication entre le client MCP d'IA et le serveur MCP. Pour en savoir plus sur l'architecture MCP, consultez Architecture MCP.

Les serveurs Google et Google Cloud MCP présentent les fonctionnalités et avantages suivants :

  • Découverte simplifiée et centralisée
  • Points de terminaison HTTPS gérés mondiaux ou régionaux
  • Autorisations précises
  • Sécurité facultative des prompts et des réponses avec la protection Model Armor
  • Journaux d'audit centralisés

Pour en savoir plus sur les autres serveurs MCP et sur les contrôles de sécurité et de gouvernance disponibles pour les serveurs MCP Google Cloud, consultez Présentation des serveurs MCP Google Cloud.

Avant de commencer

  1. Connectez-vous à votre compte Google Cloud . Si vous débutez sur Google Cloud, créez un compte pour évaluer les performances de nos produits en conditions réelles. Les nouveaux clients bénéficient également de 300 $ de crédits sans frais pour exécuter, tester et déployer des charges de travail.
  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. 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

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

  6. Activez l'API BigQuery Migration Service si ce n'est pas déjà fait.

    Rôles requis pour activer les API

    Pour activer des API, vous devez disposer de l'autorisation serviceusage.services.enable. Si vous avez créé le projet, vous disposez probablement déjà de cette autorisation via le rôle Propriétaire (roles/owner). Sinon, vous pouvez l'obtenir via le rôle Administrateur Service Usage (roles/serviceusage.serviceUsageAdmin). Découvrez comment attribuer des rôles.

    Activer l'API

Rôles requis

Pour obtenir les autorisations nécessaires pour activer le serveur MCP du service de migration BigQuery, demandez à votre administrateur de vous accorder les rôles IAM suivants sur le projet dans lequel vous souhaitez activer le serveur MCP du service de migration BigQuery :

Pour en savoir plus sur l'attribution de rôles, consultez Gérer l'accès aux projets, aux dossiers et aux organisations.

Ces rôles prédéfinis contiennent les autorisations requises pour activer le serveur MCP du service de migration BigQuery. Pour connaître les autorisations exactes requises, développez la section Autorisations requises :

Autorisations requises

Les autorisations suivantes sont requises pour activer le serveur MCP du service de migration BigQuery :

  • Effectuer des appels d'outils MCP : mcp.tools.call
  • Utilisez le service de migration BigQuery :
    • bigquerymigration.workflows.create
    • bigquerymigration.workflows.get
    • bigquerymigration.workflows.list
    • bigquerymigration.workflows.delete
    • bigquerymigration.subtasks.get
    • bigquerymigration.subtasks.list

Vous pouvez également obtenir ces autorisations avec des rôles personnalisés ou d'autres rôles prédéfinis.

Des autorisations supplémentaires pour le service de migration BigQuery peuvent être requises en fonction de la tâche. Pour en savoir plus sur les rôles et les autorisations du service de migration BigQuery, consultez Rôles et autorisations du service de migration BigQuery.

Authentification et autorisation

Les serveurs MCP du service de migration BigQuery utilisent le protocole OAuth 2.0 avec Identity and Access Management (IAM) pour l'authentification et l'autorisation. Toutes les identitésGoogle Cloud sont acceptées pour l'authentification auprès des serveurs MCP.

Le serveur MCP du service de migration BigQuery n'accepte pas les clés API.

Champs d'application OAuth MCP du service de migration BigQuery

OAuth 2.0 utilise des champs d'application et des identifiants pour déterminer si un compte principal authentifié est autorisé à effectuer une action spécifique sur une ressource. Pour en savoir plus sur les champs d'application OAuth 2.0 chez Google, consultez Utiliser OAuth 2.0 pour accéder aux API Google.

Le service de migration BigQuery dispose des champs d'application OAuth suivants pour l'outil MCP :

URI de champ d'application pour gcloud CLI Description
https://www.googleapis.com/auth/bigquerymigration Afficher et gérer vos workflows dans le service de migration BigQuery, et voir l'adresse e-mail de votre compte Google.
https://www.googleapis.com/auth/devstorage.read_only Ce champ d'application est requis pour les traductions de requêtes qui lisent des données à partir de Cloud Storage.

Les ressources auxquelles vous accédez lors d'un appel d'outil peuvent nécessiter des champs d'application supplémentaires.

Configurer un client MCP pour utiliser le serveur MCP du service de migration BigQuery

Les applications et agents d'IA, tels que Claude ou Antigravity, peuvent instancier un client MCP qui se connecte à un seul serveur MCP. Une application d'IA peut avoir plusieurs clients qui se connectent à différents serveurs MCP. Si votre application ne figure pas dans les instructions spécifiques au client, vous pouvez utiliser les informations suivantes pour vous connecter à partir de la plupart des applications.

Enregistrez le serveur MCP à l'aide de add-mcp.

Vous pouvez enregistrer automatiquement le serveur MCP du service de migration BigQuery dans les clients d'IA compatibles à l'aide de add-mcp sans localiser manuellement les chemins d'accès aux fichiers de configuration. L'outil détecte automatiquement vos clients d'IA installés. L'exemple suivant montre comment utiliser add-mcp pour enregistrer le serveur MCP du service de migration BigQuery :

npx add-mcp https://bigquerymigration.googleapis.com/mcp --name bqms --header "x-goog-user-project: PROJECT_ID" --scopes "https://www.googleapis.com/auth/bigquerymigration,https://www.googleapis.com/auth/devstorage.read_only" --timeout 30000

Dans votre application d'IA, recherchez un moyen d'ajouter un serveur MCP distant ou de vous y connecter. Pour le serveur MCP du service de migration BigQuery, saisissez les informations suivantes :

  • Nom du serveur : serveur MCP du service de migration BigQuery
  • URL du serveur ou Point de terminaison : bigquerymigration.googleapis.com/mcp
  • Transport : HTTP diffusable en streaming
  • Détails de l'authentification : selon la façon dont vous souhaitez vous authentifier, vous pouvez saisir vos identifiants Google Cloud , votre ID client et votre code secret OAuth, ou l'identité et les identifiants d'un agent. Pour en savoir plus sur l'authentification, consultez S'authentifier auprès des serveurs MCP.
  • Champ d'application OAuth : champ d'application OAuth 2.0 que vous souhaitez utiliser lors de la connexion au serveur MCP du service de migration BigQuery.
{
  "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"
      }
    }
  }
}

URI de redirection

Pour les applications Web et certaines applications de bureau, vous devez ajouter un URI de redirection à la liste d'autorisation lorsque vous créez un ID client et un code secret pour l'authentification. Les URI de redirection sont utilisés par le serveur d'autorisation pour envoyer des jetons à votre application. La documentation de votre application doit spécifier l'URI de redirection que vous devez utiliser. Les URI de redirection personnalisés ne sont pas acceptés.

Pour obtenir des conseils spécifiques à l'application sur la configuration et la connexion au serveur MCP, consultez Conseils spécifiques au client.

Pour obtenir des conseils plus généraux, consultez les ressources suivantes :

Outils disponibles

Pour afficher les détails des outils MCP disponibles et leurs descriptions pour le serveur MCP du service de migration BigQuery, consultez la documentation de référence sur le MCP du service de migration BigQuery.

Lister les outils

Utilisez l'inspecteur MCP pour lister les outils ou envoyez une requête HTTP tools/list directement au serveur MCP distant du service de migration BigQuery. La méthode tools/list ne nécessite pas d'authentification.

curl -X POST https://bigquerymigration.googleapis.com/TOOLSET_ENDPOINT \
    -H 'Content-Type: application/json' \
    -H 'Accept: application/json' \
    -H 'MCP-Protocol-Version: MCP_PROTOCOL_VERSION' \
    -H 'Mcp-Method: tools/list' \
    -d '{
      "jsonrpc": "2.0",
      "id": 1,
      "method": "tools/list",
      "params": {
        "_meta": {
          "io.modelcontextprotocol/protocolVersion": "MCP_PROTOCOL_VERSION",
          "io.modelcontextprotocol/clientCapabilities": {
            "extensions": {
              "io.modelcontextprotocol/ui": {
                "mimeTypes": ["text/html;profile=mcp-app"]
              }
            }
          }
        }
      }
    }'

Remplacez les éléments suivants :

  • TOOLSET_ENDPOINT : le reste du point de terminaison MCP après le nom du service. Par exemple, pour le service de migration BigQuery, il peut s'agir de mcp/toolset-name.
  • MCP_PROTOCOL_VERSION : version du protocole MCP. Exemple : 2026-07-28.

Exemples de cas d'utilisation

Voici quelques exemples de cas d'utilisation du serveur MCP du service de migration BigQuery :

  • À l'aide d'un client MCP avec un IDE, traduisez un fichier de requête en syntaxe GoogleSQL.
  • À l'aide d'un client MCP sans IDE, traduisez une requête spécifiée en syntaxe GoogleSQL.
  • Évaluer la qualité de la traduction
  • Obtenir des explications sur les traductions SQL
  • Générer une instruction LDD pour une requête spécifiée.

Exemples de prompts

Vous pouvez utiliser les exemples de requêtes suivants pour créer et gérer des ressources du service de migration BigQuery :

  • Traduisez la requête DIALECT dans ce FILENAME. Utilisez PROJECT_ID et LOCATION. Conservez les journaux de sortie et de traduction dans des répertoires distincts.

    Lorsque vous utilisez cette requête, le client MCP appelle l'outil translate_query pour traduire la requête dans le fichier spécifié. Le client MCP appelle régulièrement l'outil get_translation pour obtenir les résultats. Une fois la traduction terminée, le client écrit la sortie dans le répertoire de sortie et les journaux dans le répertoire des journaux.

  • Traduire cette requête depuis DIALECT : QUERY. Utilisez PROJECT_ID et LOCATION.

    Lorsque vous utilisez cette requête, le client MCP appelle l'outil translate_query pour traduire la requête spécifiée et affiche les résultats de la traduction.

  • Évaluez la qualité de la traduction.

    Lorsque vous utilisez ce prompt, le client MCP lit et examine les journaux de traduction, puis affiche un résumé des problèmes de traduction avec des suggestions d'étapes suivantes.

  • Expliquez la traduction.

    Lorsque vous utilisez cette requête, le client MCP appelle l'outil explain_translation pour obtenir une explication de la traduction. Si les journaux de traduction contiennent des erreurs RelationNotFound ou AttributeNotFound, le client MCP doit vous suggérer de créer un package de métadonnées. Si vous ne parvenez pas à générer les métadonnées, vous pouvez envoyer une requête demandant l'instruction LDD.

    Voici un exemple de réponse :

    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.
    
  • Génère un LDD pour cette requête d'entrée.

    Le client MCP appelle l'outil generate_ddl_suggestion pour démarrer un job de suggestion. Le client obtient les résultats de la suggestion en appelant l'outil fetch_ddl_suggestion. Lorsque la suggestion est disponible, le client MCP l'affiche.

    Si les instructions LDD sont correctes, vous pouvez envoyer un prompt pour ajouter les instructions LDD générées au début de la requête afin d'améliorer la qualité de la traduction.

  • Ajoutez les instructions LDD générées au début de la requête d'entrée et retraduisez.

    Lorsque vous utilisez cette requête, le client MCP ajoute les instructions LDD à la requête d'entrée d'origine et appelle l'outil translate_query. Le client appelle l'outil get_translation pour obtenir la traduction. La nouvelle traduction de la requête et les journaux sont conservés lorsqu'ils sont disponibles.

    Si les instructions LDD générées sont correctes, toutes les erreurs RelationNotFound ou AttributeNotFound doivent être résolues, ce qui améliore la qualité de la traduction.

Dans les prompts, remplacez les éléments suivants :

  • DIALECT : dialecte de la requête SQL que vous traduisez.
  • QUERY : requête que vous traduisez.
  • FILENAME : fichier contenant la requête que vous traduisez.
  • PROJECT_NUMBER : votre numéro de projet Google Cloud .
  • LOCATION : emplacement du traducteur SQL.

Configurations de sécurité facultatives

Le MCP introduit de nouveaux risques et considérations de sécurité en raison de la grande variété d'actions que vous pouvez effectuer avec les outils MCP. Pour minimiser et gérer ces risques,Google Cloud propose des paramètres par défaut et des règles personnalisables permettant de contrôler l'utilisation des outils MCP dans votre organisation ou projet Google Cloud.

Pour en savoir plus sur la sécurité et la gouvernance de MCP, consultez Sécurité et sûreté de l'IA.

Utiliser Model Armor

Model Armor est un serviceGoogle Cloud conçu pour améliorer la sécurité de vos applications d'IA. Il analyse de manière proactive les prompts et les réponses des LLM, protège contre divers risques et favorise les pratiques pour une IA responsable. Que vous déployiez l'IA dans votre environnement cloud ou sur des fournisseurs de services cloud externes, Model Armor peut vous aider à empêcher les entrées malveillantes, à vérifier la sécurité du contenu, à protéger les données sensibles, à maintenir la conformité et à appliquer vos règles de sécurité de l'IA de manière cohérente dans votre paysage d'IA diversifié.

Lorsque Model Armor est activé avec la journalisation activée, il consigne l'intégralité de la charge utile. Cela pourrait exposer des informations sensibles dans vos journaux.

Routage des requêtes MCP vers Model Armor

Model Armor est disponible dans certaines régions. Lorsque Model Armor est activé et que vous utilisez un serveur MCP dans une juridiction non compatible avec Model Armor, le comportement de routage de l'appel peut être différent selon les serveurs MCP et peut enfreindre la conformité de la résidence des données pour les données en cours d'utilisation et en transit. Pour en savoir plus sur le comportement des différents serveurs MCP, consultez Produits compatibles avec Model Armor.

Activer Model Armor

Vous devez activer les API Model Armor avant de pouvoir utiliser Model Armor.

Console

  1. Activez l'API Model Armor, si ce n'est pas déjà fait.

    Rôles requis pour activer les API

    Pour activer des API, vous devez disposer de l'autorisation serviceusage.services.enable. Si vous avez créé le projet, vous disposez probablement déjà de cette autorisation via le rôle Propriétaire (roles/owner). Sinon, vous pouvez l'obtenir via le rôle Administrateur Service Usage (roles/serviceusage.serviceUsageAdmin). Découvrez comment attribuer des rôles.

    Activer l'API

  2. Sélectionnez le projet dans lequel vous souhaitez activer Model Armor.

gcloud

Avant de commencer, suivez ces étapes à l'aide de la Google Cloud CLI avec l'API Model Armor :

  1. Dans la console Google Cloud , activez Cloud Shell.

    Activer Cloud Shell

    En bas de la fenêtre de la console Google Cloud , une session Cloud Shell démarre et affiche une invite de ligne de commande. Cloud Shell est un environnement de shell dans lequel la Google Cloud CLI est déjà installée, et dans lequel des valeurs sont déjà définies pour votre projet actuel. L'initialisation de la session peut prendre quelques secondes.

  2. Exécutez la commande suivante pour définir le point de terminaison de l'API pour le service Model Armor.

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

    Remplacez LOCATION par la région dans laquelle vous souhaitez utiliser Model Armor.

Configurer la protection pour les serveurs MCP Google et Google Cloud distants

Pour protéger les appels et les réponses de vos outils MCP, vous pouvez utiliser les paramètres de plancher Model Armor. Un paramètre de plancher définit les filtres de sécurité minimaux qui s'appliquent à l'ensemble du projet. Cette configuration applique un ensemble de filtres cohérent à tous les appels et réponses d'outils MCP du projet.

Configurez un paramètre plancher Model Armor avec la désinfection MCP activée. Pour en savoir plus, consultez Configurer les paramètres de plancher Model Armor.

Consultez l'exemple de commande suivant :

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"}]'

Remplacez PROJECT_ID par l'ID du projet Google Cloud .

Notez les paramètres suivants :

  • INSPECT_AND_BLOCK : type d'application qui inspecte le contenu du serveur MCP Google et bloque les requêtes et les réponses qui correspondent aux filtres.
  • ENABLED : paramètre qui active un filtre ou une mesure d'application.
  • MEDIUM_AND_ABOVE : niveau de confiance pour les paramètres du filtre "IA responsable - Dangereux". Vous pouvez modifier ce paramètre, mais des valeurs inférieures peuvent entraîner davantage de faux positifs. Pour en savoir plus, consultez Niveaux de confiance de Model Armor.

Désactiver l'analyse du trafic MCP avec Model Armor

Pour empêcher Model Armor d'analyser automatiquement le trafic vers et depuis les serveurs MCP Google en fonction des paramètres de base du projet, exécutez la commande suivante :

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

Remplacez PROJECT_ID par l'ID du projet Google Cloud . Model Armor n'applique pas automatiquement les règles définies dans les paramètres de base de ce projet au trafic des serveurs MCP Google.

Les paramètres de base et la configuration générale de Model Armor peuvent avoir un impact sur d'autres éléments que le MCP. Comme Model Armor s'intègre à des services tels que Vertex AI, toute modification apportée aux paramètres de seuil peut affecter l'analyse du trafic et les comportements de sécurité dans tous les services intégrés, et pas seulement dans MCP.

Contrôler l'utilisation de MCP avec des stratégies IAM

Les stratégies de refus et les stratégies d'autorisation IAM (Identity and Access Management) vous aident à sécuriser les serveurs Google Cloud et Google MCP.

Vous pouvez combiner plusieurs critères pour créer des règles de sécurité et de gouvernance personnalisées en autorisant ou en refusant l'accès en fonction des éléments suivants :

  • Le compte principal.
  • Propriétés de l'outil, comme l'attribut en lecture seule.
  • Nom du service ou de l'outil.
  • ID client OAuth de l'application.

Pour en savoir plus, consultez Contrôler l'utilisation de MCP avec Identity and Access Management.

Quotas et limites

Vous êtes toujours soumis aux quotas appliqués par les API appelées par les outils du serveur MCP. Les méthodes d'API suivantes sont appelées par les outils du serveur MCP :

Outil Méthode API Quotas
explain_translation GetMigrationWorkflow Quotas et limites de l'API BigQuery Migration
fetch_ddl_suggestion GetMigrationWorkflow Quotas et limites de l'API BigQuery Migration
get_translation GetMigrationWorkflow Quotas et limites de l'API BigQuery Migration
generate_ddl_suggestion CreateMigrationWorkflow Quotas et limites de l'API BigQuery Migration
translate_query CreateMigrationWorkflow Quotas et limites de l'API BigQuery Migration

Pour en savoir plus sur les quotas BigQuery, consultez Quotas et limites.

Étapes suivantes