genai MCP工具箱

@googleapis/genai-toolbox
0 Stars 399 次浏览 googleapis 更新于 2026-08-23

开源的MCP服务器,专注于为数据库提供简单、快速且安全的工具。

该服务暂未提供标准配置,请参考 README 手动接入

服务介绍

logo

MCP Toolbox for Databases

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

MCP Toolbox for Databases 是一个开源的数据库 MCP 服务器,它在设计时考虑了企业级和生产质量。它通过处理诸如连接池、身份验证等复杂性,使您能够更轻松、更快捷、更安全地开发工具。

本 README 提供了一个简要概述。有关详细信息,请参阅完整文档

[!NOTE]
该产品最初名为“Gen AI Toolbox for Databases”,因为其初始开发早于 MCP,但为了与最近添加的 MCP 兼容性保持一致而进行了重命名。

目录

为什么选择 Toolbox?

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

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

总体架构

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

architecture

开始使用

安装服务器

对于最新版本,请查看发布页面,并根据您的操作系统和 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)。

有关部署到不同环境的更详细文档,请参阅 How-to 部分中的资源。

集成您的应用程序

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

  1. 安装 [Toolbox 核心 SDK][toolbox-core]:
    pip install toolbox-core
    
  2. 加载工具:
    from toolbox_core import ToolboxClient
    
    # 更新 URL 以指向您的服务器
    client = ToolboxClient("http://127.0.0.1:5000")
    
    # 这些工具可以传递给您的应用程序!
    tools = await client.load_toolset("toolset_name")
    

有关使用 Toolbox 核心 SDK 的更多详细说明,请参阅
项目的 README

  1. 安装 [Toolbox LangChain SDK][toolbox-langchain]:
    pip install toolbox-langchain
    
  2. 加载工具:
    from toolbox_langchain import ToolboxClient
    
    # 更新 URL 以指向您的服务器
    client = ToolboxClient("http://127.0.0.1:5000")
    
    # 这些工具可以传递给您的应用程序!
    tools = client.load_toolset()
    

有关使用 Toolbox LangChain SDK 的更多详细说明,请参阅
项目的 README

  1. 安装 [Toolbox Llamaindex SDK][toolbox-llamaindex]:
    pip install toolbox-llamaindex
    
  2. 加载工具:
    from toolbox_llamaindex import ToolboxClient
    
    # 更新 URL 以指向您的服务器
    client = ToolboxClient("http://127.0.0.1:5000")
    
    # 这些工具可以传递给您的应用程序!
    tools = client.load_toolset()
    

有关使用 Toolbox Llamaindex SDK 的更多详细说明,请参阅
项目的 README

配置

配置 Toolbox 的主要方式是通过 tools.yaml 文件。如果您有多个文件,可以通过 --tools_file tools.yaml 标志告诉 Toolbox 要加载哪个文件。

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

数据源

您的 tools.yaml 中的 sources 部分定义了 Toolbox 应该访问的数据源。大多数工具至少需要一个数据源来执行。

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

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

工具

tools.yaml 文件中的 tools 部分定义了代理可以执行的操作:工具的种类、影响的源(们)、使用的参数等。

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

工具集

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 更改时,增加 MAJOR 版本。
  • 当我们以向后兼容的方式添加功能时,增加 MINOR 版本。
  • 当我们进行向后兼容的错误修复时,增加 PATCH 版本。

这适用于与 Toolbox 相关的 CLI、与官方 SDK 的交互以及 tools.yaml 文件中的定义。

贡献

欢迎贡献。请参阅 CONTRIBUTING 以开始。

请注意,此项目发布时附带了一个贡献者行为准则。通过参与此项目,您同意遵守其条款。有关更多信息,请参见 贡献者行为准则

相关 MCP 服务