Canva Automation via Rube MCP
Automate Canva design operations through Composio's Canva toolkit via Rube MCP.
Toolkit docs: composio.dev/toolkits/canva
Prerequisites
-
Rube MCP must be connected (RUBE_SEARCH_TOOLS available)
-
Active Canva connection via RUBE_MANAGE_CONNECTIONS with toolkit canva
-
Always call RUBE_SEARCH_TOOLS first to get current tool schemas
Setup
Get Rube MCP: Add https://rube.app/mcp as an MCP server in your client configuration. No API keys needed — just add the endpoint and it works.
-
Verify Rube MCP is available by confirming RUBE_SEARCH_TOOLS responds
-
Call RUBE_MANAGE_CONNECTIONS with toolkit canva
-
If connection is not ACTIVE, follow the returned auth link to complete Canva OAuth
-
Confirm connection status shows ACTIVE before running any workflows
Core Workflows
- List and Browse Designs
When to use: User wants to find existing designs or browse their Canva library
Tool sequence:
- CANVA_LIST_USER_DESIGNS
- List all designs with optional filters [Required]
Key parameters:
-
query : Search term to filter designs by name
-
continuation : Pagination token from previous response
-
ownership : Filter by 'owned', 'shared', or 'any'
-
sort_by : Sort field (e.g., 'modified_at', 'title')
Pitfalls:
-
Results are paginated; follow continuation token until absent
-
Deleted designs may still appear briefly; check design status
-
Search is substring-based, not fuzzy matching
- Create and Design
When to use: User wants to create a new Canva design from scratch or from a template
Tool sequence:
-
CANVA_ACCESS_USER_SPECIFIC_BRAND_TEMPLATES_LIST
-
Browse available brand templates [Optional]
-
CANVA_CREATE_CANVA_DESIGN_WITH_OPTIONAL_ASSET
-
Create a new design [Required]
Key parameters:
-
design_type : Type of design (e.g., 'Presentation', 'Poster', 'SocialMedia')
-
title : Name for the new design
-
asset_id : Optional asset to include in the design
-
width / height : Custom dimensions in pixels
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
- Upload Assets
When to use: User wants to upload images or files to Canva for use in designs
Tool sequence:
-
CANVA_CREATE_ASSET_UPLOAD_JOB
-
Initiate the asset upload [Required]
-
CANVA_FETCH_ASSET_UPLOAD_JOB_STATUS
-
Poll until upload completes [Required]
Key parameters:
-
name : Display name for the asset
-
url : Public URL of the file to upload (for URL-based uploads)
-
job_id : Upload job ID returned from step 1 (for status polling)
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 job_id from CREATE returns the ID needed for status polling
-
Status values: 'in_progress', 'success', 'failed'
- Export Designs
When to use: User wants to download or export a Canva design as PDF, PNG, or other format
Tool sequence:
-
CANVA_LIST_USER_DESIGNS
-
Find the design to export [Prerequisite]
-
CANVA_CREATE_CANVA_DESIGN_EXPORT_JOB
-
Start the export process [Required]
-
CANVA_GET_DESIGN_EXPORT_JOB_RESULT
-
Poll until export completes and get download URL [Required]
Key parameters:
-
design_id : ID of the design to export
-
format : Export format ('pdf', 'png', 'jpg', 'svg', 'mp4', 'gif', 'pptx')
-
pages : Specific page numbers to export (array)
-
quality : Export quality ('regular', 'high')
-
job_id : Export job ID for polling status
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
- Organize with Folders
When to use: User wants to create folders or organize designs into folders
Tool sequence:
-
CANVA_POST_FOLDERS
-
Create a new folder [Required]
-
CANVA_MOVE_ITEM_TO_SPECIFIED_FOLDER
-
Move designs into folders [Optional]
Key parameters:
-
name : Folder name
-
parent_folder_id : Parent folder for nested organization
-
item_id : ID of the design or asset to move
-
folder_id : Target 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
- Autofill from Brand Templates
When to use: User wants to generate designs by filling brand template placeholders with data
Tool sequence:
-
CANVA_ACCESS_USER_SPECIFIC_BRAND_TEMPLATES_LIST
-
List available brand templates [Required]
-
CANVA_INITIATE_CANVA_DESIGN_AUTOFILL_JOB
-
Start autofill with data [Required]
Key parameters:
-
brand_template_id : ID of the brand template to use
-
title : Title for the generated design
-
data : Key-value mapping of placeholder names to replacement values
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)
Common Patterns
Async Job Pattern
Many Canva operations are asynchronous:
- Initiate job (upload, export, autofill) -> get job_id
- Poll status endpoint with job_id every 2-3 seconds
- Check for 'success' or 'failed' status
- On success, extract result (asset_id, download_url, design_id)
ID Resolution
Design name -> Design ID:
- Call CANVA_LIST_USER_DESIGNS with query=design_name
- Find matching design in results
- Extract id field
Brand template name -> Template ID:
- Call CANVA_ACCESS_USER_SPECIFIC_BRAND_TEMPLATES_LIST
- Find template by name
- Extract brand_template_id
Pagination
-
Check response for continuation token
-
Pass token in next request's continuation parameter
-
Continue until continuation is absent or empty
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 data key
-
Job status responses include different fields based on completion state
-
Parse defensively with fallbacks for optional fields
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