Caja de herramientas de MCP para bases de datos: Cómo poner los conjuntos de datos de BigQuery a disposición de los clientes MCP

MCP Toolbox for Databases:
Cómo poner conjuntos de datos de BigQuery a disposición de los clientes de MCP

Acerca de este codelab

subjectÚltima actualización: jun 20, 2025
account_circleEscrito por Romin Irani

1. Introducción

En este codelab, usarás MCP Toolbox for Databases para poner a disposición tus conjuntos de datos de BigQuery.

En el codelab, seguirás un enfoque paso a paso de la siguiente manera:

  1. Identifica un conjunto de datos de BigQuery específico ("Notas de lanzamiento de Google Cloud") del programa de conjuntos de datos públicos de BigQuery.
  2. Configura MCP Toolbox for Databases, que se conecta al conjunto de datos de BigQuery.
  3. Desarrolla un agente con el Kit de desarrollo de agentes (ADK) que usará el kit de herramientas de MCP para responder las consultas del usuario sobre las notas de lanzamiento de Google Cloud

Actividades

  • Configura MCP Toolbox para bases de datos para exponer las notas de lanzamiento de Google Cloud, un conjunto de datos públicos de BigQuery, como una interfaz de MCP a otros clientes de MCP (IDE, herramientas, etcétera).

Qué aprenderás

  • Explora los conjuntos de datos públicos de BigQuery y elige uno específico.
  • Configura MCP Toolbox for Databases para el conjunto de datos públicos de BigQuery que queremos poner a disposición de los clientes de MCP.
  • Diseña y desarrolla un agente con el Kit de desarrollo de agentes (ADK) para responder las consultas de los usuarios.
  • Prueba el agente y MCP Toolbox para bases de datos en el entorno local.

Requisitos

  • Navegador web Chrome
  • Un entorno de desarrollo de Python local

2. Antes de comenzar

Crea un proyecto

  1. En la página del selector de proyectos de la consola de Google Cloud, selecciona o crea un proyecto de Google Cloud.
  2. Asegúrate de que la facturación esté habilitada para tu proyecto de Cloud. Obtén información para verificar si la facturación está habilitada en un proyecto .
  3. Usarás Cloud Shell, un entorno de línea de comandos que se ejecuta en Google Cloud y que viene precargado con bq. Haz clic en Activar Cloud Shell en la parte superior de la consola de Google Cloud.

Imagen del botón Activar Cloud Shell

  1. Una vez que te conectes a Cloud Shell, verifica que ya te hayas autenticado y que el proyecto esté configurado con tu ID con el siguiente comando:
gcloud auth list
  1. En Cloud Shell, ejecuta el siguiente comando para confirmar que el comando gcloud conoce tu proyecto.
gcloud config list project
  1. Si tu proyecto no está configurado, usa el siguiente comando para hacerlo:
gcloud config set project <YOUR_PROJECT_ID>

Consulta la documentación para ver los comandos y el uso de gcloud.

3. Conjunto de datos de notas de la versión de Google y clientes de MCP

En primer lugar, analicemos las notas de la versión de Google Cloud que se actualizan periódicamente en la página web oficial de las notas de la versión de Google Cloud. A continuación, se muestra una captura de pantalla:

37a7d9e124296c55.png

Puedes suscribirte a la URL del feed, pero ¿qué tal si simplemente preguntamos en nuestro chat de agentes sobre estas notas de la versión? Tal vez una consulta simple como "Actualízame sobre las notas de lanzamiento de Google Cloud".

4. MCP Toolbox para bases de datos

MCP Toolbox for Databases es un servidor de MCP de código abierto para bases de datos. Se diseñó teniendo en cuenta el nivel empresarial y la calidad de producción. Te permite desarrollar herramientas de forma más fácil, rápida y segura, ya que controla las complejidades, como el grupo de conexiones, la autenticación y mucho más.

Toolbox te ayuda a crear herramientas de IA generativa que permitan a tus agentes acceder a los datos de tu base de datos. Toolbox proporciona lo siguiente:

  • Desarrollo simplificado: Integra herramientas a tu agente en menos de 10 líneas de código, reutiliza herramientas entre varios agentes o frameworks, y, además, implementa nuevas versiones de herramientas con mayor facilidad.
  • Mejor rendimiento: prácticas recomendadas, como la agrupación de conexiones, la autenticación y mucho más
  • Seguridad mejorada: Autenticación integrada para un acceso más seguro a tus datos
  • Observabilidad de extremo a extremo: Métricas y seguimientos listos para usar con compatibilidad integrada para OpenTelemetry.
  • Toolbox facilita la conexión de bases de datos a cualquier asistente de IA compatible con MCP, incluso los que se encuentran en tu IDE.

