MCP Toolbox for Databases 是一个开源的数据库工具管理平台,旨在帮助开发者更简单、快速、安全地创建和管理数据库工具。它充当应用程序和数据库之间的控制平面,简化工具的开发、分发和调用。平台支持多种开发框架,如 LangChain、LlamaIndex 和 GoogleGenAI,适合本地或云端部署。用户可以通过简单的配置和少量代码实现工具集成,优化数据库操作效率。MCP Toolbox 提供连接池、认证等功能,确保性能和安全性。它适用于需要快速开发数据库工具的场景,比如 AI 代理的数据访问或自动化数据库管理。当前版本为 0.9.0,仍在 beta 阶段,未来可能有重大更新。
功能列表
- 工具集中管理:提供统一平台存储和更新工具,支持跨应用和代理共享。
- 动态工具加载:支持动态加载工具,无需重启应用程序即可更新工具配置。
- 数据库连接优化:内置连接池和认证机制,提升性能和安全性。
- 多框架支持:兼容 LangChain、LlamaIndex、GoogleGenAI 等开发框架。
- 自然语言查询:允许通过自然语言直接查询数据库,无需编写复杂 SQL。
- 自动化数据库管理:支持自动生成查询、创建表和添加索引。
- 上下文感知代码生成:根据数据库模式生成应用代码和测试用例。
- 跨平台部署:支持 Linux、Windows、macOS 和容器化部署(如 Docker)。
使用帮助
安装流程
MCP Toolbox 提供多种安装方式,适合不同开发环境。以下是详细的安装步骤:
1. 二进制安装
用户可以直接下载适用于操作系统的二进制文件:
- 访问官方发布页面,选择对应版本(当前为
0.9.0
)。 - 根据操作系统和 CPU 架构(如
linux/amd64
或darwin/arm64
)下载二进制文件:export OS="linux/amd64" curl -O https://storage.googleapis.com/genai-toolbox/v0.9.0/$OS/toolbox chmod +x toolbox
- 将
toolbox
文件移动到系统路径(如/usr/local/bin
),即可运行。
2. 容器化安装
使用 Docker 安装更适合生产环境:
- 拉取官方 Docker 镜像:
export VERSION=0.9.0 docker pull us-central1-docker.pkg.dev/database-toolbox/toolbox/toolbox:$VERSION
- 运行容器,确保端口(默认
5000
)可用:docker run -p 5000:5000 us-central1-docker.pkg.dev/database-toolbox/toolbox/toolbox:$VERSION
3. 源码安装
需要 Go 语言环境(建议使用最新版本):
- 运行以下命令安装:
go install github.com/googleapis/genai-toolbox@v0.9.0
- 配置完成后,运行
toolbox
启动服务器。
4. 配置 tools.yaml
安装后需要配置 tools.yaml
文件,用于定义数据源和工具:
- 创建
tools.yaml
文件,示例配置如下:sources: my-pg-source: kind: postgres host: 127.0.0.1 port: 5432 database: toolbox_db user: ${USER_NAME} password: ${PASSWORD} 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.
- 使用环境变量(如
${USER_NAME}
)存储敏感信息,避免硬编码。 - 保存文件后,运行以下命令启动服务器:
./toolbox
- 默认启用动态重载,需禁用可添加
--disable-reload
标志。
主要功能操作
1. 加载工具
MCP Toolbox 支持通过 SDK 加载工具,适用于多种框架。以下以 Python SDK 为例:
- 安装 SDK(根据框架选择):
pip install toolbox-langchain
- 加载工具集:
from toolbox_langchain import ToolboxClient async with ToolboxClient("http://127.0.0.1:5000") as client: tools = await client.load_toolset("toolset_name")
- 加载的工具可直接传递给应用程序或 AI 代理。
2. 自然语言查询
用户可以通过自然语言查询数据库。例如,查询“2024年交付的订单及其包含的商品”:
- 配置好数据源后,工具会自动将自然语言转换为 SQL 查询。
- 在支持的 IDE 中,输入类似“Find hotels in Basel with Basel in its name”,工具会调用
search-hotels-by-name
工具,返回结果。
3. 自动化数据库管理
MCP Toolbox 能自动生成数据库操作。例如:
- 创建表:描述需求,如“创建一个存储用户信息的数据表”,工具会生成相应 SQL。
- 添加索引:输入“为用户表添加索引”,工具会自动执行。
- 用户只需在 IDE 中输入需求,工具会处理复杂操作。
4. 上下文感知代码生成
工具根据数据库模式生成代码。例如:
- 输入“生成用户管理模块代码”,工具会根据表结构生成 CRUD 操作代码。
- 支持生成测试用例,确保代码可靠性。
停止服务器
运行中的服务器可通过 Ctrl+C
终止。若需后台运行,使用 Docker 或系统服务管理工具。
注意事项
- 当前版本为 beta(
0.9.0
),可能存在不稳定情况,建议关注官方发布页面。 - 确保网络连接稳定,Docker 镜像拉取可能需要科学上网。
- 敏感信息(如数据库密码)应使用环境变量管理,避免泄露。
应用场景
- AI 代理开发
开发者使用 MCP Toolbox 快速构建 AI 代理的数据库工具。例如,酒店预订机器人可以通过自然语言查询酒店信息,自动完成预订操作,减少手动编码工作量。 - 数据库管理自动化
数据分析师无需编写复杂 SQL,通过自然语言描述需求(如“统计2024年销售额”),即可获得查询结果,适合快速数据探索。 - 跨团队工具共享
开发团队可将工具存储在 MCP Toolbox,共享给多个项目或 AI 代理,实现工具复用,降低维护成本。 - 实时代码生成
初学者或忙碌的开发者可利用上下文感知功能,快速生成数据库相关的应用代码,缩短开发周期。
QA
- MCP Toolbox 支持哪些数据库?
目前主要支持 PostgreSQL,其他数据库支持正在开发中。用户需在tools.yaml
中配置对应数据源。 - 如何确保工具安全性?
平台提供内置认证机制,支持环境变量管理敏感信息,避免硬编码。建议使用 HTTPS 部署服务器。 - 是否需要高配置环境运行?
否,MCP Toolbox 设计轻量,可在普通开发机或云服务器上运行。Docker 部署进一步降低环境要求。 - 如何更新工具而不重启应用?
默认启用动态重载功能,新工具或配置更新会自动生效,无需重启服务器。