mcp-toolbox
Google开源的MCP数据库服务器,让AI代理直接用自然语言查询15+种数据库
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
Google开源的MCP数据库服务器,让AI代理直接用自然语言查询15+种数据库
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
想象一下这个场景:你对着一段自然语言说「帮我查一下上个月华北区域销量前10的商品」,AI 不仅理解了你的意思,还直接在你的 PostgreSQL 数据库里执行了查询——整个过程没有任何人工翻译 SQL 的环节,你甚至不需要知道底层用的是什么数据库。这不是科幻,而是 MCP Toolbox for Databases 正在做的事。
长期以来,AI 与数据库的交互存在一道鸿沟:AI 能理解你的意图,却无法直接操作数据库,必须依赖人工将自然语言翻译成 SQL。这个"翻译环节"既费时又容易出错,特别是涉及多表关联、复杂条件或特定数据库方言时。Google 开源的 MCP Toolbox for Databases 正是为了消除这道鸿沟而生——它让 AI 真正成为能够直接操作数据库的"工程师",而不是只会写 SQL 的"翻译官"。
MCP Toolbox 的前身是 Google 早期推出的 Gen AI Toolbox for Databases,当时 Model Context Protocol(MCP)尚未成为行业标准,因此采用了闭源的通信协议。随着 MCP 在 2024 年迅速崛起为 AI 工具互联的事实标准,Google 果断将项目重构为完全兼容 MCP 协议,并更名为 MCP Toolbox for Databases。这一转型不仅让项目获得了更广泛的生态兼容性,也使其成为 Google 官方 MCP 战略的重要组成部分。
该项目由 Google Cloud 团队维护,属于 Google APIs 组织下的官方开源项目。Google 选择将这一能力开源,意在推动 MCP 生态的普及,同时也为自己在 AI 数据库交互领域积累社区影响力。目前项目在 GitHub 上已收获超过 15,000 颗星,是 MCP 生态中最受欢迎的数据库连接工具之一。
图1:Google APIs 官方项目标志
MCP Toolbox 采用了清晰的三层架构设计,构建起 AI Agent 与企业数据库之间的智能桥梁。
第一层是 MCP Server,这是整个系统的核心。它运行在本地(默认端口 5000),通过标准的 MCP 协议与 AI 客户端(Claude Code、Gemini CLI、Google Antigravity 等)通信。Server 本身不运行 AI 模型,只负责任务分发和结果回传——保持轻量、无状态、易于部署。
第二层是工具层(Tools),包含两大类工具。第一类是预构建通用工具(Prebuilt Tools),开箱即用,覆盖 20+ 数据库类型,包括 Google Cloud 全家桶(BigQuery、Cloud SQL、AlloyDB、Spanner、Firestore)和主流开源数据库(PostgreSQL、MySQL、MongoDB、Redis、Elasticsearch、CockroachDB、ClickHouse、Neo4j、Snowflake、Trino 等)。只需一行配置指定数据库类型,即可获得 list_tables、execute_sql、get_schema 等标准工具。第二类是自定义工具框架(Custom Tools),允许开发者通过 YAML 配置文件定义专用工具,实现结构化查询、语义搜索和 NL2SQL 能力,所有自定义逻辑均在预定义的沙箱内执行,从根本上保障安全。
第三层是数据源层(Sources),负责维护数据库连接。Toolbox 内置了连接池管理、IAM 认证集成和重试机制,针对不同数据库有不同的认证方式(如 PostgreSQL 用用户名密码,BigQuery 用 GCP Service Account),让配置数据库连接变得简单规范。