Toolbox se encuentra entre el framework de orquestación de tu aplicación y tu base de datos, y proporciona un plano de control que se usa para modificar, distribuir o invocar herramientas. Simplifica la administración de tus herramientas, ya que te proporciona una ubicación centralizada para almacenarlas y actualizarlas, lo que te permite compartirlas entre agentes y aplicaciones, y actualizarlas sin tener que volver a implementar la aplicación.

e316aed02b9861a6.png

En resumen, en palabras simples:

  1. MCP Toolbox está disponible como imagen de contenedor binaria o puedes compilarla desde la fuente.
  2. Expone un conjunto de herramientas que configuras a través de un archivo tools.yaml. Se puede pensar que las herramientas se conectan a tus fuentes de datos. Puedes ver las diversas fuentes de datos que admite : AlloyDB, BigQuery, etcétera.
  3. Dado que esta caja de herramientas ahora admite MCP, tienes automáticamente un extremo de servidor de MCP que los agentes (IDEs) pueden consumir o puedes usarlos mientras desarrollas tus aplicaciones de agentes con varios frameworks, como el kit de desarrollo de agentes (ADK).

En esta entrada de blog, nos enfocaremos en las áreas que se destacan a continuación:

882edaaddf940080.png

En resumen, crearemos una configuración en MCP Toolbox for Databases que sepa cómo conectarse a nuestro conjunto de datos de BigQuery. Luego, desarrollaremos un agente con el kit de desarrollo de agentes (ADK) que se integrará con el extremo de MCP Toolbox y nos permitirá enviar consultas naturales para preguntar sobre nuestro conjunto de datos. Piensa en ella como una aplicación de agente que estás desarrollando y que sabe cómo comunicarse con tu conjunto de datos de BigQuery y ejecuta algunas consultas.

5. Notas de la versión del conjunto de datos de BigQuery para Google Cloud

El Programa de conjuntos de datos públicos de Google Cloud es un programa que pone a disposición una variedad de conjuntos de datos para tus aplicaciones. Un ejemplo de este tipo de conjunto de datos es la base de datos de las notas de lanzamiento de Google Cloud. Este conjunto de datos te proporciona la misma información que la página web oficial de notas de la versión de Google Cloud y está disponible como un conjunto de datos consultable de forma pública.

2104010c05c87d0d.png

Como prueba, simplemente valido el conjunto de datos ejecutando una consulta simple que se muestra a continuación:

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

De esta manera, obtengo una lista de registros del conjunto de datos de las notas de la versión que se publicaron en los últimos 7 días.

Reemplaza esto por cualquier otro conjunto de datos que elijas y tus respectivas consultas y parámetros que desees. Ahora solo debemos configurarlo como fuente de datos y herramienta en MCP Toolbox para bases de datos. Veamos cómo hacerlo.

6. Cómo instalar MCP Toolbox para bases de datos

Abre una terminal en tu máquina local y crea una carpeta llamada mcp-toolbox.

mkdir mcp-toolbox

Ve a la carpeta mcp-toolbox con el siguiente comando:

cd mcp-toolbox

Instala la versión binaria de MCP Toolbox para bases de datos con la siguiente secuencia de comandos. El siguiente comando es para Linux, pero si usas Mac o Windows, asegúrate de descargar el objeto binario correcto. Consulta la página de lanzamientos de tu sistema operativo y arquitectura y descarga el objeto binario correcto.

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

Ahora tenemos la versión binaria de la caja de herramientas lista para usar. El siguiente paso es configurar la caja de herramientas con nuestras fuentes de datos y otros parámetros de configuración.

7. Configura MCP Toolbox para bases de datos

Ahora, debemos definir nuestro conjunto de datos y herramientas de BigQuery en el archivo tools.yaml que necesita MCP Toolbox for Database. El archivo tools.yaml es la forma principal de configurar Toolbox.

Crea un archivo llamado tools.yaml en la misma carpeta, es decir, mcp-toolbox, cuyo contenido se muestra a continuación.

Puedes usar el editor nano que está disponible en Cloud Shell. El comando nano es el siguiente: "nano tools.yaml".

Recuerda reemplazar el valor YOUR_PROJECT_ID por el ID de tu proyecto de 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

