MCP 数据库工具:只读查询也要限制什么
控制连接身份、查询复杂度、结果规模和敏感字段。本文给出适用场景、实施顺序、风险边界和来源核验方法,帮助读者形成可复查的MCP 生态决策。
MCP 数据库工具:只读查询也要限制什么
先给结论
使用只读账号、语句超时、返回上限和字段脱敏,把写操作拆成单独且需确认的工具。
判断起点
控制连接身份、查询复杂度、结果规模和敏感字段。服务器可能同时暴露只读资源和有副作用的工具。配置前应逐项确认输入参数、访问范围、写入行为和错误返回,尤其关注文件系统、数据库、浏览器及任意命令执行能力。
推荐做法
数据库场景先建立只读身份、查询超时和结果数量上限,再考虑自然语言查询体验。对敏感字段做明确过滤,并记录使用了哪个数据版本。任何写操作都应独立建模,提供幂等条件和人工确认,不能与普通查询共用权限。
核验重点
- 服务声明的工具与实际权限是否一致
- 传输方式和凭据存储是否适合部署环境
- 失败、超时和返回数据是否可追踪
把检查结果写成可复测记录,至少包含日期、版本、环境、输入样例和结果。这样项目升级或需求变化后,团队可以判断原结论是否仍然成立。
进一步验证
命名和描述会直接影响模型选择能力。名称使用清楚的动作加对象,描述写明何时使用、何时不用、是否产生副作用;参数保持单一含义。两个工具职责重叠时,优先合并边界,而不是通过更夸张的描述争取调用。
常见误区
模型生成的 SELECT 同样可能造成全表扫描或泄露个人信息。同时不要把“能够运行”直接解释为“适合生产”,个人试验与长期服务对权限、稳定性、监控和维护的要求不同。
如何形成自己的结论
围绕本文主题准备一个代表性样例,先记录当前方案的基线,再使用候选方案重复同一任务。比较最终正确性、人工修正、耗时、资源或调用成本以及失败恢复情况;如果结果会影响重要数据或线上服务,应先在隔离环境验证。
留下可复查记录
引入新架构前,用现有 API 或普通函数实现一个基线版本。如果统一发现、跨客户端连接或状态编排没有带来可测收益,就保留简单方案。额外协议和框架会增加升级、监控与排错责任,技术流行度不是采用理由。
参考来源
本文根据以上公开项目整理,不复制 README 全文。仓库功能、许可证和维护状态可能变化,使用或分发前请再次查看原始页面。