mcpField
C
canva-automation

canva-automation

github.com/composiohq设计与 UI78.3k76 次安装14 周前更新
代码仓库

关于 canva-automation

canva-automation 是通过 Rube MCP 与 Composio Canva toolkit 执行 Canva 设计操作的技能,适用于管理设计素材与文件的工作流。它支持创建、导出、归档设计,以及从品牌模板填充内容。

主要功能

  1. 01浏览设计并按名称筛选
  2. 02从头或基于模板创建设计
  3. 03上传设计素材
  4. 04导出多种格式
  5. 05创建文件夹并整理设计
  6. 06用数据填充品牌模板

适用场景

  1. 01查找 Canva 设计库中的现有作品
  2. 02创建并导出宣传或演示设计
  3. 03上传文件作为设计素材
  4. 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 密钥,只需添加此端点即可使用。

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

核心工作流

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 键下
  • 任务状态响应会根据完成状态包含不同字段
  • 采用防御性解析,并为可选字段设置回退值

Quick Reference

TaskTool SlugKey Params
List designsCANVA_LIST_USER_DESIGNSquery, continuation
Create designCANVA_CREATE_CANVA_DESIGN_WITH_OPTIONAL_ASSETdesign_type, title
Upload assetCANVA_CREATE_ASSET_UPLOAD_JOBname, url
Check uploadCANVA_FETCH_ASSET_UPLOAD_JOB_STATUSjob_id
Export designCANVA_CREATE_CANVA_DESIGN_EXPORT_JOBdesign_id, format
Get exportCANVA_GET_DESIGN_EXPORT_JOB_RESULTjob_id
Create folderCANVA_POST_FOLDERSname, parent_folder_id
Move to folderCANVA_MOVE_ITEM_TO_SPECIFIED_FOLDERitem_id, folder_id
List templatesCANVA_ACCESS_USER_SPECIFIC_BRAND_TEMPLATES_LIST(none)
Autofill templateCANVA_INITIATE_CANVA_DESIGN_AUTOFILL_JOBbrand_template_id, data

Powered by Composio

评论

支持 Markdown