1. Введение
В этом практическом занятии вы будете использовать MCP Toolbox for Databases для предоставления доступа к вашим наборам данных BigQuery.
В ходе выполнения практического задания вы будете использовать следующий пошаговый подход:
- Найдите конкретный набор данных BigQuery («Примечания к выпуску Google Cloud») в общедоступной программе наборов данных BigQuery.
- Настройте MCP Toolbox для баз данных, который подключается к набору данных BigQuery.
- Разработайте агента с использованием Agent Development Kit (ADK), который будет использовать MCP Toolbox для ответа на запросы пользователей о примечаниях к выпуску Google Cloud.
Что вы будете делать
- Настройте MCP Toolbox for Databases, чтобы предоставить доступ к примечаниям к выпуску Google Cloud и общедоступному набору данных BigQuery в качестве интерфейса MCP для других клиентов MCP (IDE, инструментов и т. д.).
Что вы узнаете
- Изучите общедоступные наборы данных BigQuery и выберите конкретный набор данных.
- Настройте MCP Toolbox для баз данных для общедоступного набора данных BigQuery, который мы хотим сделать доступным для клиентов MCP.
- Разработайте и создайте агента с использованием комплекта разработки агентов (ADK) для ответа на запросы пользователей.
- Протестируйте агент и MCP Toolbox для баз данных в локальной среде.
Что вам понадобится
- Веб-браузер Chrome.
- Локальная среда разработки Python.
2. Прежде чем начать
Создать проект
- В консоли Google Cloud на странице выбора проекта выберите или создайте проект Google Cloud.
- Убедитесь, что для вашего облачного проекта включена функция выставления счетов. Узнайте, как проверить, включена ли функция выставления счетов для проекта .
- Вы будете использовать Cloud Shell — среду командной строки, работающую в Google Cloud и поставляемую с предустановленным bq. Нажмите «Активировать Cloud Shell» в верхней части консоли Google Cloud.

- После подключения к Cloud Shell необходимо проверить, прошли ли вы аутентификацию и установлен ли идентификатор вашего проекта, используя следующую команду:
gcloud auth list
- Выполните следующую команду в Cloud Shell, чтобы убедиться, что команда gcloud знает о вашем проекте.
gcloud config list project
- Если ваш проект не задан, используйте следующую команду для его установки:
gcloud config set project <YOUR_PROJECT_ID>
Для получения информации о командах gcloud и их использовании обратитесь к документации .
3. Примечания к выпуску Google: набор данных и клиенты MCP
Для начала давайте взглянем на регулярно обновляемые примечания к выпускам Google Cloud на официальной веб-странице Google Cloud Release Notes , скриншот которой представлен ниже:

Вы можете подписаться на URL-адрес ленты, но что, если бы мы могли просто спросить в чате с агентом об этих примечаниях к выпуску? Например, простой запрос типа "Обновите мне информацию о примечаниях к выпуску Google Cloud".
4. Инструментарий MCP для баз данных
MCP Toolbox for Databases — это MCP-сервер с открытым исходным кодом для работы с базами данных. Он разработан с учетом требований корпоративного и производственного уровня. Он позволяет разрабатывать инструменты проще, быстрее и безопаснее, обрабатывая такие сложные процессы, как пулы соединений, аутентификация и многое другое.
Toolbox помогает создавать инструменты Gen AI, позволяющие вашим агентам получать доступ к данным в вашей базе данных. Toolbox предоставляет:
- Упрощенная разработка: интегрируйте инструменты в свой агент менее чем за 10 строк кода, используйте инструменты повторно в нескольких агентах или фреймворках и упростите развертывание новых версий инструментов.
- Повышение производительности: лучшие практики, такие как объединение соединений, аутентификация и многое другое.
- Повышенная безопасность: интегрированная аутентификация для более безопасного доступа к вашим данным.
- Сквозная мониторинговая возможность: готовые метрики и трассировка со встроенной поддержкой OpenTelemetry.
- Toolbox упрощает подключение баз данных к любым ИИ-помощникам, поддерживающим MCP, даже к тем, которые уже встроены в вашу IDE.
Toolbox выступает посредником между системой оркестрации вашего приложения и базой данных, предоставляя плоскость управления, используемую для изменения, распространения или вызова инструментов. Он упрощает управление инструментами, предоставляя централизованное место для хранения и обновления инструментов, позволяя обмениваться инструментами между агентами и приложениями и обновлять эти инструменты без необходимости повторного развертывания приложения.

