CanAI Stitch 用于把 Google Stitch 设计的网页和应用屏幕部署到 CanAI WordPress 站点,属于 canai-mcp 技能的配套能力,额外提供 Stitch 相关工具和专用工作流。
用途 将 Stitch 中的单个屏幕部署为 CanAI 站点页面,并生成配套布局。设计变更后可反复重新部署;设计定稿后可把页面移交给 CanAI,按 CanAI 约定规范化导航、模板、链接、字符串和结构注释。
前置条件 需要 CanAI 1.98.0+ 且 MCP 服务器已连接;站点上启用 CanAI Stitch 附加插件(canai-stitch 1.1.0+)。若工具列表中没有 wpcanai-stitch-* 工具,说明附加插件未安装或未启用,可请站点所有者从 https://github.com/usewp/canai-stitch 安装;若无法安装,也可从 Stitch 导出屏幕 HTML,用 canai-prepare 处理后再通过 canai-mcp 部署。
密钥与权限 站点所有者需在 Stitch → Settings → API Keys 创建密钥,并在 CanAI → Tools → Import from Stitch 中粘贴,密钥不会进入对话。仅当所有者明确交付密钥时才使用 wpcanai-stitch-connect { "api_key" }。部署会写入原始 _canai_html / _canai_css,因此调用方需使用 CanAI API 密钥,或具备 unfiltered_html 权限,否则返回 forbidden。
两种工作模式 先与所有者确认模式。若 Stitch 仍是设计源,则反复部署,不在 CanAI 中编辑页面,适合预览页、落地页和活动页;若设计已定稿,则部署一次后执行 Cleanup,此后 CanAI 成为源。重新部署同一屏幕会更新原页面和布局,并保留标题、别名、状态和父级;若页面 HTML、布局代码或布局选择在 CanAI 中被修改,部署会以 stitch_page_edited (409) 停止且不写入,所有者确认覆盖时才可用 overwrite: true(快照可恢复被覆盖内容)。
部署流程 先用 wpcanai-stitch-connect 无参数检查连接状态;用 wpcanai-stitch-list-projects 查看站点已选项目,必要时用 view: "owned" 或 "shared" 浏览账户项目,并经所有者确认后用 wpcanai-stitch-set-projects 添加;用 wpcanai-stitch-list-screens 找到目标屏幕(deployed_page_id > 0 表示已有部署页面,hidden 计数为非设计项);用 wpcanai-stitch-deploy-screen 生成草稿页和布局,仅在所有者要求时传 status: "publish"。部署后检查 images.remote(超时未复制完,可再次部署续传)、images.failed(Stitch 侧图片链接失效)和 site_changes(启用的 Tailwind 相关项),并用 wpcanai-preview-link 在手机和桌面宽度下核对。
部署产物 生成名为 “Stitch: <屏幕标题>” 的已发布布局,包含文档外壳、Google Fonts(含 Material Symbols)、tailwind.config 脚本、html/body 属性与屏幕 head 样式;页面 _canai_html 为屏幕 body 加一行注释,_canai_layout 指向该布局;设计中的 Twig 语法会被原样输出;图片复制到媒体库并关联页面,重新部署时复用;页面与布局可用 wpcanai-restore-operation 一次性回滚。
Cleanup(移交 CanAI) 仅在移交模式下对已部署页面执行:先读取页面和布局元数据并运行 wpcanai-scan;把 Stitch 的占位导航链接替换为真实页面(缺失页面先用 wpcanai-create-page 创建);将页头页脚抽为模板(wpcanai-create-template,类型 header/footer)并在布局中通过 {{ wpcanai_template('header') }} / {{ wpcanai_template('footer') }} 引用;导航用 wpcanai-write-menu 写入 primary/footer 菜单并改为 get_menu() 循环;站内链接改为 {{ turl(id_url(<id>)) }} 或 slug_url();用户可见文案用 t() 包裹;用结构注释标注区块;可选地把图片换成 media_url / image_attrs 帮助函数;图标按站点情况决定是否改为 Lucide。再次扫描直到干净,并告知所有者页面已归 CanAI 管理。
工具与错误 工具包括:wpcanai-stitch-connect(连接/断开会返回 connected、key_hint,从不返回密钥)、wpcanai-stitch-list-projects(站点列表或账户 owned/shared 项目,含 added 与 unavailable)、wpcanai-stitch-set-projects(添加/移除/查看站点项目,添加前会校验账户中存在该项目)、wpcanai-stitch-list-screens、wpcanai-stitch-deploy-screen。常见错误码有 stitch_not_connected、stitch_invalid_key、stitch_unauthorized、stitch_not_found、stitch_project_not_found、stitch_rate_limited、stitch_unavailable、stitch_bad_response、stitch_link_expired、stitch_html_too_large(超过 5 MB)、stitch_parse_failed、stitch_page_edited 和 forbidden、invalid_input,出错时不写入任何内容。
适用场景与限制 适合把 Stitch 设计快速落地为站点页面、预览页、落地页、活动页,或作为设计定稿后移交 CanAI 规范化的起点。限制包括:必须已连接 MCP 服务器并启用附加插件;需有效 Stitch API 密钥;部署会写入原始 HTML/CSS,要求相应权限;已编辑页面重新部署会被阻止;Stitch 中失效的图片链接无法自动修复;超过 5 MB 的屏幕 HTML 无法部署。