mcpField
C
canva-automation

canva-automation

github.com/sickn33设计与 UI48.7k142 次安装今天更新
代码仓库

关于 canva-automation

canva-automation 是一项技能,通过 Rube MCP 使用 Composio 的 Canva 工具包执行设计任务。它涵盖浏览、创建、整理、上传、导出和自动填充设计,并要求检查连接状态及异步任务进度。

主要功能

  1. 01浏览和搜索设计
  2. 02创建设计并使用模板
  3. 03上传素材并检查任务状态
  4. 04以支持的格式导出设计
  5. 05使用文件夹整理设计
  6. 06自动填充品牌模板

适用场景

  1. 01在 Canva 资料库中查找设计
  2. 02使用素材创建设计
  3. 03将设计导出为文件
  4. 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 授权。

  1. 确认 RUBE_SEARCH_TOOLS 有响应,以验证 Rube MCP 可用
  2. 使用工具包 canva 调用 RUBE_MANAGE_CONNECTIONS
  3. 如果连接状态不是 ACTIVE,请打开返回的授权链接,完成 Canva OAuth
  4. 运行任何工作流前,确认连接状态显示为 ACTIVE

操作边界

有可用的已连接账户时,请使用该账户。安装客户端/进行 OAuth 需要获得相应用户授权;切勿泄露凭据。更改设计前,请确认具体的设计/文件夹;仅上传获准用于此服务的素材。不要仅为提供 URL 而将私有素材设为公开。请妥善保管有时效限制的导出链接。为作业轮询设置超时;写入结果不确定时,请先检查作业/项目状态,再重试以避免重复。工具名称/参数示例仅供参考;应以发现的实时架构为准。

核心工作流

1. 列出和浏览设计

适用场景:用户想查找现有设计或浏览其 Canva 资源库

工具调用顺序:

  1. CANVA_LIST_USER_DESIGNS — 列出所有设计,可使用筛选条件 [必需]

关键参数:

  • query:按名称筛选设计的搜索词
  • continuation:上次响应中的分页令牌
  • ownership:按“owned”“shared”或“any”筛选
  • sort_by:排序字段(例如“modified_at”“title”)

注意事项:

  • 结果采用分页形式;请持续使用 continuation 令牌,直至其缺失
  • 已删除的设计可能会短暂显示;请检查设计状态
  • 搜索采用子字符串匹配,不支持模糊匹配
2. 创建和设计

适用场景:用户想从头开始或使用模板创建新的 Canva 设计

工具调用顺序:

  1. CANVA_ACCESS_USER_SPECIFIC_BRAND_TEMPLATES_LIST — 浏览可用的品牌模板 [可选]
  2. 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,以便在设计中使用

工具调用顺序:

  1. CANVA_CREATE_ASSET_UPLOAD_JOB — 启动素材上传 [必需]
  2. 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 或其他格式

工具调用顺序:

  1. CANVA_LIST_USER_DESIGNS - 查找要导出的设计 [前置条件]
  2. CANVA_CREATE_CANVA_DESIGN_EXPORT_JOB - 启动导出流程 [必需]
  3. CANVA_GET_DESIGN_EXPORT_JOB_RESULT - 轮询直至导出完成并获取下载 URL [必需]

关键参数:

  • design_id:要导出的设计 ID
  • format:导出格式('pdf'、'png'、'jpg'、'svg'、'mp4'、'gif'、'pptx')
  • pages:要导出的特定页码(数组)
  • quality:导出质量('regular'、'high')
  • job_id:用于轮询状态的导出任务 ID

注意事项:

  • 导出是异步的;必须轮询任务结果,直至任务完成
  • 已完成导出的下载 URL 会在一段时间后过期
  • 页数较多的大型设计需要更长时间导出
  • 并非所有格式都支持所有设计类型(例如,MP4 仅适用于动画)
  • 轮询间隔:每次检查状态之间等待 2-3 秒
5. 使用文件夹整理

适用场景:用户想创建文件夹或将设计整理到文件夹中

工具调用顺序:

  1. CANVA_POST_FOLDERS - 创建新文件夹 [必需]
  2. CANVA_MOVE_ITEM_TO_SPECIFIED_FOLDER - 将设计移入文件夹 [可选]

关键参数:

  • name:文件夹名称
  • parent_folder_id:用于嵌套整理的父文件夹
  • item_id:要移动的设计或素材 ID
  • folder_id:目标文件夹 ID

注意事项:

  • 同一父文件夹中的文件夹名称必须唯一
  • 在文件夹之间移动项目会立即更新其位置
  • 根级文件夹没有 parent_folder_id
6. 使用品牌模板自动填充

适用场景:用户想通过向品牌模板占位符填入数据来生成设计

工具调用顺序:

  1. CANVA_ACCESS_USER_SPECIFIC_BRAND_TEMPLATES_LIST - 列出可用的品牌模板 [必需]
  2. CANVA_INITIATE_CANVA_DESIGN_AUTOFILL_JOB - 使用数据启动自动填充 [必需]

关键参数:

  • brand_template_id:要使用的品牌模板 ID
  • title:生成的设计标题
  • 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_DESIGNSquery, continuation
创建设计CANVA_CREATE_CANVA_DESIGN_WITH_OPTIONAL_ASSETdesign_type, title
上传素材CANVA_CREATE_ASSET_UPLOAD_JOBname, url
检查上传CANVA_FETCH_ASSET_UPLOAD_JOB_STATUSjob_id
导出设计CANVA_CREATE_CANVA_DESIGN_EXPORT_JOBdesign_id, format
获取导出CANVA_GET_DESIGN_EXPORT_JOB_RESULTjob_id
创建文件夹CANVA_POST_FOLDERSname, parent_folder_id
移动到文件夹CANVA_MOVE_ITEM_TO_SPECIFIED_FOLDERitem_id, folder_id
列出模板CANVA_ACCESS_USER_SPECIFIC_BRAND_TEMPLATES_LIST(无)
自动填充模板CANVA_INITIATE_CANVA_DESIGN_AUTOFILL_JOBbrand_template_id, data

何时使用

本技能适用于执行概述中描述的工作流或操作。

限制

  • 仅当任务与上述范围明确匹配时才使用本技能。
  • 请勿将输出视为特定环境验证、测试或专家评审的替代品。
  • 如果缺少必需的输入、权限、安全边界或成功标准,请停止并请求澄清。

评论

支持 Markdown