Если подытожить простыми словами:
- MCP Toolbox доступен в виде бинарного файла, образа контейнера или может быть собран из исходного кода.
- Он предоставляет набор инструментов, которые вы настраиваете с помощью файла tools.yaml. Инструменты можно рассматривать как средства подключения к вашим источникам данных. Вы можете увидеть различные источники данных, которые он поддерживает: AlloyDB, BigQuery и т. д.
- Поскольку этот набор инструментов теперь поддерживает MCP, у вас автоматически появляется конечная точка сервера MCP, которую затем могут использовать агенты (IDE) или вы можете использовать ее при разработке приложений для агентов с помощью различных фреймворков, таких как Agent Development Kit (ADK).
В этой статье мы сосредоточимся на областях, выделенных ниже:

Вкратце, мы собираемся создать конфигурацию в MCP Toolbox для баз данных, которая будет знать, как подключаться к нашему набору данных BigQuery. Затем мы разработаем агента с помощью Agent Development Kit (ADK), который будет интегрироваться с конечной точкой MCP Toolbox и позволит нам отправлять естественные запросы к нашему набору данных. Представьте это как разрабатываемое вами агентное приложение, которое знает, как взаимодействовать с вашим набором данных BigQuery и выполнять некоторые запросы.
5. Примечания к выпуску набора данных BigQuery для Google Cloud
Программа Google Cloud Public Dataset Program предоставляет доступ к различным наборам данных для ваших приложений. Одним из таких наборов данных является база данных Google Cloud Release Notes. Этот набор данных предоставляет ту же информацию, что и официальная веб-страница Google Cloud Release Notes, и доступен в виде общедоступного набора данных, к которому можно обращаться с запросами.

