MCP Toolbox for Databases
MCP Toolbox for Databases — это open-source MCP-сервер для работы с базами данных, спроектированный для корпоративного использования. Он берёт на себя сложности управления подключениями, аутентификации и других рутинных задач, позволяя быстрее и безопаснее разрабатывать инструменты для агентов ИИ.
Важно: Проект находится на стадии бета-тестирования и до первого стабильного релиза (v1.0) возможны обратно несовместимые изменения.
Исходное название продукта — «Gen AI Toolbox for Databases»; он был переименован после добавления поддержки MCP.
Оглавление
Зачем нужен Toolbox?
Toolbox упрощает создание Gen AI-инструментов для доступа агентов к данным в вашей базе данных. Ключевые преимущества:
- Простота разработки — интегрируйте инструменты в агента менее чем за 10 строк кода, переиспользуйте их между разными агентами и фреймворками, легко развёртывайте новые версии.
- Производительность — реализованы best practices: пул соединений, аутентификация и т.д.
- Безопасность — встроенная аутентификация для защищённого доступа к данным.
- Наблюдаемость — метрики и трассировка «из коробки» с поддержкой OpenTelemetry.
Общая архитектура
Toolbox располагается между оркестратором вашего приложения и базой данных, предоставляя управляющую плоскость (control plane) для модификации, распространения и вызова инструментов. Это централизованное хранилище инструментов упрощает их обновление и переиспользование между агентами и приложениями без необходимости переразвёртывать приложение.
Быстрый старт
Установка сервера
Актуальную версию ищите на странице релизов.
Бинарный файл:
export VERSION=0.3.0
curl -O https://storage.googleapis.com/genai-toolbox/v$VERSION/linux/amd64/toolbox
chmod +x toolbox
Docker:
export VERSION=0.3.0
docker pull us-central1-docker.pkg.dev/database-toolbox/toolbox/toolbox:$VERSION
Сборка из исходников (требуется Go):
go install github.com/googleapis/genai-toolbox@v0.3.0
Запуск сервера
Создайте файл конфигурации tools.yaml (см. раздел Конфигурация) и запустите сервер:
./toolbox --tools_file "tools.yaml"
Полный список флагов — ./toolbox help. Остановка — Ctrl+C.
Больше примеров развёртывания — в How-to разделе документации.
Интеграция с приложением
После запуска сервера загрузите инструменты через один из SDK. Ниже примеры для разных фреймворков.
Core SDK:
pip install toolbox-core
from toolbox_core import ToolboxClient
client = ToolboxClient("http://127.0.0.1:5000")
tools = await client.load_toolset("toolset_name")
Документация Toolbox Core SDK
LangChain / LangGraph:
pip install toolbox-langchain
from toolbox_langchain import ToolboxClient
client = ToolboxClient("http://127.0.0.1:5000")
tools = client.load_toolset()
Документация Toolbox LangChain SDK
LlamaIndex:
pip install toolbox-llamaindex
from toolbox_llamaindex import ToolboxClient
client = ToolboxClient("http://127.0.0.1:5000")
tools = client.load_toolset()
Документация Toolbox Llamaindex SDK
Конфигурация
Основной способ настройки — YAML-файл tools.yaml. Можно указать его флагом --tools_file. Полную спецификацию ресурсов см. в документации.
Sources (источники данных)
Определяет, к каким базам данных будет подключаться Toolbox. Пример для PostgreSQL:
sources:
my-pg-source:
kind: postgres
host: 127.0.0.1
port: 5432
database: toolbox_db
user: toolbox_user
password: my-password
Подробнее о настройке источников
Tools (инструменты)
Определяют действия, которые может выполнять агент: тип инструмента, источник, параметры и SQL-запрос. Пример:
tools:
search-hotels-by-name:
kind: postgres-sql
source: my-pg-source
description: Search for hotels based on name.
parameters:
- name: name
type: string
description: The name of the hotel.
statement: SELECT * FROM hotels WHERE name ILIKE '%' || $1 || '%';
Подробнее о настройке инструментов
Toolsets (наборы инструментов)
Группируют инструменты для совместной загрузки. Удобно для разделения по агентам или приложениям.
toolsets:
my_first_toolset:
- my_first_tool
- my_second_tool
my_second_toolset:
- my_second_tool
- my_third_tool
Загрузка по имени:
all_tools = client.load_toolset() # все инструменты
my_second_toolset = client.load_toolset("my_second_toolset")
Versioning
Проект следует семантическому версионированию. Публичный API включает:
- CLI Toolbox
- Взаимодействие с официальными SDK
- Определения в файле
tools.yaml
Участие в разработке
Приветствуются любые вклады. Начните с ознакомления с CONTRIBUTING.
Проект использует Contributor Code of Conduct.
Комментарии
Комментариев пока нет. Будьте первым.