关于 canva-automation
canva-automation 是通过 Rube MCP 与 Composio Canva toolkit 执行 Canva 设计操作的技能,适用于管理设计素材与文件的工作流。它支持创建、导出、归档设计,以及从品牌模板填充内容。
主要功能
- 01浏览设计并按名称筛选
- 02从头或基于模板创建设计
- 03上传设计素材
- 04导出多种格式
- 05创建文件夹并整理设计
- 06用数据填充品牌模板
适用场景
- 01查找 Canva 设计库中的现有作品
- 02创建并导出宣传或演示设计
- 03上传文件作为设计素材
- 04按品牌模板批量生成设计
MCP 相关
通过 Rube MCP 调用 Composio 的 Canva toolkit;使用前需连接 Canva,并查询当前工具定义。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ composiohq/ awesome-claude-skills --skill canva-automation安装后在 Claude Code 中输入/canva-automation确认已加载。
详细介绍
通过 Rube MCP 实现 Canva 自动化
通过 Rube MCP 使用 Composio 的 Canva 工具包自动执行 Canva 设计操作。
工具包文档:composio.dev/toolkits/canva
前提条件
- 必须已连接 Rube MCP(可用
RUBE_SEARCH_TOOLS) - 通过
RUBE_MANAGE_CONNECTIONS启用有效的 Canva 连接,并指定工具包canva - 务必先调用
RUBE_SEARCH_TOOLS,以获取当前工具架构
设置
获取 Rube MCP:在客户端配置中将 https://rube.app/mcp 添加为 MCP 服务。无需 API 密钥,只需添加此端点即可使用。
- 确认
RUBE_SEARCH_TOOLS有响应,以验证 Rube MCP 可用 - 调用
RUBE_MANAGE_CONNECTIONS,并指定工具包canva - 如果连接状态不是 ACTIVE,请根据返回的授权链接完成 Canva OAuth
- 确认连接状态显示为 ACTIVE 后,再运行任何工作流
核心工作流
1. 列出和浏览设计
适用场景:用户想查找现有设计或浏览其 Canva 资源库
工具调用顺序:
CANVA_LIST_USER_DESIGNS- 列出所有设计,可选择性地应用筛选条件[必需]
关键参数:
query:按名称筛选设计的搜索词continuation:上一条响应中的分页令牌ownership:按“owned”“shared”或“any”筛选sort_by:排序字段(例如,“modified_at”“title”)
注意事项:
- 结果采用分页形式;持续使用
continuation令牌,直到该令牌不再出现 - 已删除的设计可能仍会短暂显示;请检查设计状态
- 搜索采用子字符串匹配,而非模糊匹配
2. 创建和设计
适用场景:用户想从头开始或使用模板创建新的 Canva 设计
工具调用顺序:
CANVA_ACCESS_USER_SPECIFIC_BRAND_TEMPLATES_LIST- 浏览可用的品牌模板[可选]CANVA_CREATE_CANVA_DESIGN_WITH_OPTIONAL_ASSET- 创建新设计[必需]
关键参数:
design_type:设计类型(例如,“Presentation”“Poster”“SocialMedia”)title:新设计的名称asset_id:要在设计中加入的可选资源width/height:以像素为单位的自定义尺寸
注意事项:
- 设计类型必须与 Canva 预定义的类型完全一致
- 自定义尺寸有最大值和最小值限制
- 引用资源前,必须先通过 CANVA_CREATE_ASSET_UPLOAD_JOB 上传该资源
3. 上传资源
适用场景:用户想将图像或文件上传到 Canva,以便在设计中使用
工具调用顺序:
CANVA_CREATE_ASSET_UPLOAD_JOB- 发起资源上传[必需]CANVA_FETCH_ASSET_UPLOAD_JOB_STATUS- 持续轮询,直到上传完成[必需]
关键参数:
name:资源的显示名称url:要上传文件的公开 URL(用于基于 URL 的上传)job_id:第 1 步返回的上传任务 ID(用于轮询状态)
注意事项:
- 上传为异步操作;必须持续轮询任务状态,直到操作完成
- 支持的格式包括 PNG、JPG、SVG、MP4、GIF
- 文件大小有限制;较大的文件可能需要更长的处理时间
- CREATE 返回的
job_id是轮询状态所需的 ID - 状态值:“in_progress”“success”“failed”
4. 导出设计
适用场景:用户想将 Canva 设计下载或导出为 PDF、PNG 或其他格式
工具调用顺序:
CANVA_LIST_USER_DESIGNS- 查找要导出的设计 [前置条件]CANVA_CREATE_CANVA_DESIGN_EXPORT_JOB- 启动导出流程 [必需]CANVA_GET_DESIGN_EXPORT_JOB_RESULT- 轮询直至导出完成并获取下载 URL [必需]
关键参数:
design_id:要导出的设计 IDformat:导出格式('pdf'、'png'、'jpg'、'svg'、'mp4'、'gif'、'pptx')pages:要导出的特定页码(数组)quality:导出质量('regular'、'high')job_id:用于轮询状态的导出任务 ID
注意事项:
- 导出是异步的;必须轮询任务结果,直至任务完成
- 已完成导出的下载 URL 会在一段时间后过期
- 页数较多的大型设计需要更长时间导出
- 并非所有格式都支持所有设计类型(例如,MP4 仅适用于动画)
- 轮询间隔:每次检查状态之间等待 2-3 秒
5. 使用文件夹整理
适用场景:用户想创建文件夹或将设计整理到文件夹中
工具调用顺序:
CANVA_POST_FOLDERS- 创建新文件夹 [必需]CANVA_MOVE_ITEM_TO_SPECIFIED_FOLDER- 将设计移入文件夹 [可选]
关键参数:
name:文件夹名称parent_folder_id:用于嵌套整理的父文件夹item_id:要移动的设计或素材 IDfolder_id:目标文件夹 ID
注意事项:
- 同一父文件夹中的文件夹名称必须唯一
- 在文件夹之间移动项目会立即更新其位置
- 根级文件夹没有 parent_folder_id
6. 使用品牌模板自动填充
适用场景:用户想通过向品牌模板占位符填入数据来生成设计
工具调用顺序:
CANVA_ACCESS_USER_SPECIFIC_BRAND_TEMPLATES_LIST- 列出可用的品牌模板 [必需]CANVA_INITIATE_CANVA_DESIGN_AUTOFILL_JOB- 使用数据启动自动填充 [必需]
关键参数:
brand_template_id:要使用的品牌模板 IDtitle:生成的设计标题data:占位符名称到替换值的键值映射
注意事项:
- 模板占位符必须完全匹配(区分大小写)
- 自动填充是异步的;请轮询直至完成
- 只有品牌模板支持自动填充,普通设计不支持
- 数据值必须与每个占位符的预期类型相符(文本、图片 URL)
常见模式
异步任务模式
许多 Canva 操作都是异步的:
1. Initiate job (upload, export, autofill) -> get job_id
2. Poll status endpoint with job_id every 2-3 seconds
3. Check for 'success' or 'failed' status
4. On success, extract result (asset_id, download_url, design_id)
ID 解析
设计名称 -> 设计 ID:
1. Call CANVA_LIST_USER_DESIGNS with query=design_name
2. Find matching design in results
3. Extract id field
品牌模板名称 -> 模板 ID:
1. Call CANVA_ACCESS_USER_SPECIFIC_BRAND_TEMPLATES_LIST
2. Find template by name
3. Extract brand_template_id
分页
- 检查响应中的
continuation令牌 - 在下一个请求的
continuation参数中传入该令牌 - 持续请求,直到
continuation缺失或为空
已知注意事项
异步操作:
- 上传、导出和自动填充都是异步的
- 始终轮询任务状态;不要假定任务会立即完成
- 导出的下载 URL 会过期;请及时使用
素材管理:
- 素材必须先上传,才能在设计中使用
- 上传任务必须达到 'success' 状态后,asset_id 才有效
- 支持的格式各不相同;请查看 Canva 文档,了解当前限制
速率限制:
- Canva API 对每个端点都有速率限制
- 对批量操作实施指数退避
- 尽可能批量处理操作,以减少 API 调用
响应解析:
- 响应数据可能嵌套在
data键下 - 任务状态响应会根据完成状态包含不同字段
- 采用防御性解析,并为可选字段设置回退值
Quick Reference
| Task | Tool Slug | Key Params |
|---|---|---|
| List designs | CANVA_LIST_USER_DESIGNS | query, continuation |
| Create design | CANVA_CREATE_CANVA_DESIGN_WITH_OPTIONAL_ASSET | design_type, title |
| Upload asset | CANVA_CREATE_ASSET_UPLOAD_JOB | name, url |
| Check upload | CANVA_FETCH_ASSET_UPLOAD_JOB_STATUS | job_id |
| Export design | CANVA_CREATE_CANVA_DESIGN_EXPORT_JOB | design_id, format |
| Get export | CANVA_GET_DESIGN_EXPORT_JOB_RESULT | job_id |
| Create folder | CANVA_POST_FOLDERS | name, parent_folder_id |
| Move to folder | CANVA_MOVE_ITEM_TO_SPECIFIED_FOLDER | item_id, folder_id |
| List templates | CANVA_ACCESS_USER_SPECIFIC_BRAND_TEMPLATES_LIST | (none) |
| Autofill template | CANVA_INITIATE_CANVA_DESIGN_AUTOFILL_JOB | brand_template_id, data |
Powered by Composio