MCP Toolbox for Databases

by googleapis
Apache 2.0
870
  • Linux

Integrations

  • Enables integration with LangChain framework, allowing agents to leverage database tools and execute queries through the MCP Toolbox server.

  • Provides compatibility with LangGraph for building agent workflows that can access and manipulate database data using the tools defined in the MCP server.

  • Offers built-in support for OpenTelemetry, enabling end-to-end observability with metrics and tracing for database operations performed through the MCP server.

Набор инструментов MCP для баз данных

[!ПРИМЕЧАНИЕ] MCP Toolbox for Databases в настоящее время находится в стадии бета-тестирования и может претерпеть критические изменения до выхода первой стабильной версии (v1.0).

MCP Toolbox for Databases — это сервер MCP с открытым исходным кодом для баз данных. Он позволяет вам разрабатывать инструменты проще, быстрее и безопаснее, управляя сложностями, такими как пул соединений, аутентификация и т. д.

Этот README содержит краткий обзор. Для получения подробных сведений см. полную документацию .

[!ПРИМЕЧАНИЕ] Первоначально это решение называлось «Gen AI Toolbox for Databases», поскольку его первоначальная разработка предшествовала MCP, но было переименовано для соответствия недавно добавленной совместимости с MCP.

Оглавление

Почему именно «Ящик для инструментов»?

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 для использования различных фреймворков:

  1. Установить Toolbox Core SDK :
    pip install toolbox-core
  2. Загрузить инструменты:
    from toolbox_core import ToolboxClient # update the url to point to your server client = ToolboxClient("http://127.0.0.1:5000") # these tools can be passed to your application! tools = await client.load_toolset("toolset_name")

Более подробные инструкции по использованию Toolbox Core SDK см. в файле README проекта .

  1. Установите Toolbox LangChain SDK :
    pip install toolbox-langchain
  2. Загрузить инструменты:
    from toolbox_langchain import ToolboxClient # update the url to point to your server client = ToolboxClient("http://127.0.0.1:5000") # these tools can be passed to your application! tools = client.load_toolset()

Более подробные инструкции по использованию Toolbox LangChain SDK см. в файле README проекта .

  1. Установите Toolbox Llamaindex SDK :
    pip install toolbox-llamaindex
  2. Загрузить инструменты:
    from toolbox_llamaindex import ToolboxClient # update the url to point to your server client = ToolboxClient("http://127.0.0.1:5000") # 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 .

Внося вклад

Вклады приветствуются. Пожалуйста, ознакомьтесь с разделом ВКЛАД , чтобы начать.

Обратите внимание, что этот проект выпущен с Кодексом поведения участника. Участвуя в этом проекте, вы соглашаетесь соблюдать его условия. Для получения дополнительной информации см. Кодекс поведения участника .

-
security - not tested
A
license - permissive license
-
quality - not tested

remote-capable server

The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.

MCP-сервер с открытым исходным кодом, специализирующийся на простых, быстрых и безопасных инструментах для баз данных.

  1. Оглавление
    1. Почему именно «Ящик для инструментов»?
      1. Общая Архитектура
        1. Начиная
          1. Установка сервера
          2. Запуск сервера
          3. Интеграция вашего приложения
        2. Конфигурация
          1. Источники
          2. Инструменты
          3. Наборы инструментов
        3. Версионирование
          1. Внося вклад

            Related MCP Servers

            • A
              security
              A
              license
              A
              quality
              An MCP server that provides tools for interacting with Supabase databases, storage, and edge functions.
              Last updated -
              14
              41
              JavaScript
              MIT License
            • -
              security
              A
              license
              -
              quality
              An MCP server that integrates with MySQL databases, enabling secure read and write operations through LLM-driven interfaces with support for transaction handling and performance monitoring.
              Last updated -
              48
              3
              JavaScript
              MIT License
            • A
              security
              A
              license
              A
              quality
              An MCP server that provides read-only access to MySQL databases.
              Last updated -
              4
              695
              17
              JavaScript
              MIT License
              • Linux
              • Apple

            View all related MCP servers

            ID: edji1s31y4