导语:十个主流 CMS 里已经有九个带上官方 MCP 服务器,但 Craft 与 Payload 的写入默认值是"直接落到已发布内容"——草稿保护不是默认项,是你必须主动开口要的配置。
结论先行
"能不能接 MCP"已经不是问题,"接上之后谁踩刹车"才是。逐家核对下来,10 家 CMS 里 9 家已有官方 MCP 服务器(Drupal 走的是贡献模块),但默认值分成了两个阵营:
默认进草稿(6 家):Contentful、PagibleAI、Sanity、Storyblok、Strapi、WordPress.com
默认可直发(2 家):Craft CMS、Payload —— 前者的
elements_create除非显式传asUnpublishedDraft: true,否则保存为线上条目;后者的draft参数在 3.x 源码里默认为false,在开了草稿的集合上会直接覆盖已发布文档看情况(2 家):Drupal、WordPress 自托管 —— 取决于你装了什么工具/插件
一次错误 tool call 的代价,取决于这个默认值。这不是安全漏洞,是产品取舍;但对日更内容站,它是实打实的生产事故入口。
维度一:写入落点与权限边界
| CMS | 版本 | Agent 写入落点 | Agent 可发布 | 服务端限制手段 | 内容模型校验 |
|---|---|---|---|---|---|
| Contentful | 远程 MCP 2026-07 GA;本地 1.24.5(88 工具) | 草稿 | 可以 | 按环境设只读/读写 | 部分(发布时校验,非草稿保存时) |
| Craft CMS | 5.12(2026-11-03) | 线上,需传 asUnpublishedDraft | 可以 | 三档 consent 等级 | 是(JSON Schema + elements_validate) |
| Directus | 11.12+(v12 加 OAuth 2.1) | 取决于 status 字段 | 可以 | 删除默认关闭、按角色 | 未披露 |
| Drupal | mcp_server 2.0.0-beta7(2026-10) | 取决于安装的工具 | 部分 | 按工具配置 | 未披露 |
| PagibleAI | 默认内置(47 工具) | 每次保存生成新草稿版本 | 可以 | 按动作校验用户权限 | 是(与编辑器表单同一 Schema) |
| Payload | MCP 插件(MIT) | 已发布,除非传 draft: true | 可以 | 按 API key + 操作 | 部分 |
| Sanity | 托管 MCP | 草稿或 release | 可以 | 仅靠 token 角色 | 部分(跳过自定义规则) |
| Storyblok | 托管 MCP(7 工具) | 草稿,除非传 publish | 可以(同一次调用) | 仅客户端限制 | 未披露 |
| Strapi | 5.49+(MCP 于 5.47 落地,5.49 GA) | 草稿(需开 Draft & Publish) | 可以(需 publish 权限) | 只读 token 最简 | 部分(动态区与媒体为无类型数组) |
| WordPress 自托管 | MCP Adapter 0.7.1(2026-10-15) | 取决于插件 | 部分 | abilities 默认不公开 | 部分 |
| WordPress.com | 托管 MCP | 草稿 | 可以 | 按站点开关工具组 | 未披露 |
另有 6 家只做了短查:Umbraco 有两个服务器(Developer MCP 400+ 工具,官方文档直接写"不要连生产";Editor MCP 在 beta,发布前需审批)、Hygraph 只写草稿并拒绝删除与取消发布、DatoCMS 走 type-checked TypeScript 脚本、Kontent.ai 有 54 个工具但只支持 Management API key(无 OAuth)、Webflow 的 CMS 条目默认草稿、Statamic 没有官方服务器。
维度二:接入方式与成本
| CMS | 运行位置 | 鉴权 | 浏览器端对话(claude.ai / ChatGPT)可用 | 成本 |
|---|---|---|---|---|
| Contentful | 托管 + 本地(MIT) | OAuth 2.1 / token | 可用 | 所有客户免费 |
| Craft CMS | 自有服务器,内核内置 | OAuth、stdio | 可用 | 全版本(Solo 免费但仅单用户) |
| Directus | 自有/Cloud,内核内置 | OAuth 2.1(v12)、token | v12 起可用 | 所有套餐 |
| Drupal | 贡献模块,beta | OAuth(alpha)、stdio | 部分 | 免费 |
| PagibleAI | 自有服务器,内核内置 | OAuth(Passport) | 可用 | 免费 |
| Payload | 自有,插件 | API key | 不可用 | 免费 |
| Sanity | 仅托管 | OAuth、token | 可用 | 所有项目免费 |
| Storyblok | 仅托管 | OAuth、token | 可用 | 所有套餐 |
| Strapi | 自有,内核内置 | Admin API token | 不可用 | 含免费 Community 版 |
| WordPress 自托管 | 自有,MCP Adapter 插件 | 应用密码、JWT | 不可用 | 免费 |
| WordPress.com | 托管 | OAuth 2.1 | 可用 | 所有站点 |
这张表里最容易被忽略的一行是"浏览器端对话"。想在手机上让 Claude 或 ChatGPT 直接改站,服务器必须支持远程 OAuth——Payload、Strapi、WordPress 自托管三家做不到,只能挂本地客户端(Claude Code、Cursor)。这不是功能缺失,是架构决定的天花板。
三个最容易踩的坑
1. 默认值不是安全边界。 Craft 和 Payload 的默认写入语义对"内容生产"友好,对"内容风控"不友好。上线前先让 Agent 建一个测试页,看它是不是直接可访问——这是最快的验收方法。
2. 闸门在服务端还是在客户端,差别很大。 Contentful 按环境授权、PagibleAI 按动作校验权限、Strapi 的 token 受所有者权限上限钳制并随角色变更自动收紧——这三家把限制做在服务端。Storyblok 的七个工具(execute_readonly / execute_mutating / execute_destructive)设计上很适合做审批,但审批是客户端设置,不是服务器强制。把安全交给 Claude 的一个开关,等于没有安全。
3. Agent 的权限就是它连的那个账号。 多数服务器以连接用户或 token 的身份运行,所以最有效的一招是先给 Agent 建一个独立账号,授予"新来的兼职编辑"级别的权限,而不是拿管理员 token 图省事。Directus 的安全文档直接这么建议。例外要看清楚:Drupal 的工具可以配置成不鉴权;WordPress 自托管的权限检查来自注册 ability 的插件,不在核心。
还有一层几乎没人提:内容模型校验。只有 Craft 与 PagibleAI 明确写了"每次写入都按内容模型校验",Sanity 校验结构但跳过自定义规则,其余多家未在文档中说明。这意味着 Agent 写出一个你 Schema 里不存在的字段时,可能到发布那一刻才炸。
谁该选谁
日更内容站 / 媒体团队:要服务端闸门,不要客户端自律。Contentful 的环境级只读/读写授权最稳,或者 Strapi 配一个只读 token 起步,先只让 Agent 读和起草,发布权留在人手上。WordPress 站主如果不想折腾插件审 abilities,WordPress.com 的托管服务器是目前最省事的一条路(文章默认草稿、永久删除必确认,但改已发布文章会立刻生效,这点要盯)。
独立开发者 / 小团队(Node 栈):Strapi 5.49+ 默认关闭 MCP(server.mcp.enabled 为 false),从只读 token 开始试错成本最低;Payload 也能用,但必须显式传 draft: true,否则就是在赌 Agent 不会覆盖线上正文。
代理商 / 交付型团队:Craft 5.12 的三档 consent 设计是目前最讲究的(只读预选、读写需主动开、完全访问仅限管理员),交付给客户站时体验最好。但要注意 Solo 版只允许一个用户账号——你没法给 Agent 建独立账号,它只能以你的管理员身份运行,实际限制只剩 consent 那一档。要做隔离就得上更高版本,或者干脆把 Full access 关死。
版本与风险清单
| 项 | 内容 |
|---|---|
| 涉及版本 | Craft CMS 5.12(2026-11-03);Strapi 5.47 落地 / 5.49 GA;Directus 11.12+(v12 加 OAuth 2.1);WordPress MCP Adapter 0.7.1(2026-10-15);Drupal mcp_server 2.0.0-beta7(2026-10,无稳定版);Contentful 远程 MCP 2026-07 GA、本地服务器 1.24.5;Payload 3.x |
| 发布日期 | 2026 年 10 月—11 月陆续发布,详见上表 |
| 影响版本 | 启用 MCP 或插件式接入的全部站点;Drupal 模块因无稳定版,不在安全公告覆盖范围内 |
| 风险等级 | 本文判断为中—高(配置类):Craft、Payload 默认写入可直达线上,定级为高;其余定级为中。不涉及 CVE |
| 数据口径 | 写入落点、权限、工具数量取自开发者对 10 家官方 MCP 文档/变更日志/源码的横向核对(2026-11-06),Strapi 与 WordPress 条目已由本文于 2026-11-15 逐一比对官方发布说明确认 |
一句话收尾
MCP 让 CMS 从"人写内容"变成"Agent 也能写内容",但行业这次集体把默认值设在了对自己有利的一侧——Agent 顺滑,站长承担后果。接之前先问三个问题:写进去是草稿还是线上、发布权在服务端还是客户端、Agent 用的是谁的账号。