В качестве теста я просто проверяю достоверность набора данных, выполнив простой запрос, показанный ниже:
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
Это позволяет получить список записей из набора данных «Примечания к выпуску», опубликованных за последние 7 дней.
Замените это любым другим набором данных по вашему выбору, а также соответствующими запросами и параметрами, которые вам нужны. Теперь нам осталось только настроить это как источник данных и инструмент в MCP Toolbox for Databases. Давайте посмотрим, как это сделать.
6. Установка MCP Toolbox для баз данных
Откройте терминал на своем локальном компьютере и создайте папку с именем mcp-toolbox .
mkdir mcp-toolbox
Перейдите в папку mcp-toolbox с помощью команды, показанной ниже:
cd mcp-toolbox
Установите бинарную версию MCP Toolbox for Databases с помощью приведенного ниже скрипта. Приведенная ниже команда предназначена для Linux, но если вы используете Mac или Windows, убедитесь, что загружаете правильный бинарный файл. Проверьте страницу релизов для вашей операционной системы и архитектуры и загрузите правильный бинарный файл.
export VERSION=0.22.0
curl -O https://storage.googleapis.com/genai-toolbox/v$VERSION/linux/amd64/toolbox
chmod +x toolbox
Теперь у нас есть готовая к использованию бинарная версия инструментария. Следующий шаг — настройка инструментария с указанием источников данных и других параметров.
7. Настройка MCP Toolbox для баз данных
Теперь нам нужно определить наш набор данных BigQuery и инструменты в файле tools.yaml , который необходим для MCP Toolbox for Database. Файл tools.yaml — это основной способ настройки Toolbox.
Создайте в той же папке, то есть mcp-toolbox , файл с именем tools.yaml , содержимое которого показано ниже.
Вы можете использовать редактор nano, доступный в Cloud Shell. Команда nano выглядит следующим образом: " nano tools.yaml ".
Не забудьте заменить значение YOUR_PROJECT_ID на идентификатор вашего проекта в 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
Давайте кратко разберем содержимое файла:
- Источники представляют собой различные источники данных, с которыми может взаимодействовать инструмент. Источник — это источник данных, с которым может взаимодействовать инструмент. Вы можете определить источники в виде карты в разделе sources файла tools.yaml. Как правило, конфигурация источника содержит всю необходимую информацию для подключения к базе данных и взаимодействия с ней. В нашем случае мы определили источник BigQuery
my-bq-source, а вам необходимо указать идентификатор вашего проекта Google Cloud. Для получения дополнительной информации обратитесь к справочнику по источникам . - Инструменты определяют действия, которые может выполнять агент, например, чтение и запись в источник. Инструмент представляет собой действие, которое может выполнить ваш агент, например, выполнение SQL-запроса. Вы можете определить инструменты в виде карты в разделе tools вашего файла tools.yaml. Как правило, инструменту требуется источник, с которым он будет взаимодействовать. В нашем случае мы определяем один инструмент
search_release_notes_bq. Он ссылается на источник BigQuerymy-bq-source, который мы определили на первом шаге. Он также содержит запрос и инструкцию, которые будут использоваться клиентами ИИ-агента. Для получения дополнительной информации обратитесь к справочнику по инструментам . - Наконец, у нас есть набор инструментов (Toolset), который позволяет определять группы инструментов, которые вы хотите загружать вместе. Это может быть полезно для определения различных групп на основе агента или приложения. В нашем случае у нас есть определение набора инструментов, в котором в настоящее время определен только один существующий инструмент
search_release_notes_bq. Вы можете иметь более одного набора инструментов, который содержит комбинацию различных инструментов.
В настоящее время у нас настроен только один инструмент, который получает примечания к выпуску за последние 7 дней в соответствии с запросом. Но вы можете использовать различные комбинации параметров.
Дополнительные сведения о конфигурации ( Источник , Инструменты ) можно найти в настройках источника данных BigQuery в MCP Toolbox for Databases.
8. Тестирование инструментария MCP для работы с базами данных.
Мы скачали и настроили Toolbox с помощью файла tools.yaml , расположенного в папке mcp-toolbox . Давайте сначала запустим его локально.
Выполните следующую команду:
./toolbox --tools-file="tools.yaml"
После успешного выполнения вы должны увидеть запуск сервера с примерно таким же выводом, как показано ниже:
2025-12-09T08:27:02.777619+05:30 INFO "Initialized 1 sources: my-bq-source"
2025-12-09T08:27:02.777695+05:30 INFO "Initialized 0 authServices: "
2025-12-09T08:27:02.777707+05:30 INFO "Initialized 1 tools: search_release_notes_bq"
2025-12-09T08:27:02.777716+05:30 INFO "Initialized 2 toolsets: my_bq_toolset, default"
2025-12-09T08:27:02.777719+05:30 INFO "Initialized 0 prompts: "
2025-12-09T08:27:02.777723+05:30 INFO "Initialized 1 promptsets: default"
2025-12-09T08:27:02.77773+05:30 WARN "wildcard (`*`) allows all origin to access the resource and is not secure. Use it with cautious for public, non-sensitive data, or during local development. Recommended to use `--allowed-origins` flag to prevent DNS rebinding attacks"
2025-12-09T08:27:02.777839+05:30 INFO "Server ready to serve!"
Сервер MCP Toolbox по умолчанию работает на порту 5000 Если вы обнаружите, что порт 5000 уже занят, вы можете использовать другой порт (например, 7000 ), как показано в команде ниже. В этом случае используйте 7000 вместо порта 5000 в последующих командах.
./toolbox --tools-file "tools.yaml" --port 7000
Давайте воспользуемся Cloud Shell для проверки этого.
В Cloud Shell нажмите на кнопку «Предварительный просмотр веб-страницы», как показано ниже:

Нажмите «Изменить порт» и установите порт на 5000, как показано ниже, затем нажмите «Изменить и просмотреть».

В результате должно получиться следующее:

