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

MCP Toolbox for Databases:
rendre les ensembles de données BigQuery disponibles pour les clients MCP

À propos de cet atelier de programmation

subjectDernière mise à jour : juin 20, 2025
account_circleRédigé par Romin Irani

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. Développez un agent à l'aide du kit de développement d'agents (ADK) qui utilisera la boîte à outils MCP pour répondre aux requêtes de l'utilisateur concernant les notes de version Google Cloud.

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 auprès 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.
  • Concevoir et développer un agent à l'aide de l'Agent Development Kit (ADK) pour répondre aux requêtes des utilisateurs
  • Tester l'agent et MCP Toolbox for Databases dans l'environnement local

Prérequis

  • Navigateur Web Chrome
  • Un environnement de développement Python local

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 Google Cloud, qui sont régulièrement mises à jour sur la page Web officielle des notes de version 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".

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.
  • Amélioration des 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 qui permet 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:

882edaaddf940080.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 allons ensuite développer un agent à l'aide du kit de développement d'agents (ADK) qui s'intégrera au 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-la comme une application d'agent que vous développez, 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 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

À titre de test, je valide simplement l'ensemble de données 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 ainsi la 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.7.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"

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

2025-06-17T07:48:52.989710733Z INFO "Initialized 1 sources." 
2025-06-17T07:48:52.989805642Z INFO "Initialized 0 authServices."
2025-06-17T07:48:52.989847035Z INFO "Initialized 1 tools."
2025-06-17T07:48:52.989889742Z INFO "Initialized 2 toolsets."
2025-06-17T07:48:52.990357879Z INFO "Server ready to serve!"

Le serveur MCP Toolbox s'exécute par défaut sur le port 5000. Si vous constatez que le port 5000 est déjà utilisé, n'hésitez pas à utiliser un autre port (par exemple, 7000) conformément à la commande ci-dessous. Veuillez utiliser 7000 au lieu du port 5000 dans les commandes suivantes.

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

Utilisons Cloud Shell pour le tester.

Cliquez sur "Aperçu sur le Web" dans Cloud Shell, comme illustré ci-dessous:

f990712162e8e924.png

Cliquez sur Change port (Modifier le port), définissez le port sur 5000, comme indiqué ci-dessous, puis cliquez sur Modifier et prévisualiser.

d1b9de0c46ecef8a.png

Vous devriez obtenir le résultat suivant:

2fdcdac326034d41.png

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

/api/toolset

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

{
  "serverVersion": "0.7.0+binary.linux.amd64.714d990c34ee990e268fac1aa6b89c4883ae5023",
  "tools": {
    "search_release_notes_bq": {
      "description": "Use this tool to get information on Google Cloud Release Notes.\n",
      "parameters": [],
      "authRequired": []
    }
  }
}

MCP Toolbox for Databases décrit une méthode Python pour valider et tester les outils, qui est documentée ici. Nous allons passer directement à l'Agent Development Kit (ADK) dans la section suivante, qui utilise ces outils.

9. Écrire notre agent avec Agent Development Kit (ADK)

Installer le kit de développement d'agents (ADK)

Ouvrez un nouvel onglet de terminal dans Cloud Shell et créez un dossier nommé my-agents comme suit. Accédez également au dossier my-agents.

mkdir my-agents
cd
my-agents

Créons maintenant un environnement Python virtuel à l'aide de venv comme suit:

python -m venv .venv

Activez l'environnement virtuel comme suit:

source .venv/bin/activate

Installez le kit de développement d'agents et les packages MCP Toolbox for Databases, ainsi que la dépendance langchain comme suit:

pip install google-adk toolbox-core

Vous pouvez désormais appeler l'utilitaire adk comme suit.

adk

Une liste de commandes s'affiche.

$ adk
Usage: adk [OPTIONS] COMMAND [ARGS]...

  Agent Development Kit CLI tools.

Options:
  --help  Show this message and exit.

Commands:
  api_server  Starts a FastAPI server for agents.
  create      Creates a new app in the current folder with prepopulated agent template.
  deploy      Deploys agent to hosted environments.
  eval        Evaluates an agent given the eval sets.
  run         Runs an interactive CLI for a certain agent.
  web         Starts a FastAPI server with Web UI for agents.

Créer notre première application d'agent