Veamos el archivo en breve:

  1. Las fuentes representan las diferentes fuentes de datos con las que puede interactuar una herramienta. Una fuente representa una fuente de datos con la que puede interactuar una herramienta. Puedes definir Sources como un mapa en la sección sources de tu archivo tools.yaml. Por lo general, una configuración de fuente contiene toda la información necesaria para conectarse a la base de datos y, luego, interactuar con ella. En nuestro caso, definimos una fuente de BigQuery my-bq-source y debes proporcionar el ID de tu proyecto de Google Cloud. Para obtener más información, consulta la referencia Fuentes.
  2. Las herramientas definen las acciones que puede realizar un agente, como leer y escribir en una fuente. Una herramienta representa una acción que puede realizar tu agente, como ejecutar una sentencia SQL. Puedes definir Herramientas como un mapa en la sección tools de tu archivo tools.yaml. Por lo general, una herramienta requiere una fuente para actuar. En nuestro caso, definimos una sola herramienta search_release_notes_bq. Esto hace referencia a la fuente de BigQuery my-bq-source que definimos en el primer paso. También tiene la sentencia y la instrucción que usarán los clientes del agente de IA. Para obtener más información, consulta la referencia de Herramientas.
  3. Por último, tenemos el conjunto de herramientas, que te permite definir grupos de herramientas que deseas poder cargar juntos. Esto puede ser útil para definir diferentes grupos en función del agente o la aplicación. En nuestro caso, tenemos una definición del conjunto de herramientas en la que, actualmente, solo definimos una herramienta existente search_release_notes_bq. Puedes tener más de un conjunto de herramientas, que tenga una combinación de diferentes herramientas.

Por lo tanto, actualmente, solo definimos una herramienta que obtiene las notas de la versión de los últimos 7 días según la consulta. Sin embargo, también puedes tener varias combinaciones con parámetros.

Consulta más detalles de configuración ( Fuente, Herramientas) en la configuración de la fuente de datos de BigQuery en MCP Toolbox para bases de datos.

8. Prueba de MCP Toolbox para bases de datos

Descargamos y configuramos Toolbox con el archivo tools.yaml en la carpeta mcp-toolbox. Primero, ejecutémosla de forma local.

Ejecuta el siguiente comando:

./toolbox --tools-file="tools.yaml"

Si la ejecución se realiza correctamente, deberías ver el inicio de un servidor con un resultado de muestra similar al siguiente:

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!"

El servidor de MCP Toolbox se ejecuta de forma predeterminada en el puerto 5000. Si descubres que el puerto 5000 ya está en uso, no dudes en usar otro puerto (por ejemplo, 7000) según el comando que se muestra a continuación. Luego, usa 7000 en lugar del puerto 5000 en los comandos posteriores.

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

Usemos Cloud Shell para probar esto.

Haz clic en Vista previa web en Cloud Shell, como se muestra a continuación:

f990712162e8e924.png

Haz clic en Cambiar puerto y establece el puerto en 5000, como se muestra a continuación, y haz clic en Cambiar y obtener vista previa.

d1b9de0c46ecef8a.png

Esto debería mostrar el siguiente resultado:

2fdcdac326034d41.png

En la URL del navegador, agrega lo siguiente al final de la URL:

/api/toolset

Se deberían mostrar las herramientas que están configuradas actualmente. A continuación, se muestra un resultado de muestra:

{
  "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": []
    }
  }
}

En el kit de herramientas de MCP para bases de datos, se describe una forma de Python para validar y probar las herramientas, que se documenta aquí. Omitiremos eso y pasaremos directamente al kit de desarrollo de agentes (ADK) en la siguiente sección, que usará estas herramientas.

9. Escribimos nuestro agente con el kit de desarrollo de agentes (ADK)

Instala el kit de desarrollo de agentes (ADK)

Abre una nueva pestaña de la terminal en Cloud Shell y crea una carpeta llamada my-agents de la siguiente manera. Navega también a la carpeta my-agents.

mkdir my-agents
cd
my-agents

Ahora, crearemos un entorno virtual de Python con venv de la siguiente manera:

python -m venv .venv

Activa el entorno virtual de la siguiente manera:

source .venv/bin/activate

Instala el ADK y los paquetes de MCP Toolbox para bases de datos junto con la dependencia de langchain de la siguiente manera:

pip install google-adk toolbox-core

Ahora podrás invocar la utilidad adk de la siguiente manera.

adk

Se mostrará una lista de comandos.

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

Creamos nuestra primera aplicación de agente