В конец URL-адреса в браузере добавьте следующее:
/api/toolset
Это должно отобразить инструменты, которые в данный момент настроены. Пример вывода показан ниже:
{
"serverVersion": "0.22.0+binary.linux.amd64.1a6dfe8d37d0f42fb3fd3f75c50988534dbc1b85",
"tools": {
"search_release_notes_bq": {
"description": "Use this tool to get information on Google Cloud Release Notes.\n",
"parameters": [],
"authRequired": []
}
}
}
Протестируйте инструменты через MCP Toolbox для пользовательского интерфейса баз данных.
Панель инструментов предоставляет визуальный интерфейс ( пользовательский интерфейс панели инструментов ) для непосредственного взаимодействия с инструментами путем изменения параметров, управления заголовками и выполнения вызовов — все это в рамках простого веб-интерфейса.
Если вы хотите это проверить, вы можете запустить предыдущую команду, которую мы использовали для запуска сервера Toolbox, с опцией --ui .
Для этого завершите работу предыдущего запущенного экземпляра MCP Toolbox for Databases Server и выполните следующую команду:
./toolbox --tools-file "tools.yaml" --ui
В идеале вы должны увидеть сообщение о том, что сервер смог подключиться к нашим источникам данных и загрузил набор инструментов и сами инструменты. Пример сообщения приведен ниже, и вы заметите, что в нем указано, что пользовательский интерфейс панели инструментов запущен и работает.
2025-12-09T08:28:07.479989+05:30 INFO "Initialized 1 sources: my-bq-source"
2025-12-09T08:28:07.480065+05:30 INFO "Initialized 0 authServices: "
2025-12-09T08:28:07.480079+05:30 INFO "Initialized 1 tools: search_release_notes_bq"
2025-12-09T08:28:07.480087+05:30 INFO "Initialized 2 toolsets: my_bq_toolset, default"
2025-12-09T08:28:07.48009+05:30 INFO "Initialized 0 prompts: "
2025-12-09T08:28:07.480094+05:30 INFO "Initialized 1 promptsets: default"
2025-12-09T08:28:07.4801+05:30 WARN "wildcard (`*`) allows all origin to access the resource and is not secure. Use it with cautious for public, non-sensitive data, or during local development. Recommended to use `--allowed-origins` flag to prevent DNS rebinding attacks"
2025-12-09T08:28:07.480214+05:30 INFO "Server ready to serve!"
2025-12-09T08:28:07.480218+05:30 INFO "Toolbox UI is up and running at: http://127.0.0.1:5000/ui"
Щёлкните по URL-адресу пользовательского интерфейса и убедитесь, что в конце URL-адреса присутствует /ui . Это отобразит пользовательский интерфейс, как показано ниже:

Чтобы просмотреть настроенные инструменты, нажмите на опцию «Инструменты» слева. В нашем случае должен быть только один инструмент, а именно search_release_notes_bq , как показано ниже:

Просто нажмите на инструмент ( search_release_notes_bq ), и откроется страница для тестирования инструмента. Поскольку никаких параметров указывать не нужно, вы можете просто нажать на кнопку «Запустить инструмент» , чтобы увидеть результат. Пример запуска показан ниже:

