Boîte à outils MCP pour les bases de données: Mettre les ensembles de données BigQuery à la disposition des clients MCP

1. Introduction

Dans cet atelier de programmation, vous allez utiliser la boîte à outils MCP pour les bases de données pour mettre à disposition vos ensembles de données BigQuery.

Au cours de l'atelier de programmation, vous allez suivre une approche par étapes, comme suit:

  1. Identifiez un ensemble de données BigQuery spécifique ("Notes de version Google Cloud") du programme d'ensembles de données BigQuery publics.
  2. Configurez la boîte à outils MCP pour les bases de données, qui se connecte à l'ensemble de données BigQuery.
  3. Explorez différents clients MCP et vérifiez qu'ils peuvent accéder à l'interface MCP de l'ensemble de données BigQuery.

Objectifs de l'atelier

  • Configurez MCP Toolbox for Databases pour exposer les notes de version Google Cloud, un ensemble de données BigQuery public, en tant qu'interface MCP à d'autres clients MCP (IDE, outils, etc.).

Points abordés

  • Explorez les ensembles de données publics BigQuery et choisissez-en un.
  • Configurez la boîte à outils MCP pour les bases de données pour l'ensemble de données public BigQuery que vous souhaitez mettre à la disposition des clients MCP.
  • Testez la configuration MCP Toolbox for Databases dans l'environnement local.

Prérequis

  • Navigateur Web Chrome
  • Un environnement de développement Python local
  • Un environnement Node.js local avec npm version 5.2.0 ou ultérieure.

2. Avant de commencer

Créer un projet

  1. Dans la console Google Cloud, sur la page du sélecteur de projet, sélectionnez ou créez un projet Google Cloud.
  2. Assurez-vous que la facturation est activée pour votre projet Cloud. Découvrez comment vérifier si la facturation est activée sur un projet .
  3. Vous allez utiliser Cloud Shell, un environnement de ligne de commande exécuté dans Google Cloud et fourni avec bq. Cliquez sur "Activer Cloud Shell" en haut de la console Google Cloud.

Image du bouton Activer Cloud Shell

  1. Une fois connecté à Cloud Shell, vérifiez que vous êtes déjà authentifié et que le projet est défini avec votre ID de projet à l'aide de la commande suivante:
gcloud auth list
  1. Exécutez la commande suivante dans Cloud Shell pour vérifier que la commande gcloud connaît votre projet.
gcloud config list project
  1. Si votre projet n'est pas défini, utilisez la commande suivante pour le définir :
gcloud config set project <YOUR_PROJECT_ID>

Consultez la documentation pour connaître les commandes gcloud ainsi que leur utilisation.

3. Ensemble de données des notes de version Google et clients MCP

Commençons par examiner les notes de version de Google Cloud, qui sont régulièrement mises à jour sur la page Web officielle des notes de version de Google Cloud, dont une capture d'écran est présentée ci-dessous:

37a7d9e124296c55.png

Vous pouvez vous abonner à l'URL du flux, mais nous pourrions simplement demander à notre agent dans le chat des notes de version. Vous pouvez par exemple formuler une requête simple comme "M'informer des notes de version de Google Cloud".

Voyons l'objectif final. Voici une capture d'écran de mon Visual Studio Code exécutant CoPilot. Je suis en mode Agent et je demande des informations sur les notes de version de Google Cloud:

1ded42a37f128fa3.png

Voyons comment procéder et découvrons comment exposer vos ensembles de données BigQuery dans différents clients MCP de votre choix.

4. MCP Toolbox for Databases

MCP Toolbox for Databases est un serveur MCP Open Source pour les bases de données. Il a été conçu pour répondre aux exigences de qualité de production et d'entreprise. Il vous permet de développer des outils plus facilement, plus rapidement et de manière plus sécurisée en gérant les complexités telles que le pool de connexions, l'authentification, etc.

La boîte à outils vous aide à créer des outils d'IA générative qui permettent à vos agents d'accéder aux données de votre base de données. Outils fournit:

  • Développement simplifié: intégrez des outils à votre agent en moins de 10 lignes de code, réutilisez des outils entre plusieurs agents ou frameworks, et déployez plus facilement de nouvelles versions d'outils.
  • Meilleures performances: bonnes pratiques telles que le regroupement de connexions, l'authentification, etc.
  • Sécurité renforcée: authentification intégrée pour un accès plus sécurisé à vos données
  • Observabilité de bout en bout: métriques et traçage prêts à l'emploi, avec prise en charge intégrée d'OpenTelemetry.
  • Toolbox permet de connecter facilement des bases de données à n'importe quel assistant IA compatible avec MCP, même ceux qui se trouvent dans votre IDE.

