canva-automation
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseCanva Automation via Rube MCP
通过Rube MCP实现Canva自动化
Automate Canva design operations through Composio's Canva toolkit via Rube MCP.
Toolkit docs: composio.dev/toolkits/canva
通过Composio的Canva工具包,借助Rube MCP自动化Canva设计操作。
Prerequisites
前提条件
- Rube MCP must be connected (RUBE_SEARCH_TOOLS available)
- Active Canva connection via with toolkit
RUBE_MANAGE_CONNECTIONScanva - Always call first to get current tool schemas
RUBE_SEARCH_TOOLS
- 必须已连接Rube MCP(需提供RUBE_SEARCH_TOOLS)
- 通过并使用工具包
RUBE_MANAGE_CONNECTIONS完成Canva的激活连接canva - 请始终先调用以获取最新的工具模式
RUBE_SEARCH_TOOLS
Setup
设置步骤
Get Rube MCP: Add as an MCP server in your client configuration. No API keys needed — just add the endpoint and it works.
https://rube.app/mcp- Verify Rube MCP is available by confirming responds
RUBE_SEARCH_TOOLS - Call with toolkit
RUBE_MANAGE_CONNECTIONScanva - If connection is not ACTIVE, follow the returned auth link to complete Canva OAuth
- Confirm connection status shows ACTIVE before running any workflows
获取Rube MCP:在客户端配置中添加作为MCP服务器。无需API密钥 — 只需添加端点即可使用。
https://rube.app/mcp- 确认可响应,以此验证Rube MCP是否可用
RUBE_SEARCH_TOOLS - 调用并指定工具包
RUBE_MANAGE_CONNECTIONScanva - 如果连接状态未显示为ACTIVE,请按照返回的授权链接完成Canva OAuth认证
- 在运行任何工作流之前,确认连接状态显示为ACTIVE
Core Workflows
核心工作流
1. List and Browse Designs
1. 列出并浏览设计
When to use: User wants to find existing designs or browse their Canva library
Tool sequence:
- - List all designs with optional filters [Required]
CANVA_LIST_USER_DESIGNS
Key parameters:
- : Search term to filter designs by name
query - : Pagination token from previous response
continuation - : Filter by 'owned', 'shared', or 'any'
ownership - : Sort field (e.g., 'modified_at', 'title')
sort_by
Pitfalls:
- Results are paginated; follow token until absent
continuation - Deleted designs may still appear briefly; check design status
- Search is substring-based, not fuzzy matching
适用场景:用户想要查找现有设计或浏览其Canva资源库
工具调用序列:
- - 列出所有设计,可选择添加筛选条件 [必填]
CANVA_LIST_USER_DESIGNS
关键参数:
- : 用于按名称筛选设计的搜索词
query - : 上一次响应返回的分页令牌
continuation - : 按“owned(自有)”、“shared(共享)”或“any(全部)”筛选
ownership - : 排序字段(例如'modified_at'、'title')
sort_by
注意事项:
- 结果是分页的;需跟随令牌直到其不存在
continuation - 已删除的设计可能仍会短暂显示;请检查设计状态
- 搜索是基于子字符串的,不支持模糊匹配
2. Create and Design
2. 创建与设计
When to use: User wants to create a new Canva design from scratch or from a template
Tool sequence:
- - Browse available brand templates [Optional]
CANVA_ACCESS_USER_SPECIFIC_BRAND_TEMPLATES_LIST - - Create a new design [Required]
CANVA_CREATE_CANVA_DESIGN_WITH_OPTIONAL_ASSET
Key parameters:
- : Type of design (e.g., 'Presentation', 'Poster', 'SocialMedia')
design_type - : Name for the new design
title - : Optional asset to include in the design
asset_id - /
width: Custom dimensions in pixelsheight
Pitfalls:
- Design type must match Canva's predefined types exactly
- Custom dimensions have minimum and maximum limits
- Asset must be uploaded first via CANVA_CREATE_ASSET_UPLOAD_JOB before referencing
适用场景:用户想要从头开始或基于模板创建新的Canva设计
工具调用序列:
- - 浏览可用的品牌模板 [可选]
CANVA_ACCESS_USER_SPECIFIC_BRAND_TEMPLATES_LIST - - 创建新设计 [必填]
CANVA_CREATE_CANVA_DESIGN_WITH_OPTIONAL_ASSET
关键参数:
- : 设计类型(例如'Presentation'、'Poster'、'SocialMedia')
design_type - : 新设计的名称
title - : 要包含在设计中的可选资产ID
asset_id - /
width: 自定义尺寸(像素)height
注意事项:
- 设计类型必须与Canva预定义的类型完全匹配
- 自定义尺寸有最小和最大限制
- 在引用资产之前,必须先通过上传资产
CANVA_CREATE_ASSET_UPLOAD_JOB
3. Upload Assets
3. 上传资产
When to use: User wants to upload images or files to Canva for use in designs
Tool sequence:
- - Initiate the asset upload [Required]
CANVA_CREATE_ASSET_UPLOAD_JOB - - Poll until upload completes [Required]
CANVA_FETCH_ASSET_UPLOAD_JOB_STATUS
Key parameters:
- : Display name for the asset
name - : Public URL of the file to upload (for URL-based uploads)
url - : Upload job ID returned from step 1 (for status polling)
job_id
Pitfalls:
- Upload is asynchronous; you MUST poll the job status until it completes
- Supported formats include PNG, JPG, SVG, MP4, GIF
- File size limits apply; large files may take longer to process
- The from CREATE returns the ID needed for status polling
job_id - Status values: 'in_progress', 'success', 'failed'
适用场景:用户想要将图片或文件上传到Canva以用于设计
工具调用序列:
- - 启动资产上传 [必填]
CANVA_CREATE_ASSET_UPLOAD_JOB - - 轮询直到上传完成 [必填]
CANVA_FETCH_ASSET_UPLOAD_JOB_STATUS
关键参数:
- : 资产的显示名称
name - : 要上传的文件的公共URL(基于URL的上传)
url - : 步骤1返回的上传任务ID(用于状态轮询)
job_id
注意事项:
- 上传是异步的;必须轮询任务状态直到完成
- 支持的格式包括PNG、JPG、SVG、MP4、GIF
- 存在文件大小限制;大文件可能需要更长的处理时间
- 步骤返回的
CREATE是状态轮询所需的IDjob_id - 状态值:'in_progress(进行中)'、'success(成功)'、'failed(失败)'
4. Export Designs
4. 导出设计
When to use: User wants to download or export a Canva design as PDF, PNG, or other format
Tool sequence:
- - Find the design to export [Prerequisite]
CANVA_LIST_USER_DESIGNS - - Start the export process [Required]
CANVA_CREATE_CANVA_DESIGN_EXPORT_JOB - - Poll until export completes and get download URL [Required]
CANVA_GET_DESIGN_EXPORT_JOB_RESULT
Key parameters:
- : ID of the design to export
design_id - : Export format ('pdf', 'png', 'jpg', 'svg', 'mp4', 'gif', 'pptx')
format - : Specific page numbers to export (array)
pages - : Export quality ('regular', 'high')
quality - : Export job ID for polling status
job_id
Pitfalls:
- Export is asynchronous; you MUST poll the job result until it completes
- Download URLs from completed exports expire after a limited time
- Large designs with many pages take longer to export
- Not all formats support all design types (e.g., MP4 only for animations)
- Poll interval: wait 2-3 seconds between status checks
适用场景:用户想要将Canva设计下载或导出为PDF、PNG或其他格式
工具调用序列:
- - 找到要导出的设计 [前提步骤]
CANVA_LIST_USER_DESIGNS - - 启动导出流程 [必填]
CANVA_CREATE_CANVA_DESIGN_EXPORT_JOB - - 轮询直到导出完成并获取下载URL [必填]
CANVA_GET_DESIGN_EXPORT_JOB_RESULT
关键参数:
- : 要导出的设计ID
design_id - : 导出格式('pdf'、'png'、'jpg'、'svg'、'mp4'、'gif'、'pptx')
format - : 要导出的特定页码(数组)
pages - : 导出质量('regular'、'high')
quality - : 用于轮询状态的导出任务ID
job_id
注意事项:
- 导出是异步的;必须轮询任务结果直到完成
- 完成导出后返回的下载URL会在一段时间后过期
- 包含多个页面的大型设计需要更长的导出时间
- 并非所有格式都支持所有设计类型(例如MP4仅适用于动画设计)
- 轮询间隔:每次状态检查之间等待2-3秒
5. Organize with Folders
5. 使用文件夹整理
When to use: User wants to create folders or organize designs into folders
Tool sequence:
- - Create a new folder [Required]
CANVA_POST_FOLDERS - - Move designs into folders [Optional]
CANVA_MOVE_ITEM_TO_SPECIFIED_FOLDER
Key parameters:
- : Folder name
name - : Parent folder for nested organization
parent_folder_id - : ID of the design or asset to move
item_id - : Target folder ID
folder_id
Pitfalls:
- Folder names must be unique within the same parent folder
- Moving items between folders updates their location immediately
- Root-level folders have no parent_folder_id
适用场景:用户想要创建文件夹或将设计整理到文件夹中
工具调用序列:
- - 创建新文件夹 [必填]
CANVA_POST_FOLDERS - - 将设计移动到文件夹中 [可选]
CANVA_MOVE_ITEM_TO_SPECIFIED_FOLDER
关键参数:
- : 文件夹名称
name - : 用于嵌套组织的父文件夹ID
parent_folder_id - : 要移动的设计或资产的ID
item_id - : 目标文件夹ID
folder_id
注意事项:
- 同一父文件夹下的文件夹名称必须唯一
- 在文件夹之间移动项目会立即更新其位置
- 根级文件夹没有parent_folder_id
6. Autofill from Brand Templates
6. 从品牌模板自动填充
When to use: User wants to generate designs by filling brand template placeholders with data
Tool sequence:
- - List available brand templates [Required]
CANVA_ACCESS_USER_SPECIFIC_BRAND_TEMPLATES_LIST - - Start autofill with data [Required]
CANVA_INITIATE_CANVA_DESIGN_AUTOFILL_JOB
Key parameters:
- : ID of the brand template to use
brand_template_id - : Title for the generated design
title - : Key-value mapping of placeholder names to replacement values
data
Pitfalls:
- Template placeholders must match exactly (case-sensitive)
- Autofill is asynchronous; poll for completion
- Only brand templates support autofill, not regular designs
- Data values must match the expected type for each placeholder (text, image URL)
适用场景:用户想要通过将数据填充到品牌模板占位符来生成设计
工具调用序列:
- - 列出可用的品牌模板 [必填]
CANVA_ACCESS_USER_SPECIFIC_BRAND_TEMPLATES_LIST - - 使用数据启动自动填充 [必填]
CANVA_INITIATE_CANVA_DESIGN_AUTOFILL_JOB
关键参数:
- : 要使用的品牌模板ID
brand_template_id - : 生成的设计的标题
title - : 占位符名称与替换值的键值映射
data
注意事项:
- 模板占位符必须完全匹配(区分大小写)
- 自动填充是异步的;需轮询直到完成
- 仅品牌模板支持自动填充,常规设计不支持
- 数据值必须与每个占位符的预期类型匹配(文本、图片URL)
Common Patterns
常见模式
Async Job Pattern
异步任务模式
Many Canva operations are asynchronous:
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)许多Canva操作是异步的:
1. 启动任务(上传、导出、自动填充)-> 获取job_id
2. 每2-3秒使用job_id轮询状态端点
3. 检查状态是否为'success'或'failed'
4. 成功后,提取结果(asset_id、download_url、design_id)ID Resolution
ID解析
Design name -> Design ID:
1. Call CANVA_LIST_USER_DESIGNS with query=design_name
2. Find matching design in results
3. Extract id fieldBrand template name -> Template ID:
1. Call CANVA_ACCESS_USER_SPECIFIC_BRAND_TEMPLATES_LIST
2. Find template by name
3. Extract brand_template_id设计名称 -> 设计ID:
1. 调用CANVA_LIST_USER_DESIGNS并传入query=design_name
2. 在结果中找到匹配的设计
3. 提取id字段品牌模板名称 -> 模板ID:
1. 调用CANVA_ACCESS_USER_SPECIFIC_BRAND_TEMPLATES_LIST
2. 按名称找到模板
3. 提取brand_template_idPagination
分页
- Check response for token
continuation - Pass token in next request's parameter
continuation - Continue until is absent or empty
continuation
- 检查响应中是否存在令牌
continuation - 将令牌传入下一次请求的参数
continuation - 持续调用直到不存在或为空
continuation
Known Pitfalls
已知注意事项
Async Operations:
- Uploads, exports, and autofills are all asynchronous
- Always poll job status; do not assume immediate completion
- Download URLs from exports expire; use them promptly
Asset Management:
- Assets must be uploaded before they can be used in designs
- Upload job must reach 'success' status before the asset_id is valid
- Supported formats vary; check Canva documentation for current limits
Rate Limits:
- Canva API has rate limits per endpoint
- Implement exponential backoff for bulk operations
- Batch operations where possible to reduce API calls
Response Parsing:
- Response data may be nested under key
data - Job status responses include different fields based on completion state
- Parse defensively with fallbacks for optional fields
异步操作:
- 上传、导出和自动填充都是异步的
- 始终轮询任务状态;不要假设会立即完成
- 导出返回的下载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
| 任务 | 工具标识 | 关键参数 |
|---|---|---|
| 列出设计 | 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 |
由 Composio 提供支持