关于 canva-automation
canva-automation 是一项技能,通过 Rube MCP 使用 Composio 的 Canva 工具包执行设计任务。它涵盖浏览、创建、整理、上传、导出和自动填充设计,并要求检查连接状态及异步任务进度。
主要功能
- 01浏览和搜索设计
- 02创建设计并使用模板
- 03上传素材并检查任务状态
- 04以支持的格式导出设计
- 05使用文件夹整理设计
- 06自动填充品牌模板
适用场景
- 01在 Canva 资料库中查找设计
- 02使用素材创建设计
- 03将设计导出为文件
- 04根据品牌模板生成设计
MCP 相关
该技能通过配置为 https://rube.app/mcp 的 Rube MCP 访问 Composio 的 Canva 工具包。执行工作流前需检查实时工具架构,并确保 Canva 连接处于活动状态。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ sickn33/ agentic-awesome-skills --skill canva-automation安装后在 Claude Code 中输入/canva-automation确认已加载。
详细介绍
通过 Rube MCP 自动化 Canva
通过 Rube MCP 使用 Composio 的 Canva 工具包自动执行 Canva 设计操作。
前提条件
- 必须已连接 Rube MCP(可使用 RUBE_SEARCH_TOOLS)
- 通过
RUBE_MANAGE_CONNECTIONS建立有效的 Canva 连接,工具包为canva - 始终先调用
RUBE_SEARCH_TOOLS,获取当前工具架构
设置
获取 Rube MCP:在客户端配置中添加 https://rube.app/mcp 作为 MCP 服务。按照宿主的身份验证和信任设置进行操作;仅配置端点并不能建立有效的 Canva 授权。
- 确认
RUBE_SEARCH_TOOLS有响应,以验证 Rube MCP 可用 - 使用工具包
canva调用RUBE_MANAGE_CONNECTIONS - 如果连接状态不是 ACTIVE,请打开返回的授权链接,完成 Canva OAuth
- 运行任何工作流前,确认连接状态显示为 ACTIVE
操作边界
有可用的已连接账户时,请使用该账户。安装客户端/进行 OAuth 需要获得相应用户授权;切勿泄露凭据。更改设计前,请确认具体的设计/文件夹;仅上传获准用于此服务的素材。不要仅为提供 URL 而将私有素材设为公开。请妥善保管有时效限制的导出链接。为作业轮询设置超时;写入结果不确定时,请先检查作业/项目状态,再重试以避免重复。工具名称/参数示例仅供参考;应以发现的实时架构为准。
核心工作流
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键下 - 任务状态响应会根据完成状态包含不同字段
- 采用防御性解析,并为可选字段设置回退值
快速参考
| 任务 | 工具 Slug | 关键参数 |
|---|---|---|
| 列出设计 | CANVA_LIST_USER_DESIGNS | query, continuation |
| 创建设计 | CANVA_CREATE_CANVA_DESIGN_WITH_OPTIONAL_ASSET | design_type, title |
| 上传素材 | CANVA_CREATE_ASSET_UPLOAD_JOB | name, url |
| 检查上传 | CANVA_FETCH_ASSET_UPLOAD_JOB_STATUS | job_id |
| 导出设计 | CANVA_CREATE_CANVA_DESIGN_EXPORT_JOB | design_id, format |
| 获取导出 | CANVA_GET_DESIGN_EXPORT_JOB_RESULT | job_id |
| 创建文件夹 | CANVA_POST_FOLDERS | name, parent_folder_id |
| 移动到文件夹 | CANVA_MOVE_ITEM_TO_SPECIFIED_FOLDER | item_id, folder_id |
| 列出模板 | CANVA_ACCESS_USER_SPECIFIC_BRAND_TEMPLATES_LIST | (无) |
| 自动填充模板 | CANVA_INITIATE_CANVA_DESIGN_AUTOFILL_JOB | brand_template_id, data |
何时使用
本技能适用于执行概述中描述的工作流或操作。
限制
- 仅当任务与上述范围明确匹配时才使用本技能。
- 请勿将输出视为特定环境验证、测试或专家评审的替代品。
- 如果缺少必需的输入、权限、安全边界或成功标准,请停止并请求澄清。