图2:MCP Toolbox 系统架构,展示了 AI Agent → MCP Server → 数据库的完整数据流
预构建工具是 MCP Toolbox 最高效的使用方式。以 PostgreSQL 为例,只需三步即可让 Claude 拥有数据库操作能力:
第一步:在 MCP 客户端配置文件中添加服务器定义,使用 @toolbox-sdk/server npm 包,无需安装任何二进制文件:
{
"mcpServers": {
"toolbox-postgres": {
"command": "npx",
"args": ["-y", "@toolbox-sdk/server", "--prebuilt=postgres", "--stdio"]
}
}
}
第二步:配置环境变量,指定数据库连接信息:
export TOOLBOX_SOURCE_MY_PG_HOST=127.0.0.1
export TOOLBOX_SOURCE_MY_PG_PORT=5432
export TOOLBOX_SOURCE_MY_PG_DATABASE=my_database
export TOOLBOX_SOURCE_MY_PG_USER=my_user
export TOOLBOX_SOURCE_MY_PG_PASSWORD=***
第三步:直接用自然语言向 AI 提问,比如"列出数据库中所有表和它们的行数"。AI 会自动调用 list_tables 和 execute_sql 工具,在你的数据库上执行相应操作,返回结果。
整个过程无需编写任何 SQL,无需理解数据库 schema,AI 会自动完成探索(schema discovery)、查询构造和结果解读。
当预构建工具无法满足需求时,开发者可以通过 tools.yaml 配置文件构建完全自定义的工具。以一个酒店搜索场景为例:
kind: tool
name: search-hotels-by-name
type: 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 || %;
这个配置定义了一个酒店名称搜索工具,工具接收一个字符串参数,将其注入到 SQL 的 ILIKE 条件中进行模糊匹配。值得注意的是,这里的 $1 参数化查询完全阻止了 SQL 注入风险——即使 AI 被恶意提示词诱导,也无法突破这个预定义边界。这种"受限执行"设计让企业在让 AI 操作数据库时不必担心安全问题。
Toolbox 还支持语义搜索工具(基于 embedding 向量匹配)、Prompts 工具(定义多轮对话模板)和 Agent Skills 导出(将工具集转换为 Gemini CLI 的 Agent Skill 格式),构成了完整的企业级 AI 数据库工具链。
MCP Toolbox 提供了极其丰富的安装方式,覆盖各种技术背景的用户:
| 安装方式 | 适用场景 | 难度 |
|---|---|---|
| NPX 一键运行 | 快速试用、Node.js 环境 | ★☆☆☆☆ |
| Homebrew | macOS/Linux 日常使用 | ★☆☆☆☆ |
| 预编译二进制 | 通用服务器部署 | ★★☆☆☆ |
| Docker 容器 | 生产环境、K8s 集群 | ★★☆☆☆ |
| 源码编译 | 开发者贡献、定制化修改 | ★★★☆☆ |
| Google Cloud 托管版 | 不想管理服务器的用户 | ★☆☆☆☆ |
最推荐的方式是 Docker 一行命令:
export VERSION=1.3.0
docker pull us-central1-docker.pkg.dev/database-toolbox/toolbox/toolbox:$VERSION
docker run -p 5000:5000 -v $(pwd)/tools.yaml:/app/tools.yaml us-central1-docker.pkg.dev/database-toolbox/toolbox/toolbox:$VERSION --config "/app/tools.yaml"
Toolbox 的部署难度被评为**"简单"(2/5)**,原因如下:
tools.yaml 格式清晰,官方提供了大量参考配置。tools.yaml 后 Server 自动重载,无需重启进程。预计初次部署时间约 5-10 分钟,包含环境准备、配置文件编写和调试。
MCP Toolbox 采用标准的 Go 项目布局:
cmd/ — CLI 入口,命令行参数解析和启动逻辑
internal/
sources/ — 各数据库驱动实现(postgres, bigquery, mysql, mongo...)
tools/ — 工具实现,按数据库类型组织
config/ — YAML 配置解析和验证
mcp/ — MCP 协议处理
main.go — 应用入口
项目依赖了 Google Cloud Go 全家桶(bigquery, alloydbconn, cloudsqlconn, firestore, logging 等)和主流开源数据库客户端(pgx, mysql, mongodb, redis, elasticsearch 等)。值得注意的是,所有数据库驱动均通过 CGO 调用原生库,为了实现跨平台编译,项目引入了 Zig 编译器进行 CGO 交叉编译——这是一个非常前沿的工程选择,使得项目能够同时产出 Linux/macOS/Windows 三个平台的二进制文件。
项目包含完整的集成测试套件,覆盖各个数据库类型。Go Report Card 评分持续保持 A 级别,代码质量有保障。
1. MCP 生态锁定:项目深度绑定 MCP 协议,如果未来出现更优的标准,需要较大迁移成本。不过考虑到 Anthropic、Google 和 OpenAI 均已支持 MCP,这个风险目前较低。
2. 自定义工具的安全边界:虽然框架本身设计了参数化查询防注入,但 YAML 配置文件本身没有完整性校验,如果配置文件被恶意篡改,攻击者可以定义任意 SQL 语句执行。生产环境需要做好配置文件本身的访问控制。
3. 性能开销:每次 AI 查询都需要经过 MCP 协议栈 → Toolbox Server → 数据库的完整链路,对于高频小查询场景,延迟会比直接 JDBC/ODBC 高出 50-200ms。
4. 多数据库联合查询:当前版本对跨数据库的 JOIN 查询支持有限,AI 需要分别查询每个数据库再在应用层合并,无法原生支持 Spanner 或 CockroachDB 的分布式 JOIN 能力。
5. 文档和中文资源匮乏:官方文档质量很高,但中文资料极少,对于国内开发者有一定上手门槛。
MCP Toolbox 的意义远超一个工具本身。它代表了 AI 与数据库交互的标准接口层正在形成。
过去几年,行业尝试过无数种让 AI 操作数据库的方案:LangChain 的 SQL Agent、LlamaIndex 的 QueryEngine、各云厂商的 NL2SQL API……这些方案各有千秋,但都存在一个共同问题——没有标准。每个 AI 框架、每个数据库厂商都搞自己的一套,开发者换一个框架就得重写一遍工具代码。
MCP 协议的出现彻底改变了这个局面。作为一个协议层,MCP 把"AI 说什么"(自然语言意图)和"工具做什么"(数据库操作)解耦开来。MCP Toolbox 正是这个协议在数据库场景下的标准实现——只要 AI 客户端支持 MCP,就可以无差别地使用 Toolbox 连接任何受支持的数据库。
Google 选择将这一能力开源,并提供四个语言 SDK(Python、JavaScript/TypeScript、Go、Java),显示了其将 MCP 打造成行业标准的战略意图。可以预见,随着 MCP 生态的扩展,MCP Toolbox 将成为 AI 数据库交互的事实标准层,就像 ODBC/JDBC 之于传统应用一样。
项目当前版本为 1.3.0,采用语义化版本控制,API 稳定性有保障。如果你正在构建需要数据库交互的 AI 应用,MCP Toolbox 值得认真评估。