Nous allons maintenant utiliser adk pour créer une structure pour l'application de l'agent des notes de version Google Cloud via la commande create adk avec un nom d'application **(gcp-releasenotes-agent-app)**, comme indiqué ci-dessous.

adk create gcp-releasenotes-agent-app

Suivez les étapes ci-dessous et sélectionnez les éléments suivants:

  • Modèle Gemini pour choisir un modèle pour l'agent racine.
  • Choisissez Vertex AI pour le backend.
  • Votre ID de projet Google et votre région par défaut s'affichent. Sélectionnez la valeur par défaut.
Choose a model for the root agent:
1. gemini-2.0-flash-001
2. Other models (fill later)

Choose model (1, 2): 1
1. Google AI
2. Vertex AI
Choose a backend (1, 2): 2

You need an existing Google Cloud account and project, check out this link for details:
https://google.github.io/adk-docs/get-started/quickstart/#gemini---google-cloud-vertex-ai

Enter Google Cloud project ID [YOUR_GOOGLE_PROJECT_ID]:
Enter Google Cloud region [us-central1]:

Agent created in ../my-agents/gcp-releasenotes-agent-app:
- .env
- __init__.py
- agent.py

Examinez le dossier dans lequel un modèle par défaut et les fichiers requis pour l'Agent ont été créés.

Commençons par le fichier .env. dont le contenu est indiqué ci-dessous:

GOOGLE_GENAI_USE_VERTEXAI=1
GOOGLE_CLOUD_PROJECT
=YOUR_GOOGLE_PROJECT_ID
GOOGLE_CLOUD_LOCATION
=YOUR_GOOGLE_PROJECT_REGION

Les valeurs indiquent que nous utiliserons Gemini via Vertex AI, ainsi que les valeurs respectives pour l'ID et l'emplacement du projet Google Cloud.

Le fichier __init__.py marque le dossier comme un module et contient une seule instruction qui importe l'agent à partir du fichier agent.py.

from . import agent

Enfin, examinons le fichier agent.py. Le contenu est affiché ci-dessous:

from google.adk.agents import Agent

root_agent = Agent(
   
model='gemini-2.0-flash-001',
   
name='root_agent',
   
description='A helpful assistant for user questions.',
   
instruction='Answer user questions to the best of your knowledge',
)

Il s'agit de l'agent le plus simple que vous pouvez écrire avec l'ADK. D'après la page de la documentation de l'ADK, un agent est une unité d'exécution autonome conçue pour agir de manière autonome afin d'atteindre des objectifs spécifiques. Les agents peuvent effectuer des tâches, interagir avec les utilisateurs, utiliser des outils externes et se coordonner avec d'autres agents.

Plus précisément, un LLMAgent, communément appelé "Agent", utilise des grands modèles de langage (LLM) comme moteur principal pour comprendre le langage naturel, raisonner, planifier, générer des réponses et décider de manière dynamique de la marche à suivre ou des outils à utiliser. Il est donc idéal pour les tâches flexibles axées sur le langage. Pour en savoir plus sur les agents LLM, cliquez ici.

