项目介绍
MCP Toolbox for Databases 是 Google 开源的数据库 MCP 服务器和自定义工具框架,用 Model Context Protocol 把数据库接入 Agent。它提供两条明显不同的路径:用预置配置快速获得数据库工具,或在 tools.yaml 中自行定义 SQL、参数、认证和 toolset,把 Agent 的动作限制在预先设计的范围内。这个区别十分关键:仓库明确把可执行任意 SQL 的预置工具定位为有人监督的开发便利,而不是生产环境的授权模型。

核心功能
预置数据库 MCP 工具
可按数据库加载仓库内置配置,也可缩小到指定 toolset。PostgreSQL 预置包包含结构检查与 SQL 执行工具,连接值从环境变量读取。
参数化自定义工具
可在 tools.yaml 中预先定义允许的 SQL 和参数,让 Agent 只填入受约束输入,而不是提交任意查询;仓库建议应用运行时优先采用这一路径。
MCP 与工具级授权
authService 可验证单个工具调用、填充认证参数,或保护整个 MCP 端点。启用 MCP 认证后,通用 OIDC 还支持令牌验证和按工具要求 scope。
多种传输与部署方式
服务器可用 stdio 连接本地客户端,也可通过 Streamable HTTP 自托管。仓库记录了二进制、npx、Homebrew、Docker、Cloud Run 与 Kubernetes 路径。
运行可观测性
Toolbox 将日志写入标准输出或错误流,并可在显式配置后向兼容 OpenTelemetry 的后端导出指标和链路。
安装与连接
先在本地使用一个数据库、一个专用只读身份和 stdio 接入,把所有凭据留在配置文件外;确认工具发现和一次无害读取正常后,再考虑自定义工具或网络部署。
让 AI Agent 帮你安装
把这段话发送给 Codex、Claude Code 或其他可以操作本地环境的 AI Agent。
请帮我从 https://github.com/googleapis/mcp-toolbox 安装并配置 MCP Toolbox for Databases。先完整阅读当前 README、预置配置文档、许可证和安全说明,确认我的 MCP 宿主、操作系统、目标数据库、传输方式与密钥管理方式。除非我选择仓库记录的其他方法,先按文档用 npx 和 stdio 接入一个数据库。创建或确认一个专用、最小权限、最好只读的数据库身份;不要打印、记录、硬编码或提交密码和令牌。修改前说明 MCP 客户端配置文件的准确位置和拟议变更。完成后重启客户端,检查可用工具,只针对非敏感数据执行一次无害读取,并报告执行命令、改动文件、工具列表、所用权限和验证结果。遇到向不受信任用户开放任意 SQL、网络暴露、写权限、遥测导出或更宽 scope 时,先停止并征求同意。- Node.js 与 npx,或仓库记录的其他安装方式
- 支持 MCP stdio 服务器的客户端
- 一个可访问的受支持数据库
- 仅限所需 schema 和操作的专用数据库用户
- 用于注入连接值的密钥管理方式
{"mcpServers":{"toolbox-postgres":{"command":"npx","args":["-y","@toolbox-sdk/server","--prebuilt=postgres","--stdio"],"env":{"POSTGRES_HOST":"127.0.0.1","POSTGRES_PORT":"5432","POSTGRES_DATABASE":"YOUR_DATABASE","POSTGRES_USER":"YOUR_READONLY_USER","POSTGRES_PASSWORD":"SET_IN_A_SECRET_STORE"}}}}- 1选择较窄的连接边界
只选择一个受支持数据库,并判断预置配置是否适合可信开发场景。创建专用数据库身份,只授予必要 schema 和操作;探索时尽量使用 SELECT-only 权限。
- 2在配置文件外提供凭据
通过环境注入或密钥管理器提供数据库值。PostgreSQL 预置文件需要 POSTGRES_HOST、POSTGRES_PORT、POSTGRES_DATABASE、POSTGRES_USER、POSTGRES_PASSWORD 和可选的 POSTGRES_QUERY_PARAMS。
- 3注册 stdio 服务器
在 MCP 客户端中加入执行以下命令的服务器项: npx -y @toolbox-sdk/server --prebuilt=postgres --stdio 真实凭据不要进入共享或提交的客户端配置。可用 --prebuilt=postgres/<toolset> 进一步缩小 PostgreSQL 工具集。
- 4核对工具发现和数据库限制
重启 MCP 客户端,确认服务器与预期工具可见,然后列出一个已知表,或针对非敏感数据运行一次无害 SELECT。确认数据库会拒绝写入和越权数据。
- 5进入应用前继续加固
固定流程应把任意 SQL 替换为参数化自定义工具;按需加入认证参数或 MCP 认证,网络暴露前配置 TLS 与 host/origin 限制,并在导出遥测前复核数据去向。
重启 MCP 客户端,确认 Toolbox 服务器已连接并检查它公开的工具。随后使用专用只读身份列出一个预期表,或针对非敏感数据运行一次无害 SELECT;在扩大使用前,确认数据库本身会拒绝写入和越权 schema。
- 示例环境值都是占位符;真实凭据应通过密钥管理器或本地环境注入。
- 优先使用过滤后的预置 toolset 或参数化自定义工具,不要默认开放完整任意 SQL 工具集。
- Streamable HTTP 若超出 localhost,应按部署文档配置 MCP 认证、allowed hosts/origins 与 TLS。
- 遥测导出是可选项,可能把运行元数据发送到所配置的后端。
使用场景
数据库感知的开发辅助
可信开发者可在 IDE 中检查 schema 和读取限定数据,同时依靠数据库原生权限把探索范围控制在较小边界。
受约束的应用操作
为查询当前用户订单这类固定动作公开参数化 SQL,而不是给模型一个可执行任意 SQL 的端点。
共享的自托管数据库工具服务
为获批客户端运行统一 Toolbox 服务,并根据部署环境配置 toolset、OIDC scope、TLS 与可观测性。
使用评价
MCP Toolbox 的价值在于,它不只提供较广的数据库目录,也明确给出从开发便利走向生产约束的路径。详细文档、发布节奏、安全策略、测试目录和 Apache-2.0 许可证形成了较强的公开证据。主要风险同样清楚:最快的预置路径可能开放任意 SQL,所以数据库原生最小权限和参数化自定义工具是必要边界,而不是锦上添花。本次评价不包含安装或功能实测。
值得一试的地方
- 官方仓库提供完整的安装、配置、部署、安全和升级文档
- 覆盖多种数据库,并同时支持本地 stdio 与自托管 HTTP
- 自定义工具、认证参数、OIDC scope 和可观测性支持逐步加固
- 近期 releases 与 commits 显示项目仍在持续维护
使用前要知道
- 默认预置体验包含高权限的任意 SQL 工具
- 运行网络化数据库 MCP 服务需要承担认证、TLS、密钥和遥测责任
- 集成数量较多,也意味着使用者必须额外阅读对应数据库的具体文档
README
MCP Toolbox for Databases
Overview
Google 开源的数据库 MCP 服务器与自定义工具框架,可把多种数据库连接到 MCP 客户端,并以预置或参数化工具控制 Agent 能执行的操作。 面向多种 Google Cloud 与第三方数据库的开源 MCP 服务器和自定义工具框架,可连接 AI Agent 与开发助手。
Getting started
- 先在本地使用一个数据库、一个专用只读身份和 stdio 接入,把所有凭据留在配置文件外;确认工具发现和一次无害读取正常后,再考虑自定义工具或网络部署。
- 仓库提供两种主要方式。预置配置可快速加载常见数据库工具;自定义工具则允许运营者在 tools.yaml 中定义数据源、SQL、参数、toolset、prompt 和授权行为。
- 文档列出的预置范围包括 Google Cloud 数据服务,以及 PostgreSQL、MySQL、MariaDB、SQL Server、Oracle、MongoDB、Redis、Elasticsearch、ClickHouse、Neo4j、Snowflake 等第三方数据库。可以用 --prebuilt=<database> 选择数据库,也可用 --prebuilt=<database>/<toolset> 缩小工具集。
- 重启 MCP 客户端,确认 Toolbox 服务器已连接并检查它公开的工具。随后使用专用只读身份列出一个预期表,或针对非敏感数据运行一次无害 SELECT;在扩大使用前,确认数据库本身会拒绝写入和越权 schema。
Configuration
{"mcpServers":{"toolbox-postgres":{"command":"npx","args":["-y","@toolbox-sdk/server","--prebuilt=postgres","--stdio"],"env":{"POSTGRES_HOST":"127.0.0.1","POSTGRES_PORT":"5432","POSTGRES_DATABASE":"YOUR_DATABASE","POSTGRES_USER":"YOUR_READONLY_USER","POSTGRES_PASSWORD":"SET_IN_A_SECRET_STORE"}}}}在 GitHub 阅读完整 README →