La boîte à outils se situe entre le framework d'orchestration de votre application et votre base de données. Elle fournit un plan de contrôle permettant de modifier, de distribuer ou d'invoquer des outils. Il simplifie la gestion de vos outils en vous fournissant un emplacement centralisé pour les stocker et les mettre à jour. Vous pouvez ainsi les partager entre les agents et les applications, et les mettre à jour sans avoir à redéployer votre application.

e316aed02b9861a6.png

En résumé:

  1. MCP Toolbox est disponible en tant qu'image de conteneur ou en tant que binaire. Vous pouvez également la créer à partir de la source.
  2. Il expose un ensemble d'outils que vous configurez via un fichier tools.yaml. Vous pouvez considérer que les outils se connectent à vos sources de données. Vous pouvez voir les différentes sources de données compatibles : AlloyDB, BigQuery, etc.
  3. Étant donné que cette boîte à outils est désormais compatible avec MCP, vous disposez automatiquement d'un point de terminaison de serveur MCP qui peut ensuite être utilisé par les agents (IDE) ou que vous pouvez utiliser lorsque vous développez vos applications d'agent à l'aide de différents frameworks, tels que le kit de développement d'agents (ADK).

Cet article de blog se concentrera sur les points ci-dessous:

f3f3cb495d8a288b.png

En résumé, nous allons créer une configuration dans la boîte à outils MCP pour les bases de données qui sait se connecter à notre ensemble de données BigQuery. Nous utiliserons ensuite un IDE ou tout autre IDE d'agent (clients MCP) qui communiquera avec le point de terminaison MCP Toolbox et nous permettra d'envoyer des requêtes naturelles pour poser des questions sur notre ensemble de données. Considérez-le comme un outil que vous configurez, qui sait communiquer avec votre ensemble de données BigQuery et qui exécute des requêtes.

5. Ensemble de données BigQuery pour les notes de version de Google Cloud

Le Programme d'ensembles de données publics Google Cloud met à votre disposition une gamme d'ensembles de données pour vos applications. La base de données des notes de version Google Cloud en est un exemple. Cet ensemble de données vous fournit les mêmes informations que la page Web officielle des notes de version de Google Cloud. Il est disponible en tant qu'ensemble de données publics pouvant être interrogés.

2104010c05c87d0d.png

Pour tester l'ensemble de données, je le valide simplement en exécutant une requête simple, comme indiqué ci-dessous:

SELECT
       product_name,description,published_at
     FROM
       `bigquery-public-data`.`google_cloud_release_notes`.`release_notes`
     WHERE
       DATE(published_at) >= DATE_SUB(CURRENT_DATE(), INTERVAL 7 DAY)
     GROUP BY product_name,description,published_at
     ORDER BY published_at DESC

Je reçois alors une liste des enregistrements du jeu de données "Notes de version" publiés au cours des sept derniers jours.

Remplacez-le par un autre ensemble de données de votre choix, ainsi que par les requêtes et paramètres de votre choix. Il ne nous reste plus qu'à configurer cette fonctionnalité en tant que source de données et outil dans MCP Toolbox for Databases. Voyons comment procéder.

6. Installer MCP Toolbox for Databases

Ouvrez un terminal sur votre machine locale et créez un dossier nommé mcp-toolbox.

mkdir mcp-toolbox

Accédez au dossier mcp-toolbox à l'aide de la commande ci-dessous:

cd mcp-toolbox

Installez la version binaire de la MCP Toolbox for Databases à l'aide du script ci-dessous. La commande ci-dessous est destinée à Linux. Si vous utilisez Mac ou Windows, assurez-vous de télécharger le binaire approprié. Consultez la page des versions pour votre système d'exploitation et votre architecture, puis téléchargez le binaire approprié.

export VERSION=0.6.0
curl -O https://storage.googleapis.com/genai-toolbox/v$VERSION/linux/amd64/toolbox
chmod +x toolbox

La version binaire de la boîte à outils est maintenant prête à être utilisée. L'étape suivante consiste à configurer la boîte à outils avec nos sources de données et d'autres configurations.

7. Configurer la MCP Toolbox for Databases

Nous devons maintenant définir notre ensemble de données et nos outils BigQuery dans le fichier tools.yaml, qui est nécessaire à la boîte à outils MCP pour la base de données. Le fichier tools.yaml est le principal moyen de configurer Toolbox.