Ahora, usaremos adk para crear un andamiaje para la aplicación del agente de notas de lanzamiento de Google Cloud a través del comando create de adk con un nombre de app **(gcp-releasenotes-agent-app)**, como se indica a continuación.

adk create gcp-releasenotes-agent-app

Sigue los pasos y selecciona lo siguiente:

  • Modelo de Gemini para elegir un modelo para el agente raíz.
  • Elige Vertex AI para el backend.
  • Se mostrarán el ID y la región predeterminados del proyecto de Google. Selecciona la opción predeterminada.
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

Observa la carpeta en la que se crearon una plantilla predeterminada y los archivos necesarios para el agente.

Primero, el archivo .env. cuyo contenido se muestra a continuación:

GOOGLE_GENAI_USE_VERTEXAI=1
GOOGLE_CLOUD_PROJECT
=YOUR_GOOGLE_PROJECT_ID
GOOGLE_CLOUD_LOCATION
=YOUR_GOOGLE_PROJECT_REGION

Los valores indican que usaremos Gemini a través de Vertex AI junto con los valores correspondientes para el ID y la ubicación del proyecto de Google Cloud.

Luego, tenemos el archivo __init__.py que marca la carpeta como un módulo y tiene una sola sentencia que importa el agente desde el archivo agent.py.

from . import agent

Por último, veamos el archivo agent.py. El contenido se muestra a continuación:

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',
)

Este es el agente más simple que puedes escribir con el ADK. Según la página de documentación del ADK, un agente es una unidad de ejecución independiente diseñada para actuar de forma autónoma y alcanzar objetivos específicos. Los agentes pueden realizar tareas, interactuar con los usuarios, usar herramientas externas y coordinarse con otros agentes.

Específicamente, un LLMAgent, que suele tener el alias de agente, utiliza modelos de lenguaje grandes (LLM) como su motor principal para comprender el lenguaje natural, razonar, planificar, generar respuestas y decidir de forma dinámica cómo proceder o qué herramientas usar, lo que lo hace ideal para tareas flexibles y centradas en el lenguaje. Obtén más información sobre los agentes de LLM aquí.

De esta manera, se completa nuestro andamiaje para generar un agente básico con el kit de desarrollo de agentes (ADK). Ahora, conectaremos nuestro agente a MCP Toolbox para que pueda usar esa herramienta y responder las consultas del usuario (en este caso, serán las notas de la versión de Google Cloud).

10. Cómo conectar nuestro agente a las herramientas

Ahora conectaremos este agente a Herramientas. En el contexto de ADK, una herramienta representa una capacidad específica que se proporciona a un agente de IA, lo que le permite realizar acciones y también interactuar con el mundo más allá de sus capacidades principales de razonamiento y generación de texto.

En nuestro caso, ahora equiparemos a nuestro agente con las herramientas que configuramos en MCP Toolbox para bases de datos.

Modifica el archivo agent.py con el siguiente código. Ten en cuenta que usamos el puerto predeterminado 5000 en el código, pero si usas un número de puerto alternativo, utilízalo.

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,
)

Ahora podemos probar el agente que recuperará datos reales de nuestro conjunto de datos de BigQuery que se configuró con MCP Toolbox for Databases.

Para ello, sigue esta secuencia:

En una terminal de Cloud Shell, inicia MCP Toolbox para bases de datos. Es posible que ya lo tengas en ejecución de forma local en el puerto 5000, como lo probamos antes. De lo contrario, ejecuta el siguiente comando (desde la carpeta mcp-toolbox) para iniciar el servidor:

./toolbox --tools_file "tools.yaml"

Idealmente, deberías ver un resultado que indique que el servidor pudo conectarse a nuestras fuentes de datos y que cargó el conjunto de herramientas. A continuación, se muestra un resultado de muestra:

./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!"

Una vez que el servidor de MCP se haya iniciado correctamente, en otra terminal, inicia el agente con el comando adk run (de la carpeta my-agents) que se muestra a continuación. También puedes usar el comando adk web si lo deseas.

$ 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`
......
......

Ten en cuenta que el agente usa la herramienta que configuramos en el kit de herramientas de MCP para bases de datos (search_release_notes_bq), recupera los datos del conjunto de datos de BigQuery y da formato a la respuesta según corresponda.

11. Felicitaciones

¡Felicitaciones! Configuraste correctamente MCP Toolbox para bases de datos y configuraste un conjunto de datos de BigQuery para acceder a él desde los clientes de MCP.

Documentos de referencia