批准的数据库操作 MCP 工具箱
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_3c6cb52e/expose-approved-database-operations-to-mcp-clients-with-mcp-toolbox-before-ad-hoc-sql-glue-sprawls
技能介绍
你在解决什么问题
当 AI Agent 需要访问数据库时,最常见的做法是为每个项目手写一套 SQL 胶水代码:拼接查询、处理连接池、给结果做序列化、再封装成函数供模型调用。项目一多,这些包装层就开始各自为政——有的用字符串拼接生成 SQL,有的把凭证硬编码在配置里,有的干脆绕过校验直接执行原始查询。维护成本随着项目数量线性上升,而安全边界却越来越模糊。
这个技能的思路是换一种方式:不要让 Agent 去拼 SQL,而是把已经批准、已经审核过的数据库操作,以受约束的工具形式暴露给 MCP 客户端。Agent 面对的不再是一个可以写任意 SQL 的自由入口,而是一组结构明确、参数受限、行为可预期的 MCP 工具。
它是怎么工作的
核心是借助 MCP Toolbox 把数据库访问收敛成一个受约束的工具面(constrained tool surface)。具体来说:
- 预构建工具(Prebuilt Tools):针对常见数据库场景提供开箱即用的工具定义,省去从零搭建的重复劳动,适合快速起步。
- 自定义工具框架(Custom Tools):在生产环境中,用结构化查询、语义检索、NL2SQL 等能力构建专用工具,把安全逻辑放在工具定义里,而不是交给 Agent 临时发挥。
- 统一的 MCP 接口:无论底层是 PostgreSQL、MySQL 还是其他数据源,Agent 侧只看到标准的 MCP 工具调用协议,工具之间的差异被 MCP Toolbox 这一层吸收。
关键步骤大致是:先明确哪些数据库操作属于"已批准"范围,再用 MCP Toolbox 把这些操作定义成工具(预构建或自定义),最后把工具挂载到 MCP 服务器上供客户端调用。Agent 在运行时只能看到这些已经定义好的工具,无法凭空生成新的查询入口。
适用边界与注意点
- 批准清单是前提:这个技能不会替你决定哪些操作可以暴露。工具面的安全性直接取决于你审核和批准的操作清单,清单本身才是安全边界的第一道闸门。
- 不能替代数据库权限控制:MCP Toolbox 暴露的是"工具调用入口",底层的数据库账号权限、行级过滤、审计日志仍然需要在数据库侧配置。工具层约束的是 Agent 的行为,不是数据库的防御。
- 需要 MCP 客户端配合:运行时链路依赖 MCP Toolbox 服务器和一个支持 MCP 的客户端(如 Claude Code、Codex 等)。客户端能力不足时,再好的工具定义也无法被正确消费。
- 自定义工具需要工程投入:预构建工具解决的是常见场景,而生产环境中的结构化查询、语义检索、NL2SQL 等能力需要你用 Custom Tools 框架自行实现,这部分并非零成本。
使用场景
- 后端团队让 Claude Code 查询 PostgreSQL,但不想为每个项目手写 SQL 包装器
- 生产环境中 Agent 需执行自然语言转 SQL 查询,且操作清单必须经过审批
- 多个微服务项目各自实现数据库连接池与结果序列化,代码大量重复
- 平台工程师需要为 AI 工具加入语义检索能力,但不想自行集成向量数据库
适合人员
- 后端工程师:正在为 AI Agent 设计数据库访问层,不想重复编写连接管理与 SQL 拼接代码
- AI 应用架构师:需要在生产环境部署 Agent,同时确保所有数据库操作都有审批记录与权限边界
- 多项目技术负责人:各团队各自编写 SQL 胶水代码导致维护成本激增,希望统一方案
- MCP 平台开发者:正在构建工具市场,需要标准化的数据库工具定义供客户端消费