Créez un fichier nommé tools.yaml dans le même dossier (mcp-toolbox), dont le contenu est indiqué ci-dessous.

Vous pouvez utiliser l'éditeur nano disponible dans Cloud Shell. La commande nano est la suivante : nano tools.yaml.

N'oubliez pas de remplacer la valeur YOUR_PROJECT_ID par l'ID de votre projet Google Cloud.

sources:
 my-bq-source:
   kind: bigquery
   project: YOUR_PROJECT_ID

tools:
 search_release_notes_bq:
   kind: bigquery-sql
   source: my-bq-source
   statement: |
    SELECT
     product_name,description,published_at
    FROM
      `bigquery-public-data`.`google_cloud_release_notes`.`release_notes`
    WHERE
     DATE(published_at) >= DATE_SUB(CURRENT_DATE(), INTERVAL 7 DAY)
    GROUP BY product_name,description,published_at
    ORDER BY published_at DESC
   description: |
    Use this tool to get information on Google Cloud Release Notes.

toolsets:
 my_bq_toolset:
   - search_release_notes_bq

Voyons brièvement le fichier:

  1. Les sources représentent les différentes sources de données avec lesquelles un outil peut interagir. Une source représente une source de données avec laquelle un outil peut interagir. Vous pouvez définir des sources en tant que mappage dans la section "sources" de votre fichier tools.yaml. En règle générale, une configuration de source contient toutes les informations nécessaires pour se connecter à la base de données et interagir avec elle. Dans notre cas, nous avons défini une source BigQuery my-bq-source et vous devez fournir l'ID de votre projet Google Cloud. Pour en savoir plus, consultez la documentation de référence sur les sources.
  2. Les outils définissent les actions qu'un agent peut effectuer, comme lire et écrire dans une source. Un outil représente une action que votre agent peut effectuer, comme exécuter une instruction SQL. Vous pouvez définir les outils en tant que carte dans la section "tools" de votre fichier tools.yaml. En règle générale, un outil nécessite une source sur laquelle agir. Dans notre cas, nous définissons un seul outil : search_release_notes_bq. Il fait référence à la source BigQuery my-bq-source que nous avons définie à l'étape 1. Il contient également l'énoncé et l'instruction qui seront utilisés par les clients de l'agent d'IA. Pour en savoir plus, consultez la documentation de référence sur les outils.
  3. Enfin, l'ensemble d'outils vous permet de définir des groupes d'outils que vous souhaitez pouvoir charger ensemble. Cela peut être utile pour définir différents groupes en fonction de l'agent ou de l'application. Dans notre cas, nous avons une définition d'ensemble d'outils dans laquelle nous n'avons actuellement défini qu'un seul outil existant, search_release_notes_bq. Vous pouvez avoir plusieurs ensembles d'outils, qui combinent différents outils.

Actuellement, nous n'avons défini qu'un seul outil qui récupère les notes de version des sept derniers jours, conformément à la requête. Vous pouvez également utiliser différentes combinaisons de paramètres.

Pour en savoir plus sur la configuration ( Source, Outils), consultez la configuration de la source de données BigQuery dans la boîte à outils MCP pour les bases de données.

8. Tester la MCP Toolbox for Databases

Nous avons téléchargé et configuré la boîte à outils avec le fichier tools.yaml dans le dossier mcp-toolbox. Commençons par l'exécuter en local.

Exécutez la commande suivante :

$ ./toolbox --tools-file="tools.yaml" --port 7000

Le serveur MCP Toolbox s'exécute par défaut sur le port 5000, mais dans ce cas, nous l'avons configuré pour qu'il s'exécute sur le port 7000.

Si l'exécution réussit, le serveur doit démarrer, avec un exemple de sortie semblable à celui-ci:

2025-04-25T16:05:45.603871+05:30 INFO "Initialized 1 sources."
2025-04-25T16:05:45.603943+05:30 INFO "Initialized 0 authServices."
2025-04-25T16:05:45.604092+05:30 INFO "Initialized 1 tools."
2025-04-25T16:05:45.604105+05:30 INFO "Initialized 2 toolsets."
2025-04-25T16:05:45.604706+05:30 INFO "Server ready to serve!"

Il vous suffit de lancer le navigateur et d'accéder à l'URL suivante:

http://127.0.0.1:7000

Vous devriez obtenir le résultat suivant:

2fdcdac326034d41.png

