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

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

开始使用
安装服务器
对于最新版本,请查看发布页面,并根据您的操作系统和 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 列表:
- 安装 [Toolbox 核心 SDK][toolbox-core]:
pip install toolbox-core - 加载工具:
from toolbox_core import ToolboxClient # 更新 URL 以指向您的服务器 client = ToolboxClient("http://127.0.0.1:5000") # 这些工具可以传递给您的应用程序! tools = await client.load_toolset("toolset_name")
有关使用 Toolbox 核心 SDK 的更多详细说明,请参阅
项目的 README。
- 安装 [Toolbox LangChain SDK][toolbox-langchain]:
pip install toolbox-langchain - 加载工具:
from toolbox_langchain import ToolboxClient # 更新 URL 以指向您的服务器 client = ToolboxClient("http://127.0.0.1:5000") # 这些工具可以传递给您的应用程序! tools = client.load_toolset()
有关使用 Toolbox LangChain SDK 的更多详细说明,请参阅
项目的 README。
- 安装 [Toolbox Llamaindex SDK][toolbox-llamaindex]:
pip install toolbox-llamaindex - 加载工具:
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 以开始。
请注意,此项目发布时附带了一个贡献者行为准则。通过参与此项目,您同意遵守其条款。有关更多信息,请参见 贡献者行为准则。