В MCP Toolkit for Databases также описан способ проверки и тестирования инструментов с использованием Python, который описан здесь . Мы пропустим этот раздел и сразу перейдем к Agent Development Kit (ADK) в следующем разделе, где будут использоваться эти инструменты.
9. Разработка нашего агента с использованием комплекта разработки агентов (ADK)
Установите комплект разработки агентов (ADK).
Откройте новую вкладку терминала в Cloud Shell и создайте папку с именем my-agents следующим образом. Перейдите также в папку my-agents .
mkdir my-agents
cd my-agents
Теперь давайте создадим виртуальное окружение Python с помощью venv следующим образом:
python -m venv .venv
Активируйте виртуальную среду следующим образом:
source .venv/bin/activate
Установите пакеты ADK и MCP Toolbox for Databases, а также зависимость langchain следующим образом:
pip install google-adk toolbox-core
Теперь вы сможете запустить утилиту adk следующим образом.
adk
Это покажет вам список команд.
$ 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.
Создание нашего первого приложения для агентов.
Теперь мы воспользуемся adk для создания шаблона для приложения Google Cloud Release Notes Agent Application с помощью команды adk create , указав имя приложения ** (gcp-releasenotes-agent-app) **, как показано ниже.
adk create gcp-releasenotes-agent-app
Выполните указанные шаги и выберите следующее:
- Модель Gemini для выбора модели для корневого агента.
- Выберите Vertex AI для бэкэнда.
- Отобразится ваш идентификатор проекта Google по умолчанию и регион. Выберите сам регион по умолчанию.
Choose a model for the root agent:
1. gemini-2.5-flash
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
Обратите внимание на папку, в которой были созданы шаблон по умолчанию и необходимые файлы для агента.
Первым делом рассмотрим файл .env . Его содержимое показано ниже:
GOOGLE_GENAI_USE_VERTEXAI=1
GOOGLE_CLOUD_PROJECT=YOUR_GOOGLE_PROJECT_ID
GOOGLE_CLOUD_LOCATION=YOUR_GOOGLE_PROJECT_REGION
Указанные значения свидетельствуют о том, что мы будем использовать Gemini через Vertex AI, а также содержат соответствующие значения идентификатора проекта Google Cloud и местоположения.
Затем у нас есть файл __init__.py , который помечает папку как модуль и содержит единственное выражение, импортирующее агента из файла agent.py .
from . import agent
Наконец, давайте посмотрим на файл agent.py . Его содержимое показано ниже:
from google.adk.agents import Agent
root_agent = Agent(
model='gemini-2.5-flash',
name='root_agent',
description='A helpful assistant for user questions.',
instruction='Answer user questions to the best of your knowledge',
)
Это самый простой агент, который можно написать с помощью ADK. Согласно документации ADK, агент — это автономный исполнительный блок, предназначенный для автономной работы и достижения конкретных целей. Агенты могут выполнять задачи, взаимодействовать с пользователями, использовать внешние инструменты и координировать свои действия с другими агентами.
В частности, LLMAgent, обычно называемый просто Agent, использует большие языковые модели (LLM) в качестве основного механизма для понимания естественного языка, рассуждений, планирования, генерации ответов и динамического принятия решений о дальнейших действиях или используемых инструментах, что делает их идеальными для гибких, ориентированных на язык задач. Подробнее о LLM-агентах можно узнать здесь .
На этом завершается создание базовой модели агента с использованием комплекта разработки агентов (ADK). Теперь мы подключим нашего агента к MCP Toolbox, чтобы он мог использовать этот инструмент для ответа на запросы пользователя (в данном случае, это будут примечания к выпуску Google Cloud).
10. Подключение нашего агента к инструментам
Сейчас мы подключим этого агента к инструментам. В контексте ADK инструмент представляет собой определенную возможность, предоставляемую агенту ИИ, позволяющую ему выполнять действия и взаимодействовать с миром за пределами его основных способностей к генерации текста и рассуждениям.
В нашем случае мы собираемся оснастить нашего агента инструментами, которые мы настроили в панели инструментов MCP для баз данных.
Измените файл agent.py , добавив следующий код. Обратите внимание, что в коде используется порт по умолчанию 5000, но если вы используете другой номер порта, пожалуйста, используйте его.
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,
)
Теперь мы можем протестировать агента, который будет получать реальные данные из нашего набора данных BigQuery, настроенного с помощью MCP Toolbox for Databases.
Для этого выполните следующие действия:
В одном из терминалов Cloud Shell запустите MCP Toolbox for Databases. Возможно, он уже запущен локально на порту 5000, как мы тестировали ранее. Если нет, выполните следующую команду (из папки mcp-toolbox ), чтобы запустить сервер:
./toolbox --tools_file "tools.yaml"
В идеале вы должны увидеть сообщение о том, что сервер смог подключиться к нашим источникам данных и загрузил набор инструментов и сами инструменты.
После успешного запуска сервера MCP в другом терминале запустите агент с помощью команды adk run (из папки my-agents ), показанной ниже. При желании вы также можете использовать команду adk web .
$ 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`
......
......
Обратите внимание, что агент использует инструмент, который мы настроили в MCP Toolbox for Databases ( search_release_notes_bq ), и извлекает данные из набора данных BigQuery, форматируя ответ соответствующим образом.
11. Поздравляем!
Поздравляем, вы успешно настроили MCP Toolbox для баз данных и сконфигурировали набор данных BigQuery для доступа из клиентов MCP.