Dans l'URL du navigateur, ajoutez ce qui suit à la fin de l'URL:

http://127.0.0.1:7000/api/toolset

Les outils actuellement configurés devraient s'afficher. Voici un exemple de sortie:

53d9c9a3bb1c8494.png

Le serveur MCP, conformément à la documentation, est désormais disponible à l'URL suivante:

http://127.0.0.1:7000/mcp/sse

Le résultat est indiqué ci-dessous:

event: endpoint
data: https://<some-url-pattern>/mcp?sessionId=bf6bfb66-36fe-48a4-8340-ac68008ee873

Dans la section suivante, testons notre serveur MCP avec des clients MCP.

9. Tester le serveur MCP avec différents clients MCP

Testons notre nouveau serveur MCP avec quelques clients MCP.

MCP Inspector avec la boîte à outils

Le premier outil à utiliser est l'inspecteur MCP avec la boîte à outils. Pour ce faire, vous devez installer npx. Cloud Shell vous invite à installer le package. N'hésitez pas à l'installer.

Vous devez exécuter la commande suivante:

npx @modelcontextprotocol/inspector

Le serveur sera lancé et un résultat semblable à celui-ci devrait s'afficher:

Starting MCP inspector...
⚙️ Proxy server listening on port 6277
🔍 MCP Inspector is up and running at http://127.0.0.1:6274 🚀

Accédez à la page de l'inspecteur MCP comme indiqué. La première chose à faire est de configurer ce client pour qu'il communique avec le serveur MCP.

a819e93705367076.png

Sélectionnez SSE comme type de transport, puis indiquez URL comme indiqué précédemment, c'est-à-dire http://127.0.0.1:7000/mcp/sse. Cliquez sur Connect. Si tout se passe bien, l'état "Connecté" s'affiche, comme indiqué ci-dessous:

e19278a9ea58dda1.png

Sur la droite, vous pouvez désormais afficher la liste des outils en cliquant sur List Tools.

faacf3e6d7ac2ebe.png

Cliquez ensuite sur l'outil search_release_notes_bq. Étant donné que nous n'avons aucun paramètre à transmettre, cliquez simplement sur le bouton Run tool. Vous devriez voir l'outil de boîte à outils appelé, qui se connecte à la source de données BigQuery et récupère les données, comme indiqué ci-dessous:

3db3e057763ecbef.png

VS Code en mode Agent avec CoPilot

Pour savoir comment vous connecter à la boîte à outils pour différentes sources de données et IDE, consultez la documentation officielle.

Dans cette section, nous allons voir comment configurer et utiliser des serveurs MCP dans VS Code. Notez qu'il est disponible en version Preview. La documentation officielle est exhaustive et disponible sur cette page.

En supposant que vous ayez lancé VS Code, lancez Command Palette et exécutez la commande suivante:

4df742e8ef74b52.png

Sélectionnez ensuite Command(stdio), car nous allons exécuter une commande locale qui démarre la boîte à outils MCP.

1aca4f1262693b1b.png

La commande avec les paramètres facultatifs vous sera demandée. Vous devez fournir l'intégralité de la commande de la boîte à outils avec les paramètres. Par exemple :

FULL_PATH_TO_TOOLBOX tools-file=FULL_PATH_TO_TOOLBOX/tools.yaml --port=7000 -stdio

Notez que vous devrez remplacer FULL_PATH_TO_TOOLBOX par celui qui convient à votre système et où vous avez installé l'exécutable toolbox.

Ensuite, il confirmera quelques autres informations. Nommez-le bq-release-notes-server, puis choisissez de l'ajouter à mes paramètres utilisateur. Le fichier settings.json s'ouvre alors, et vous pouvez consulter la configuration. Voici mon exemple de configuration:

c817ba262c48fa38.png

Il vous suffit de cliquer sur Start pour voir que l'état passe à Running.

69b45ae6afce74b8.png

Nous pouvons maintenant lancer le mode Chat de CoPilot, puis, en mode Agent, saisir une requête telle que "Rechercher les notes de version de Google Cloud Platform". Il déterminera l'outil le plus adapté à ce cas et, espérons-le, sélectionnera l'outil que nous avons configuré. Autorisez-le à appeler l'outil dans la session et à afficher la sortie (un exemple d'exécution est présenté ci-dessous).

3b86df102ab05f84.png

10. Félicitations

Félicitations ! Vous avez bien configuré la boîte à outils MCP pour les bases de données et un ensemble de données BigQuery pour l'accès dans les clients MCP.

Documents de référence