关于 canva-edit-design
canva-edit-design 为现有 Canva 设计提供事务式编辑流程,草稿需经用户批准后才会提交。适合需要安全修改文本、媒体、布局或元数据的用户,并明确列出不支持的编辑类型。
主要功能
- 01通过事务开始、编辑、提交或取消
- 02修改文本内容与格式
- 03替换、插入或删除媒体元素
- 04调整元素位置和尺寸
- 05更新标题及自动填充映射
- 06限制响应式页面的可用操作
适用场景
- 01替换设计中的文本或图片
- 02调整元素布局并预览修改
- 03确认删除或批量替换的范围
- 04在保存前审阅草稿缩略图
MCP 相关
该技能按顺序调用 Canva 编辑工具,并在提交永久更改前要求用户明确批准。工具可操作的内容和页面限制均在流程中说明。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ canva-sdks/ canva-skills --skill canva-edit-design安装后在 Claude Code 中输入/canva-edit-design确认已加载。
详细介绍
Canva 设计编辑
对现有 Canva 设计应用编辑的规范且安全的方式。所有会修改设计的 Canva 技能都应遵循此确切协议:开始事务 → 执行操作 → 提交(需获得批准)。提交前的更改都只是草稿;若未提交,更改将永久丢失。
事务协议(始终按以下顺序执行)
Canva:start-editing-transaction— 传入design_id。记住返回的transaction_id和pages数组;后续调用都需要这两项。务必向用户展示此处返回的缩略图。Canva:perform-editing-operations— 应用编辑。传入transaction_id、上一步响应中的pages数组、要修改的第一页的page_index,以及operations数组。尽可能在一次调用中批量执行多项操作。Canva:commit-editing-transaction— 保存。请参阅下方的审批关卡。提交后,transaction_id将失效;新的编辑需要开启新事务。Canva:cancel-editing-transaction— 放弃草稿,而非保存(例如,用户拒绝预览,或你开启事务只是为了查看设计)。
功能 — API 能做和不能做的事
能做(perform-editing-operations 上的操作)
- 文本内容:
replace_text(整个元素)、find_and_replace_text(子字符串) - 文本格式(
format_text):字号、字重(常规/粗体)、样式(常规/斜体)、颜色、对齐方式、行高、下划线、删除线、链接、列表级别/标记 - 媒体:
update_fill(替换图片/视频)、insert_fill(添加图片/视频)、delete_element - 布局:
position_element、resize_element - 元数据:
update_title - 自动填充映射:
update_autofill_field(仅适用于固定页面设计)
不能做
- 更改字体系列/字型(只能更改字号、字重、样式)
- 添加新的文本元素(只能插入媒体,不能添加新的文本框)
- 更改背景颜色或渐变
- 添加、删除或重新排列页面/幻灯片
- 修改动画、过渡效果或元素不透明度(新插入的填充除外)
- 编组/取消编组元素,或重新设置形状样式(只能编辑形状内的文本)
如果用户要求的更改属于“不能做”列表,请告知用户必须在 Canva 编辑器中手动完成 — 不要尝试变通处理。
响应式页面 — 受限操作集
某些页面返回时会标记为 is_responsive: true。此类页面仅允许执行以下操作:
update_title、replace_text、update_fill、delete_element、find_and_replace_text。
调用 perform-editing-operations 前,请检查 pages 数组。如果有任何操作会在响应式页面上执行不支持的操作(例如 format_text、position_element、resize_element、insert_fill),请勿调用 — 告知用户该页面不支持此操作,并提供替代方案。
提交审批关卡(必需)
commit-editing-transaction 会使更改永久生效。提交前,你必须向用户准确展示更改内容(以及预览缩略图),并获得明确批准 — 例如:“这是预览。要将这些更改保存到设计中吗?”等待用户明确答复“是”。
- 未获批准时,不得提交。
- 提交调用成功前,不得告知用户更改已保存。
- 成功提交后,向用户提供可直接打开 Canva 设计的链接。
- 如果提交失败,所有更改都会丢失 — 请开启新事务并重试。
编写技能时请注意:如果某项技能已针对一批更改预先征求过一次批准(例如
canva-implement-feedback),则应将该批准视为同时涵盖提交,不要再次询问。请遵循该技能自身的确认规则;以上关卡是直接临时编辑时的默认规则。
工作流
步骤 1:解析设计
- 短链接(
canva.link/...)→ 调用Canva:resolve-shortlink获取 URL。 - 完整的 Canva URL → 提取设计 ID(
/design/后面的部分)。 - 原始设计 ID(以
D开头)→ 直接使用;不要搜索。 - 未提供任何内容 → 请用户提供设计 ID 或链接。
步骤 2:启动事务并检查
调用 Canva:start-editing-transaction。显示缩略图。使用返回的内容找到需要操作的准确 element_id。(如果只需要查看,则调用 cancel-editing-transaction 并停止。)
步骤 3:构建并执行操作
将用户的请求转换为具体操作。如果 find_and_replace_text 字符串可能匹配多个位置或上下文,先确认操作范围——询问用户指的是哪些实例。尽可能将所有操作合并到一次 perform-editing-operations 调用中。
步骤 4:预览并提交
显示操作后的缩略图,并用通俗易懂的语言列出更改内容。征求用户批准,然后调用 commit-editing-transaction。分享编辑链接。
规则
- 始终记住并在事务中重复使用
transaction_id和pages数组。 - 不要在未告知用户其草稿已被丢弃的情况下,让事务处于未提交状态。
- 对于破坏性操作(
delete_element、大范围find_and_replace_text),执行前先确认范围。 - 优先使用一次批量
perform-editing-operations调用,而不是多次执行小操作。