mcpField
C
canva-edit-design

canva-edit-design

github.com/canva-sdks设计与 UI138291 次安装5 天前更新
代码仓库

关于 canva-edit-design

canva-edit-design 为现有 Canva 设计提供事务式编辑流程,草稿需经用户批准后才会提交。适合需要安全修改文本、媒体、布局或元数据的用户,并明确列出不支持的编辑类型。

主要功能

  1. 01通过事务开始、编辑、提交或取消
  2. 02修改文本内容与格式
  3. 03替换、插入或删除媒体元素
  4. 04调整元素位置和尺寸
  5. 05更新标题及自动填充映射
  6. 06限制响应式页面的可用操作

适用场景

  1. 01替换设计中的文本或图片
  2. 02调整元素布局并预览修改
  3. 03确认删除或批量替换的范围
  4. 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 技能都应遵循此确切协议:开始事务 → 执行操作 → 提交(需获得批准)。提交前的更改都只是草稿;若未提交,更改将永久丢失。

事务协议(始终按以下顺序执行)

  1. Canva:start-editing-transaction — 传入 design_id。记住返回的 transaction_id 和 pages 数组;后续调用都需要这两项。务必向用户展示此处返回的缩略图。
  2. Canva:perform-editing-operations — 应用编辑。传入 transaction_id、上一步响应中的 pages 数组、要修改的第一页的 page_index,以及 operations 数组。尽可能在一次调用中批量执行多项操作。
  3. Canva:commit-editing-transaction — 保存。请参阅下方的审批关卡。提交后,transaction_id 将失效;新的编辑需要开启新事务。
  4. 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 调用,而不是多次执行小操作。

评论

支持 Markdown