MCP Toolbox for Databases

Official

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.

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 数据库工具箱

[!NOTE] MCP Toolbox for Databases 目前处于测试阶段,在第一个稳定版本(v1.0)发布之前可能会发生重大变化。

MCP 数据库工具箱是一款开源的 MCP 数据库服务器,其设计以企业级和生产质量为核心。它能够处理诸如连接池、身份验证等复杂问题,让您能够更轻松、更快速、更安全地开发工具。

本 README 提供简要概述。如需更详细的信息,请参阅完整文档

[!NOTE] 该产品最初被命名为“Gen AI Toolbox for Databases”,因为其初始开发早于 MCP,但后来被重新命名以符合最近添加的 MCP 兼容性。

目录

为什么选择工具箱?

Toolbox 可帮助您构建 Gen AI 工具,让您的代理能够访问数据库中的数据。Toolbox 提供以下功能:

  • 简化开发:用不到 10 行代码将工具集成到您的代理中,在多个代理或框架之间重用工具,并更轻松地部署新版本的工具。
  • 更好的性能:最佳实践,如连接池、身份验证等。
  • 增强的安全性:集成身份验证,可更安全地访问您的数据
  • 端到端可观察性:开箱即用的指标和跟踪,内置对 OpenTelemetry 的支持。

总体架构

Toolbox 位于应用程序的编排框架和数据库之间,提供用于修改、分发或调用工具的控制平面。它通过为您提供一个集中存储和更新工具的位置,简化了工具的管理,使您可以在代理和应用程序之间共享工具,并更新这些工具,而无需重新部署应用程序。

入门

安装服务器

要获取最新版本,请查看发布页面并按照以下适合您的操作系统和 CPU 架构的说明进行操作。

要将 Toolbox 安装为二进制文件:

# see releases page for other versions export VERSION=0.3.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.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来启动服务器:

./toolbox --tools_file "tools.yaml"

您可以使用toolbox help查看完整的标志列表!要停止服务器,请发送终止信号(大多数平台上ctrl+c )。

有关部署到不同环境的更多详细文档,请查看“操作方法”部分中的资源

集成您的应用程序

服务器启动并运行后,您就可以将这些工具加载到应用程序中。请参阅以下用于使用各种框架的客户端 SDK 列表:

  1. 安装工具箱核心 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. 安装工具箱 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文件。如果您有多个文件,可以使用--tools_file tools.yaml参数告诉 Toolbox 加载哪个文件。

您可以在资源中找到所有资源类型的更详细的参考文档。

来源

tools.yaml中的sources部分定义了你的工具箱可以访问哪些数据源。大多数工具至少会有一个数据源可供执行。

sources: my-pg-source: kind: postgres host: 127.0.0.1 port: 5432 database: toolbox_db user: toolbox_user password: my-password

有关配置不同类型源的更多详细信息,请参阅

工具

tools.yamltools部分定义了代理可以采取的操作:它是什么类型的工具,它影响哪些源,它使用哪些参数等。

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 || '%';

有关配置不同类型工具的更多详细信息,请参阅工具

工具集

tools.yaml中的toolsets部分允许您定义需要同时加载的工具组。这对于根据代理或应用程序定义不同的工具组非常有用。

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 是与 Toolbox 关联的 CLI、与官方 SDK 的交互以及tools.yaml文件中的定义。

贡献

欢迎贡献。请参阅贡献部分开始。

请注意,本项目已发布贡献者行为准则。参与本项目即表示您同意遵守其条款。更多信息,请参阅贡献者行为准则

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

开源 MCP 服务器专门提供简单、快速、安全的数据库工具。

  1. Table of Contents
    1. Why Toolbox?
      1. General Architecture
        1. Getting Started
          1. Installing the server
          2. Running the server
          3. Integrating your application
        2. Configuration
          1. Sources
          2. Tools
          3. Toolsets
        3. Versioning
          1. Contributing
            ID: edji1s31y4