
Набор инструментов MCP для баз данных
[!ПРИМЕЧАНИЕ] MCP Toolbox for Databases в настоящее время находится в стадии бета-тестирования и может претерпеть критические изменения до выхода первой стабильной версии (v1.0).
MCP Toolbox for Databases — это сервер MCP с открытым исходным кодом для баз данных. Он позволяет вам разрабатывать инструменты проще, быстрее и безопаснее, управляя сложностями, такими как пул соединений, аутентификация и т. д.
Этот README содержит краткий обзор. Для получения подробных сведений см. полную документацию .
[!ПРИМЕЧАНИЕ] Первоначально это решение называлось «Gen AI Toolbox for Databases», поскольку его первоначальная разработка предшествовала MCP, но было переименовано для соответствия недавно добавленной совместимости с MCP.
Оглавление
Related MCP server: MySQL MCP Server
Почему именно «Ящик для инструментов»?
Toolbox помогает вам создавать инструменты Gen AI, которые позволяют вашим агентам получать доступ к данным в вашей базе данных. Toolbox предоставляет:
Упрощенная разработка : интегрируйте инструменты в свой агент менее чем в 10 строк кода, повторно используйте инструменты между несколькими агентами или фреймворками и с легкостью развертывайте новые версии инструментов.
Лучшая производительность : лучшие практики, такие как пул соединений, аутентификация и многое другое.
Повышенная безопасность : интегрированная аутентификация для более безопасного доступа к вашим данным.
Сквозное наблюдение : готовые метрики и трассировка со встроенной поддержкой OpenTelemetry.
Общая Архитектура
Toolbox располагается между фреймворком оркестровки вашего приложения и вашей базой данных, предоставляя плоскость управления, которая используется для изменения, распространения или вызова инструментов. Он упрощает управление вашими инструментами, предоставляя вам централизованное место для хранения и обновления инструментов, позволяя вам совместно использовать инструменты между агентами и приложениями и обновлять эти инструменты без необходимости повторного развертывания вашего приложения.

Начиная
Установка сервера
Для получения последней версии посетите страницу релизов и следуйте следующим инструкциям для вашей ОС и архитектуры ЦП.
Чтобы установить Toolbox как двоичный файл:
# see releases page for other versions
export VERSION=0.5.0
curl -O https://storage.googleapis.com/genai-toolbox/v$VERSION/linux/amd64/toolbox
chmod +x toolbox# see releases page for other versions
export VERSION=0.5.0
docker pull us-central1-docker.pkg.dev/database-toolbox/toolbox/toolbox:$VERSIONДля установки из исходного кода убедитесь, что у вас установлена последняя версия Go , а затем выполните следующую команду:
go install github.com/googleapis/genai-toolbox@v0.5.0Запуск сервера
Настройте tools.yaml для определения ваших инструментов, а затем выполните toolbox для запуска сервера:
./toolbox --tools-file "tools.yaml"Вы можете использовать toolbox help для получения полного списка флагов! Чтобы остановить сервер, отправьте сигнал завершения ( ctrl+c на большинстве платформ).
Более подробную документацию по развертыванию в различных средах можно найти в разделе «Как это сделать».
Интеграция вашего приложения
После того, как ваш сервер запущен и работает, вы можете загрузить инструменты в свое приложение. Ниже приведен список клиентских SDK для использования различных фреймворков:
Установить Toolbox Core SDK :
pip install toolbox-coreЗагрузить инструменты:
from toolbox_core import ToolboxClient # update the url to point to your server async with ToolboxClient("http://127.0.0.1:5000") as client: # these tools can be passed to your application! tools = await client.load_toolset("toolset_name")
Более подробные инструкции по использованию Toolbox Core SDK см. в файле README проекта .
Установите Toolbox LangChain SDK :
pip install toolbox-langchainЗагрузить инструменты:
from toolbox_langchain import ToolboxClient # update the url to point to your server async with ToolboxClient("http://127.0.0.1:5000") as client: # these tools can be passed to your application! tools = client.load_toolset()
Более подробные инструкции по использованию Toolbox LangChain SDK см. в файле README проекта .
Установите Toolbox Llamaindex SDK :
pip install toolbox-llamaindexЗагрузить инструменты:
from toolbox_llamaindex import ToolboxClient # update the url to point to your server async with ToolboxClient("http://127.0.0.1:5000") as client: # these tools can be passed to your application! tools = client.load_toolset()
Более подробные инструкции по использованию Toolbox Llamaindex SDK см. в файле README проекта .
Конфигурация
Основной способ настройки Toolbox — через файл tools.yaml . Если у вас несколько файлов, вы можете указать toolbox, какой из них загружать, с помощью флага --tools-file tools.yaml .
Более подробную справочную документацию по всем типам ресурсов вы можете найти в разделе Ресурсы .
Источники
Раздел sources вашего tools.yaml определяет, к каким источникам данных должен иметь доступ ваш Toolbox. Большинство инструментов будут иметь по крайней мере один источник для выполнения.
sources:
my-pg-source:
kind: postgres
host: 127.0.0.1
port: 5432
database: toolbox_db
user: toolbox_user
password: my-passwordБолее подробную информацию о настройке различных типов источников см. в разделе Источники .
Инструменты
Раздел tools файла tools.yaml определяет действия, которые может выполнять агент: какой это тип инструмента, на какие источники он влияет, какие параметры он использует и т. д.
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 вашего tools.yaml позволяет вам определять группы инструментов, которые вы хотите загружать вместе. Это может быть полезно для определения различных групп на основе агента или приложения.
toolsets:
my_first_toolset:
- my_first_tool
- my_second_tool
my_second_toolset:
- my_second_tool
- my_third_toolВы можете загрузить наборы инструментов по имени:
# This will load all tools
all_tools = client.load_toolset()
# This will only load the tools listed in 'my_second_toolset'
my_second_toolset = client.load_toolset("my_second_toolset")Версионирование
В этом проекте используется семантическое управление версиями , включая номер версии MAJOR.MINOR.PATCH , который увеличивается с:
ОСНОВНАЯ версия, когда мы вносим несовместимые изменения API
МИНОРНАЯ версия, когда мы добавляем функциональность с обратной совместимостью
Версия PATCH, когда мы делаем обратно совместимые исправления ошибок
Публичный API, к которому это применяется, — это CLI, связанный с Toolbox, взаимодействие с официальными SDK и определения в файле tools.yaml .
Внося вклад
Вклады приветствуются. Пожалуйста, ознакомьтесь с разделом ВКЛАД , чтобы начать.
Обратите внимание, что этот проект выпущен с Кодексом поведения участника. Участвуя в этом проекте, вы соглашаетесь соблюдать его условия. Для получения дополнительной информации см. Кодекс поведения участника .