Notre échafaudage pour générer un agent de base à l'aide du kit de développement d'agents (ADK) est maintenant terminé. Nous allons maintenant connecter notre agent à la boîte à outils MCP afin qu'il puisse utiliser cet outil pour répondre aux requêtes de l'utilisateur (dans ce cas, il s'agira des notes de version de Google Cloud).

10. Connecter notre agent à des outils

Nous allons maintenant associer cet agent à "Outils". Dans le contexte d'ADK, un outil représente une capacité spécifique fournie à un agent d'IA, ce qui lui permet d'effectuer des actions et d'interagir avec le monde au-delà de ses capacités de génération de texte et de raisonnement de base.

Dans notre cas, nous allons équiper notre agent des outils que nous avons configurés dans MCP Toolbox for Databases.

Modifiez le fichier agent.py avec le code suivant. Notez que nous utilisons le port par défaut 5000 dans le code. Toutefois, si vous utilisez un autre numéro de port, veuillez l'utiliser.

from google.adk.agents import Agent
from toolbox_core import ToolboxSyncClient

toolbox = ToolboxSyncClient("http://127.0.0.1:5000")

# Load all the tools
tools = toolbox.load_toolset('my_bq_toolset')

root_agent = Agent(
   
name="gcp_releasenotes_agent",
   
model="gemini-2.0-flash",
   
description=(
       
"Agent to answer questions about Google Cloud Release notes."
   
),
   
instruction=(
       
"You are a helpful agent who can answer user questions about the Google Cloud Release notes. Use the tools to answer the question"
   
),
   
tools=tools,
)

Nous pouvons maintenant tester l'agent qui extrait des données réelles de notre ensemble de données BigQuery configuré avec la boîte à outils MCP pour les bases de données.

Pour ce faire, procédez comme suit:

Dans un terminal de Cloud Shell, lancez la MCP Toolbox for Databases. Il est possible que vous l'exécutiez déjà localement sur le port 5000, comme nous l'avons testé précédemment. Si ce n'est pas le cas, exécutez la commande suivante (à partir du dossier mcp-toolbox) pour démarrer le serveur:

./toolbox --tools_file "tools.yaml"

Idéalement, vous devriez voir un résultat indiquant que le serveur a pu se connecter à nos sources de données et a chargé l'ensemble d'outils. Voici un exemple de sortie:

./toolbox --tools-file "tools.yaml"
2025-06-17T07:48:52.989710733Z INFO "Initialized 1 sources."
2025-06-17T07:48:52.989805642Z INFO "Initialized 0 authServices."
2025-06-17T07:48:52.989847035Z INFO "Initialized 1 tools."
2025-06-17T07:48:52.989889742Z INFO "Initialized 2 toolsets."
2025-06-17T07:48:52.990357879Z INFO "Server ready to serve!"

Une fois le serveur MCP démarré, lancez l'Agent dans un autre terminal à l'aide de la commande adk run (à partir du dossier my-agents) indiquée ci-dessous. Vous pouvez également utiliser la commande adk web si vous le souhaitez.

$ adk run gcp-releasenotes-agent-app/

Log setup complete: /tmp/agents_log/agent.20250423_170001.log
To access latest log: tail -F /tmp/agents_log/agent.latest.log
Running agent gcp_releasenotes_agent, type exit to exit.

[user]: get me the google cloud release notes


[gcp_releasenotes_agent]: Here are the Google Cloud Release Notes.

Google SecOps SOAR: Release 6.3.49 is being rolled out to the first phase of regions. This release contains internal and customer bug fixes. Published: 2025-06-14

Compute Engine: Dynamic NICs let you add or remove network interfaces to or from an instance without having to restart or recreate the instance. You can also use Dynamic NICs when you need more network interfaces. The maximum number of vNICs for most machine types in Google Cloud is 10; however, you can configure up to 16 total interfaces by using Dynamic NICs. Published: 2025-06-13

Compute Engine: General purpose C4D machine types, powered by the fifth generation AMD EPYC processors (Turin) and Google Titanium, are generally available. Published: 2025-06-13

Google Agentspace: Google Agentspace Enterprise: App-level feature management. As an Agentspace administrator, you can choose to turn the following features on or off for your end users in the web app: Agents gallery, Prompt gallery, No-code agent, NotebookLM Enterprise. Published: 2025-06-13

Cloud Load Balancing: Cloud Load Balancing supports load balancing to multi-NIC instances that use Dynamic NICs. This capability is in Preview. Published: 2025-06-13

Virtual Private Cloud: Dynamic Network Interfaces (NICs) are available in Preview. Dynamic NICs let you update an instance to add or remove network interfaces without having to restart or recreate the instance. Published: 2025-06-13

Security Command Center: The following Event Threat Detection detectors for Vertex AI have been released to Preview:
- `Persistence: New Geography for AI Service`
- `Privilege Escalation: Anomalous Multistep Service Account Delegation for AI Admin Activity`
- `Privilege Escalation: Anomalous Multistep Service Account Delegation for AI Data Access`
- `Privilege Escalation: Anomalous Service Account Impersonator for AI Admin Activity`
- `Privilege Escalation: Anomalous Service Account Impersonator for AI Data Access`
- `Privilege Escalation: Anomalous Impersonation of Service Account for AI Admin Activity`
- `Persistence: New AI API Method`
......
......

Notez que l'agent utilise l'outil que nous avons configuré dans la boîte à outils MCP pour les bases de données (search_release_notes_bq), récupère les données de l'ensemble de données BigQuery et met en forme la réponse en conséquence.

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