skills/sickn33/canva-automation/SKILL.md
Automate Canva tasks via Rube MCP (Composio): designs, exports, folders, brand templates, autofill. Always search tools first for current schemas.
npx skillsauth add aiskillstore/marketplace canva-automationInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Automate Canva design operations through Composio's Canva toolkit via Rube MCP.
RUBE_MANAGE_CONNECTIONS with toolkit canvaRUBE_SEARCH_TOOLS first to get current tool schemasGet 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.
RUBE_SEARCH_TOOLS respondsRUBE_MANAGE_CONNECTIONS with toolkit canvaWhen 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 namecontinuation: Pagination token from previous responseownership: Filter by 'owned', 'shared', or 'any'sort_by: Sort field (e.g., 'modified_at', 'title')Pitfalls:
continuation token until absentWhen 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 designasset_id: Optional asset to include in the designwidth / height: Custom dimensions in pixelsPitfalls:
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 asseturl: Public URL of the file to upload (for URL-based uploads)job_id: Upload job ID returned from step 1 (for status polling)Pitfalls:
job_id from CREATE returns the ID needed for status pollingWhen 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 exportformat: 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 statusPitfalls:
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 nameparent_folder_id: Parent folder for nested organizationitem_id: ID of the design or asset to movefolder_id: Target folder IDPitfalls:
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 usetitle: Title for the generated designdata: Key-value mapping of placeholder names to replacement valuesPitfalls:
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)
Design name -> Design ID:
1. Call CANVA_LIST_USER_DESIGNS with query=design_name
2. Find matching design in results
3. Extract id field
Brand template name -> Template ID:
1. Call CANVA_ACCESS_USER_SPECIFIC_BRAND_TEMPLATES_LIST
2. Find template by name
3. Extract brand_template_id
continuation tokencontinuation parametercontinuation is absent or emptyAsync Operations:
Asset Management:
Rate Limits:
Response Parsing:
data key| 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 |
development
Apple Human Interface Guidelines for content display components. Use this skill when the user asks about charts component, collection view, image view, web view, color well, image well, activity view, lockup, data visualization, content display, displaying images, rendering web content, color pickers, or presenting collections of items in Apple apps. Also use when the user says how should I display charts, what's the best way to show images, should I use a web view, how do I build a grid of items, what component shows media, or how do I present a share sheet. Cross-references: hig-foundations for color/typography/accessibility, hig-patterns for data visualization patterns, hig-components-layout for structural containers, hig-platforms for platform-specific component behavior.
tools
Automate HelpDesk tasks via Rube MCP (Composio): list tickets, manage views, use canned responses, and configure custom fields. Always search tools first for current schemas.
testing
Expert Haskell engineer specializing in advanced type systems, pure functional design, and high-reliability software. Use PROACTIVELY for type-level programming, concurrency, and architecture guidance.
tools
GraphQL gives clients exactly the data they need - no more, no less. One endpoint, typed schema, introspection. But the flexibility that makes it powerful also makes it dangerous. Without proper controls, clients can craft queries that bring down your server. This skill covers schema design, resolvers, DataLoader for N+1 prevention, federation for microservices, and client integration with Apollo/urql. Key insight: GraphQL is a contract. The schema is the API documentation. Design it carefully.