
MCP Toolbox
Google 出品的 MCP 数据库网关——42+ 数据源 + 声明式工具 + 连接池 + IAM + OpenTelemetry
Google 出品的 MCP 数据库网关——42+ 数据源 + 连接池 + IAM + OpenTelemetry 一站式。GCP 用户首选;非 GCP 也能用,但价值打折。声明式 tools.yaml 学习曲线偏陡。
TL;DR
MCP Toolbox for Databases(前 genai-toolbox)是 Google 开源的 MCP 数据库网关,由 googleapis GitHub 组织维护,Apache 2.0 协议。它的差异点:42+ 预置数据源(AlloyDB / BigQuery / Cloud SQL PostgreSQL/MySQL/SQL Server / Spanner / Firestore / Bigtable / 自管 PostgreSQL / MySQL / SQL Server / SQLite / Oracle / MongoDB / Redis / Elasticsearch / Neo4j / Snowflake / ClickHouse / Couchbase / CockroachDB / TiDB / OceanBase / Trino),外加 Looker / Cloud Storage / Cloud Monitoring / Cloud Logging / Dataproc / Gemini Data Analytics。双重角色:(a) 即装即用的通用 MCP 服务器,让 Gemini CLI / Claude Code / Codex / Antigravity 等 MCP 客户端 0 行代码连数据库;(b) 自定义工具框架,用 tools.yaml 声明参数化 SQL / 语义搜索 / NL2SQL,构建生产级 Agent 数据访问层。
适合:要让 AI Agent 安全读写企业数据库的团队;GCP 重度用户(AlloyDB / Spanner / BigQuery);要审计 AI 数据库操作的合规场景;多 Agent 共享同一数据访问层的多框架团队。不适合:纯 SaaS 集成(用 Composio);非数据库工具发现(用 Smithery);不想引入 Go 二进制 / Docker 的极简场景。
核心能力
- 42+ 数据源:GCP 全家桶 + 主流自管 DB + NoSQL + 图 DB + Lake/OLAP
- 声明式工具:
tools.yaml定义 name / source / 参数化 SQL / 描述 - 预置工具:
execute_sql/list_tables/get_table_info开箱即用 - 连接池:高并发 Agent 不打挂数据库
- IAM / OAuth2 / OIDC:按用户/角色限制可调工具
- OpenTelemetry:metrics + tracing 出厂集成
- 多语言 SDK:Python / TypeScript / Go / Java(v1.0+)
- 框架集成:LangChain / LlamaIndex / Genkit / Google ADK 原生
- 动态热重载:dev 模式改
tools.yaml不需重启 --ui交互模式:本地调试 tool 的可视化界面- MCP 协议兼容:任何 MCP 客户端可接入
- Apache 2.0:可商用、可自托管、可改
价格
- OSS:$0;完整功能 + 42+ 数据源
- GCP 托管:只付 Cloud Run / GKE / DB 资源费,Toolbox 自身不收费
对比:Composio 按 action 量收费、Smithery 托管按用量收费。Toolbox 完全自托管 → 长期成本最低,但要自己承担 ops。
实测(GCP + AlloyDB + Claude Code)
亮点:
- 5 分钟从
docker run到 Claude Code 用 NL 查询数据库 tools.yaml声明式比写 LangChain Python tool 干净很多- 连接池让 100 个并发 Agent 不会拖垮 PG
- IAM 集成让生产环境合规过关
- OpenTelemetry trace 直接连到 Cloud Trace,慢查询定位简单
- 兼容 Claude Code / Gemini CLI / Codex / Antigravity 等多客户端,不锁定
- Java SDK 让 Spring Boot 项目零外接
踩坑:
- 全英文文档,国内开发者要硬啃
tools.yaml语法有学习曲线,复杂 query 不如直接写代码- 非 GCP 用户用不上一半预置 source
- LLM 仍会 hallucinate 表名 / 列名 → 要在 description 写清 schema
- 冷门数据源(OceanBase / TiDB)prebuilt 工具浅,要写自定义
- 多客户端共享同一 Toolbox 时,权限粒度仍偏粗
- Go binary + Docker 部署对纯 Python team 是新栈
- 改
tools.yaml后 LLM context 会更新,要重启对话才彻底生效
上手(PostgreSQL 5 分钟)
# 1. 拉镜像
docker run -p 5000:5000 -v $PWD/tools.yaml:/config/tools.yaml \
us-central1-docker.pkg.dev/database-toolbox/toolbox/toolbox:latest
# 2. tools.yaml
sources:
my-pg:
kind: postgres
host: localhost
port: 5432
database: shop
user: agent
password: ***
tools:
search_products:
kind: postgres-sql
source: my-pg
description: "Search products by name (case-insensitive, top 10)"
parameters:
- name: name
type: string
description: Product name keyword
statement: |
SELECT id, name, price FROM products
WHERE name ILIKE '%' || $1 || '%' LIMIT 10
# 3. 注册到 Claude Desktop(mcp config)
{
"mcpServers": {
"toolbox": { "url": "http://localhost:5000/mcp" }
}
}
启动后 Claude 看到 search_products 工具,模型自然语言『查一下叫 iPhone 的产品』就会调用,绝不会暴露原始 DB connection。
对比
| 维度 | MCP Toolbox | Composio | Smithery | LangChain SQL Tool |
|---|---|---|---|---|
| 焦点 | DB + 数据源 | SaaS 集成 | MCP server 发现 | DB only |
| 数据源数 | 42+ | 1000+ SaaS | 3300+ MCP server | ~10 |
| 连接池 | ✅ 内置 | N/A | N/A | ❌ |
| IAM | ✅ OAuth2/OIDC | ✅ 托管 OAuth | ❌ | ❌ |
| OpenTelemetry | ✅ 原生 | ✅ | 部分 | ❌ |
| 声明式工具 | ✅ tools.yaml | 部分 | ❌ | 代码 |
| MCP 客户端 | ✅ 全部 | ✅ + LC/CrewAI/Autogen | MCP only | LC only |
| 自托管 | ✅ Apache 2.0 | ❌ SaaS | 部分 | ✅ MIT |
| 起价 | $0 | Free + 按 action | Free | $0 |
| 适合 | DB 重度 / GCP | 多 SaaS | server 发现 | LC quick demo |
避坑
- description 写清 schema:LLM 靠 description 决策,写好 column 名 + 业务含义
- 参数化 SQL 必须用:永远不要让 LLM 拼字符串
- 最小权限 DB user:给 Agent 专用 user + 只读 / 表级权限
- OpenTelemetry 配上:Cloud Trace 或 Grafana 接管,慢查询第一时间发现
- 冷门 source:先看 prebuilt 工具够不够,不够要自己写
--ui调 tool:上线前用--ui把每个 tool 跑一遍- 国内访问:GCR 镜像国内拉慢 → 推到 ACR / 阿里云镜像服务
- Spanner / AlloyDB 锁定:非 GCP 别选这两个 source
- 多 Agent 共享:用 IAM scope 隔离 prod / dev / 团队
- Java SDK 版本:Spring Boot 项目锁定 toolbox-sdk-java 主版本号
适合 / 不适合
- ✅ 要 Agent 安全读写企业数据库
- ✅ GCP 重度(AlloyDB / Spanner / BigQuery)
- ✅ 多 Agent 框架(LC + ADK + Claude Desktop)共享数据访问层
- ✅ 合规 / 审计 / 多租户
- ✅ Spring Boot / Java 企业栈(Java SDK)
- ❌ 纯 SaaS 集成(Composio)
- ❌ MCP server 发现(Smithery)
- ❌ 不引入 Docker/Go binary 的极简部署
- ❌ DB schema 频繁变动且不愿维护
tools.yaml
相关阅读
来源
- MCP Toolbox 官网 https://mcp-toolbox.dev/
- GitHub googleapis/mcp-toolbox(前 genai-toolbox) https://github.com/googleapis/mcp-toolbox
- Google Cloud Blog — MCP Toolbox for Databases supports MCP https://cloud.google.com/blog/products/ai-machine-learning/mcp-toolbox-for-databases-now-supports-model-context-protocol
- Google Cloud Blog — MCP Toolbox Java SDK 公告 https://cloud.google.com/blog/topics/developers-practitioners/announcing-the-mcp-toolbox-java-sdk
- Google Codelabs — Install & Setup MCP Toolbox for AlloyDB https://codelabs.developers.google.com/genai-toolbox-for-alloydb
| 计划 | 价格 | 限制 | 国内支付 | 备注 |
|---|---|---|---|---|
| OSS | $0 | — | — | |
| GCP 托管 | GCP 资源费 | — | — |
MCP Toolbox 解决什么问题?
Agent 直连数据库有三个痛点:(1) SQL 注入风险;(2) 权限控制(每个 LLM 用户能看到哪些表 / 行);(3) 工具定义重复。MCP Toolbox 用声明式 tools.yaml 把这些痛点封装:每个 tool 只能跑预定义的参数化 SQL,无法注入;IAM / OAuth2 / OIDC 决定哪些用户可调用哪些 tool;一次定义到处复用(LangChain / ADK / Claude Desktop 共享同一个 Toolbox server)。Google 给它当『企业 AI Agent 与数据库之间的 control plane』。
和直接用 MCP PostgreSQL Server 有什么区别?
MCP 官方 PostgreSQL server 是『裸 SQL 执行器』——你给它一个 connection string,Agent 直接发 SELECT。Toolbox 多了:声明式工具(不暴露原始 SQL 给 LLM)+ 连接池(高并发 Agent 不会打挂 DB)+ IAM/OAuth2 鉴权 + OpenTelemetry tracing/metrics + 多数据源 + 动态热重载工具配置。换言之 Toolbox = MCP server + 企业治理层。生产部署优先 Toolbox;开发阶段 quick demo 用裸 MCP server 就够。
必须用 GCP 吗?
不必须。Toolbox 是开源 Go 程序,能跑在任何 Docker/VM 上,连任何 PostgreSQL / MySQL / SQL Server / MongoDB / Redis / Elasticsearch / Neo4j / Snowflake / ClickHouse / Trino / Oracle / SQLite。但 Spanner / AlloyDB / BigQuery / Bigtable / Firestore / Cloud Storage / Cloud Monitoring 等专属源只有用 GCP 才能发挥价值。非 GCP 用户主要享受的是『连接池 + 声明式工具 + Auth + OTel』,依然有用但 GCP 用户回报最高。
和 Composio / Smithery 怎么选?
Toolbox 专门面向『数据库 + 数据源』;Composio 是『SaaS 集成层』(GitHub / Slack / Gmail / Notion 等 1000+ 工具);Smithery 是『MCP server 注册中心』(去哪里发现 MCP server)。三者互补:Toolbox 解决『让 Agent 读写企业数据库』+ Composio 解决『让 Agent 用 SaaS』+ Smithery 解决『去哪儿找 MCP server』。GCP + 数据库重度场景必上 Toolbox。