Veto 对比只读 Postgres MCP 服务器

诸如 Postgres Scout MCPmcp-server-postgres 等服务器,以及 Glama 上的类似条目,以只读模式、SQL 注入防护和表结构探索的方式把 Postgres 暴露给 AI 智能体。那是一种访问控制策略。Veto 是一道语句级安全门禁——是互补,而非替代。

一览

只读 MCPVeto
核心机制角色 / 连接限制——智能体无法写入确定性分析——智能体对危险 SQL 拿到 block
正当的写入完全被拦截(或使用单独的写入连接)SQL 通过时即允许——Veto 不执行
临时智能体 SQL仅限 SELECTDELETE/UPDATE/迁移在运行前接受审查
绕过风险角色配置错误、连接串错误智能体跳过该工具——由工作流 + Pro 策略缓解
成本 / 顺序扫描通常不是关注点提供 schema 时对大规模扫描给出 warn
连接生产环境是(只读)从不

何时适合只读 MCP

智能体应当只查询生产环境——分析、表结构发现、支持查询。只读 Postgres MCP 服务器是一种成熟的模式(通常自托管)。

何时适合 Veto

智能体编写迁移、运行修复,或以写入权限触碰预发布环境。只读角色会阻断正当工作,并且曾被绕过。Veto 回答的是:"给定这条确切的 ALTER TABLE / DELETE,裁定是什么?"——包括隐藏在 CTE 中的破坏性语句。

为何不只用只读?

只读是粗粒度的:它无法拦截在允许写入的角色下对十亿行表执行的高成本 SELECT,当智能体持有迁移连接时它也帮不上忙。Veto 额外提供细粒度、可复现的 findings,供智能体(或人)在执行前据此行动。

推荐的技术栈

只读 MCP做生产环境探索,再在智能体可写入的任何连接上用 Veto。角色定义什么是可能的;Veto 判定每一条语句。

通过 MCP 连接 所有对比