📦 Canva Automation — Canva 自动化工具
v0.1.0通过 Rube MCP(Composio)自动化 Canva 任务,包括设计、导出、文件夹、品牌模板和自动填充。始终先搜索工具以获取当前架构。
1· 1.8k·6 当前·6 累计
安全扫描
OpenClaw
安全
medium confidence该技能的要求和运行指令与其声明的目的(通过第三方 MCP 自动化 Canva)一致,但依赖于第三方 MCP 端点和 OAuth 流程,在启用前应信任。
评估建议
该技能在内部一致性上适合通过第三方 MCP 自动化 Canva,但应在启用前验证和信任 MCP 提供商。具体包括:(1)确认 rube.app 是合法服务并审查其隐私/安全文档;(2)运行 RUBE_MANAGE_CONNECTIONS 时检查 Canva 的 OAuth 同意屏幕和范围,若可能限制访问;(3)使用非生产或一次性 Canva 账户进行测试;(4)使用推荐的 RUBE_SEARCH_TOOLS 调用来检查工具架构;(5)如果需要更高的保证,请请求技能作者/源代码或官方主页,避免添加未知的 MCP 端点到用于敏感账户的客户端。...详细分析 ▾
✓ 用途与能力
名称/描述(Canva 自动化)与指令匹配:所有操作通过 Rube MCP 引用 Canva 工具调用(列出设计、创建、上传、导出、文件夹、自动填充)。没有超出范围的请求(无环境变量,无无关二进制文件)适用于连接器风格的技能。
ℹ 指令范围
指令仅限于使用 Rube MCP 工具调用和 OAuth 管理的 Canva 连接;它们不要求代理读取本地文件或无关环境变量。注意:技能告诉您添加外部 MCP 端点(https://rube.app/mcp)并遵循返回的身份验证链接——这授予 MCP 服务器提供工具架构和触发 OAuth 流的能力,这是预期的但值得验证的。
✓ 安装机制
无安装规格和代码文件 — 仅指令。这样最小化了磁盘安装风险;唯一的运行时行为是使用平台的 MCP/工具 API。
✓ 凭证需求
技能本身不请求环境变量、凭证或配置路径。Canva 的 OAuth 通过如描述的 RUBE_MANAGE_CONNECTIONS 处理,这对于该集成是合适的。
✓ 持久化与权限
默认 always:false 且无自修改/安装操作。技能依赖代理调用外部工具(技能的正常行为)。没有请求更改其他技能或系统范围设置。
安全有层次,运行前请审查代码。
运行时依赖
无特殊依赖
版本
latestv0.1.02026/2/7
初始发布:通过 Rube MCP 自动化 Canva 任务 - 支持创建、列出和导出 Canva 设计、品牌模板和资产。 - 启用资产上传(带有异步作业处理和轮询)。 - 使用文件夹组织设计并在文件夹之间移动资产。 - 使用品牌模板和结构化数据输入自动填充设计。 - 包含详细的工具使用模式、参数键和已知陷阱以实现无缝 API 工作流。
● 无害
安装命令
点击复制官方npx clawhub@latest install canva-automation
镜像加速npx clawhub@latest install canva-automation --registry https://cn.longxiaskill.com
技能文档
通过 Composio 的 Canva 工具包,借助 Rube MCP 自动化 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 是否可用 - 使用工具包
canva调用RUBE_MANAGE_CONNECTIONS - 如果连接未激活,按照返回的授权链接完成 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. 启动作业(上传、导出、自动填充)-> 获取 job_id
- 每 2-3 秒使用 job_id 轮询状态端点
- 检查 'success' 或 'failed' 状态
- 成功时提取结果(asset_id、download_url、design_id)
ID 解析
设计名称 -> 设计 ID:
1. 使用 query=design_name 调用 CANVA_LIST_USER_DESIGNS
- 在结果中找到匹配的设计
- 提取 id 字段
品牌模板名称 -> 模板 ID:
1. 调用 CANVA_ACCESS_USER_SPECIFIC_BRAND_TEMPLATES_LIST
- 按名称查找模板
- 提取 brand_template_id
分页
- 检查响应中的
continuation令牌 - 在下次请求的
continuation参数中传递令牌 - 继续直到
continuation不存在或为空
已知注意事项
异步操作:
- 上传、导出和自动填充都是异步的
- 始终轮询作业状态;不要假设立即完成
- 导出的下载 URL 会过期;及时使用它们
资源管理:
- 资源必须先上传才能在设计中使用
- 上传作业必须达到 'success' 状态后 asset_id 才有效
- 支持的格式各不相同;查看 Canva 文档了解当前限制
速率限制:
- Canva API 对每个端点有限制
- 对批量操作实施指数退避
- 尽可能批量操作以减少 API 调用
响应解析:
- 响应数据可能嵌套在
data键下 - 作业状态响应根据完成状态包含不同的字段
- 使用可选字段的回退进行防御性解析
快速参考
| 任务 | 工具标识 | 关键参数 |
|---|---|---|
| 列出设计 | 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 |