关于 planetscale-mcp-agent-operating-model
面向 PlanetScale 的 Agent 技能,指导如何选择 MCP 访问方式并安全处理数据库工作。它区分只读分析与需人工批准的操作,并规定交互式及定时审查流程。
主要功能
- 01MCP 服务选择指南
- 02生产变更审批边界
- 03安全自主任务定义
- 04交互式与定时 Agent 循环
- 05查询执行防护
适用场景
- 01为数据库任务选择 MCP 访问方式
- 02通过 Pull Request 审查架构建议
- 03排查查询回归与异常
MCP 相关
指导 Agent 选择 PlanetScale 的仅 Insights 或完整 MCP 服务,并优先使用只读权限范围。它规定工具的安全使用方式及数据库变更审批边界。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ planetscale/ skills --skill planetscale-mcp-agent-operating-model安装后在 Claude Code 中输入/planetscale-mcp-agent-operating-model确认已加载。
详细介绍
MCP Agent 运行模式
目的
定义 Agent 应如何安全地使用 PlanetScale MCP。Agent 应利用生产遥测数据生成有用的工作,同时避免自主更改生产环境。
默认 MCP 选择
如果任务只需要 Insights 和 Schema Recommendations,请使用 PlanetScale MCP 只读分析服务器。
只有在任务明确要求访问 Insights 以外的数据库或架构时,才使用完整的 PlanetScale MCP 服务。优先选择只读范围。
完整的 MCP 服务提供查询执行工具。除非操作人员明确批准某项特定的非生产操作,或经过仔细审核的生产操作,否则应将写入查询工具视为禁用。
AGENTS.md 指南
两个用途不同的文档都名为 AGENTS.md:
-
CLI Agent 指南 — 随
pscale一同提供(位于 planetscale/cli 仓库中的AGENTS.md,或通过pscale agent-guide --format json获取)。涵盖身份验证、--format json、标志 的位置以及pscale sql。在此技能包中加载技能planetscale-pscale-cli-automation, 可遵循相同的约定。 -
项目 Agent 指南 — 应用仓库中的
AGENTS.md(或 同等文件)。涵盖此应用的数据库目标及审批政策。
在仓库中工作时,建议在 AGENTS.md 或同等项目说明中添加项目数据库
目标配置部分,内容包括:
- PlanetScale 组织。
- 数据库。
- 分支。
- 引擎:Vitess 或 Postgres。
- 生产分支名称。
- Agent 是否可以使用 MCP 只读分析模式或完整 MCP。
- 是否禁止写入查询。
- 架构、Traffic Control、Webhook、角色和网络更改所需的审批流程。
未经批准,不要编辑 AGENTS.md。
默认允许的自主任务
- 读取 Insights。
- 读取架构建议。
- 读取架构元数据。
- 读取现有 Webhook 和 Traffic Control 配置。
- 读取分支元数据。
- 检查仓库代码。
- 将查询模式与代码关联起来。
- 创建问题。
- 发起拉取请求。
- 创建开发分支。
- 在非生产开发分支上应用 DDL 和迁移。
- 向受审核工作流保护的分支发起部署请求。
- 起草 Traffic Control 预算提案。
- 起草 Webhook 接收端需求。
如果存在 PR + 部署请求工作流,架构建议的默认交付物应是完整、可审核的工作单元:已应用 DDL 的开发分支、附有证据(指纹、指标、预期效果)的 PR,以及已发起的部署请求。人工负责作出合并/部署决定,而不是推动提案从无到有。
默认不允许(需审核门控的操作及不可审核的变更):
- 对生产环境执行写入 SQL。
- 直接在生产分支上执行 DDL。
- 部署部署请求/将架构应用到生产环境。
- 合并拉取请求。
- 创建 Webhook。
- 创建或启用 Traffic Control 预算。
- 轮换凭据。
- 更改角色。
- 更改 IP 限制或专用连接。
- 恢复或提升分支。
Agent 工作循环
每日建议循环
- 读取未解决的架构建议。
- 读取排名靠前的 Insights 回归问题。
- 将问题与仓库代码关联起来。
- 生成按优先级排序的问题或 PR。
- 由人工审核。
- 任何影响数据库的操作均由人工批准。
异常处理循环
- 接收或检查异常。
- 收集受影响的查询模式和标签。
- 找出源路由/作业/部署。
- 撰写事件说明和拟议的修复方案。
- 如果代码修复方案明确,则发起 PR。
- 如果需要更改数据库,则仅创建拟议的变更集。
Traffic Control 循环
- 根据 Insights/标签识别不安全的流量切片。
- 起草
warn预算提案。 - 由人工批准创建。
- 观察警告。
- 仅在验证后由人工批准启用 enforce 模式。
定时循环(cron / Automations)
上述循环以交互方式运行。它们也可以按计划运行,无需人工介入,分为两个层级。Tier 2 需要根据 ../planetscale-autonomous-execution-mode/SKILL.md 获得长期授权;Tier 1 无需授权。
两个层级的所有定时循环都必须:在运行开始时重新读取授权,将状态流式传输到已配置的交付渠道,持久化运行日志,并避免重复提交(对于指纹/建议 ID 相同且已处于打开状态的问题,不要再次提交)。
Tier 1 — 通过审核工作流提出建议(无需授权)
- 建议到 PR 循环(每天):通过 MCP 列出待处理的架构建议;对于每个符合工作流的新建议(增量或破坏性——PR 审核是把关环节),创建开发分支、应用 DDL、提交包含指纹、指标和预期效果的 PR,并创建部署请求。当人工可以通过一次合并/部署操作发布时,可审核单元即告完成。输出:每条建议对应一个分支、PR 和部署请求。
- 回归监控(每小时或每次部署后):将主要模式与已存储的基线进行比较(p50/p99、读取行数、执行次数);出现重大回归时,从查询标签中识别部署 SHA,并提交一份将模式与提交范围关联起来的报告。输出:报告。
- 标签覆盖率审计(每周):衡量带有标签的查询时间占比;列出未标记但成本较高的模式及可能涉及的代码路径;创建或更新一条跟踪问题。输出:问题。
- 异常分诊(由 webhook 触发,不轮询):收到
branch.anomaly时,收集受影响的模式,判断可能原因,并向事件频道发布分诊说明。输出:分诊说明。 - 安全态势漂移检查(每天):将当前的安全迁移标志、webhook 配置、角色列表和备份计划与上一份评估报告进行差异比较;报告任何漂移。输出:报告。
Tier 2 — 执行审核把关后的操作(需要长期授权)
- 建议部署器(每天,在 PR 循环之后):部署符合白名单条件的待处理部署请求——通常是“增量 DDL、PR 已获批准或基于待处理建议创建、部署时设有回滚窗口、每次运行最多 N 个”——然后通过架构读取验证,并针对目标指纹进行后续 Insights 检查。只有当授权规定了可在运行时验证的界限时,才能自主部署破坏性 DDL(例如:“仅删除过去 30 天内读取次数为零的索引,并在运行时通过 Insights 确认”)。如果组织要求部署前必须获得 PR 批准,则已批准的 PR 即满足审核把关要求,授权仅涵盖机械式部署。
- 分支清理(每周):删除超过授权时限且没有待处理部署请求的开发分支;绝不操作生产分支或受保护分支。
- 警告预算维护器(每周):为符合白名单条件、近期发现的高成本切片创建警告模式 Traffic Control 预算;报告现有预算的警告计数。除非授权指定了具体预算,否则绝不自主进入强制模式。
- 凭据过期强制处理(每天):仅在授权列明受影响角色且已有轮换运行手册的情况下,删除或标记超过授权最大有效期限的密码。
循环反模式
- 使用 cron 轮询 MCP 来获取 webhook 已经传送的事件——应使用 webhook 作为触发器;cron 应用于基线、扫描和审计。
- Tier 2 循环的白名单描述的是“保持系统健康”之类的意图,而不是有界操作。
- 执行变更却没有用于发送状态的交付渠道的循环。
- 无界扇出:一次运行应用所有待处理建议,且没有每次运行的数量上限。
查询执行安全措施
对于读取查询:
- 如果有副本,优先使用副本。
- 当分支配置了副本时,
planetscale_execute_read_query默认会将读取路由到副本(use_replica: true)。只有在任务需要主库读取语义时,才设置use_replica: false,例如检查写入后立即的状态或仅主库具备的行为。 - 为 Agent 工作添加来源标签/注释。
- 避免不受限制的扫描。
- 除非获得明确批准,否则不要在生产环境中使用
EXPLAIN ANALYZE。 - 限制结果大小。
- 除非必要且已获批准,否则不要查询敏感列。
- 对于启用了行级安全策略的 Postgres 表,请记住,MCP 读取角色使用
pg_read_all_data,且不会绕过 RLS。如果读取查询返回零行或计数为零,且 MCP 响应警告 RLS 可能正在过滤结果,则在通过批准的路径确认前,应将结果视为经策略过滤或未知;不要断定表为空。 - 调试 Postgres 高 CPU 使用率时,请使用按 CPU 使用率排序的 Insights 数据(通过 MCP(如可用),或在 Insights API 上使用
sort=cpuTime)。CPU 时间指标仅适用于 Postgres;不要在 Vitess 上请求相同的按 CPU 排序视图。
对于写入查询:
- 默认禁止。
- 如果获得批准,优先使用非生产分支。
- 必须审查确切的 SQL。
- 必须制定回滚计划。
- 必须确认分支和数据库名称。
输出
返回:
- 推荐的 MCP 服务选择。
- 所需权限范围。
- 要添加的 AGENTS.md 指令。
- 允许自主执行的工作。
- 禁止的工作。
- 提议的 Agent 工作循环。
- 审批关卡。
最后写上:
“未使用任何 MCP 写入工具或数据库变更操作。”