MCP App Store
Design
Canva icon

Canva

by Canva Pty Ltd.

Overview

Browse, summarize, autofill, and even generate new Canva designs directly from Claude. Make Canva a native part of your AI workflow—an AI-powered design agent that helps you create polished visuals faster, with less friction.

Tools

autofill-design

ChatGPT
Generate designs from template. Automatically fill in dynamic content (text, images, etc.) into a brand template using a dataset. The dataset must match the schema defined by the template's dataset. CRITICAL REQUIREMENTS: 1. MUST only be used AFTER 'search-brand-templates' tool identifies the user's chosen template 2. MUST use the brand template id returned from 'search-brand-templates' tool 3. ALWAYS confirm with the user for the template, and call 'get-brand-template-dataset' tool to confirm that the template is non-empty 4. It is INVALID to call this tool without first calling 'search-brand-templates' tool or with an empty template. End-to-end workflow: 1. User asks that they want to generate or create a design from a template. 2. System calls the 'search-brand-templates' tool with non-empty dataset parameter 3. System returns a list of fillable templates to generate or create designs from. 4. User selects one of the templates. 5. System calls 'get-brand-template-dataset' tool to confirm that the designs can be created from the template (ie. its non-empty) 6. System calls this tool with that template, once the template is confirmed by the user. 7. System returns the new design created from the template.

cancel-editing-transaction

ChatGPT
Cancel an editing transaction. This will discard all changes made to the design in the specified editing transaction. Once an editing transaction has been cancelled, the transaction_id for that editing transaction becomes invalid and should no longer be used.

commit-editing-transaction

ChatGPT
Commit an editing transaction. This will save all the changes made to the design in the specified editing transaction. CRITICAL: All edits are in DRAFT and will be PERMANENTLY LOST if this tool is not called. You MUST always show the user what changes were made and ask for their explicit approval before calling this tool — for example: "Would you like me to save these changes to your design?" Wait for their clear approval before proceeding. Do NOT call this tool without user approval. After successfully saving changes, always provide the user with a direct link to open their design in Canva for review. Use the link they gave you or from the get-design tool. If the commit fails, ALL changes made during the transaction are lost and no changes are saved to the actual design. Users must start a new editing transaction to retry any failed operations. Once an editing transaction has been committed, the transaction_id for that editing transaction becomes invalid and should no longer be used.

copy-design

ChatGPT
Create a new Canva design by copying an existing design. Optionally select specific pages to include. Use the search-designs or get-design tools to find a design ID.

create-design-from-brand-template

ChatGPT
Create a new Canva design from a brand template. Optionally select specific pages to include. If the user has already provided a brand template ID (a string starting with "BTM"), call this tool directly with that ID — do NOT call search-brand-templates first. Only use search-brand-templates when no ID has been provided and you need to discover one. If you need to fill template fields with custom data, use the autofill-design tool instead.

create-design-from-candidate

ChatGPT
Create a new Canva design from a generation job candidate ID. This converts an AI-generated design candidate into an editable Canva design. If successful, returns a design summary containing a design ID that can be used with the editing_transaction_tools. To make changes to the design, first call this tool with the candidate_id from generate-design results, then use the returned design_id with start-editing-transaction and subsequent editing tools.

create-folder

ChatGPT
Create a new folder in Canva. You can create it at the root level or inside another folder.

fetch

ChatGPT
Get the content of a doc, presentation, whiteboard, social media post, sheet, and other designs in Canva. You must provide the design ID, which you can find with the 'search' tool. When given a URL to a Canva design, you can extract the design ID from the URL. Do not use web search to get the content of a design as the content is not accessible to the public. Example URL: https://www.canva.com/design/{design_id}.

generate-design

ChatGPT
⚠️ CRITICAL: This tool does NOT support 'presentation' design_type. ⚠️ IMPORTANT EXCLUSION: Do NOT use this tool for presentations after completing the outline review flow with request-outline-review. If the user has already reviewed an outline in the widget, use generate-design-structured instead. ⚠️ For new presentation requests: when prepare-design-generation is available, use prepare-design-generation first. Only consider request-outline-review when prepare-design-generation is unavailable or the user is already in the legacy outline-review flow. Generate professionally designed content in Canva including visual designs (posters, social media posts, flyers) and text-based documents (memos, articles, newsletters, proposals, reports, business plans, requirements documents). Use this tool when the user asks you to write, create, generate, or draft ANY document or visual design. Examples: - "Write a memo..." → use this tool to create a Canva Doc - "Generate a business proposal..." → use this tool to create a Canva Doc - "Draft a product overview..." → use this tool to create a Canva Doc ⚠️ Do NOT use this tool when the user just wants advice, explanations, or information. ⚠️ DO NOT use this tool when the user's message contains a URL and their intent is to create a design FROM that URL — use import-design-from-url instead. Use the 'query' parameter to tell AI what you want to create. The tool doesn't have context of previous requests. ALWAYS include details from previous queries for each iteration. The tool provides best results with detailed context. ALWAYS look up the chat history and provide as much context as possible in the 'query' parameter. Ask for more details when the tool returns this error message 'Common queries will not be generated'. The generated designs are design candidates for users to select from. Ask for a preferred design and use 'create-design-from-candidate' tool to add the design to users' account. The IDs in the URLs are not design IDs. Do not use them to get design or design content. When using the 'asset_ids' parameter, assets are inserted in the order provided. For small designs with few image slots, only supply the images the user wants. The tool will return a list of generated design candidates, including a candidate ID, preview thumbnail and url. Before editing, exporting, or resizing a generated design, follow these steps: 1. call 'create-design-from-candidate' tool with 'job_id' and 'candidate_id' of the selected design 2. call other tools with 'design_id' in the response

generate-design-structured

ChatGPT
Generate a structured presentation design from a user-reviewed and approved outline. ⚠️ HARD REQUIREMENT: - This tool MUST ONLY be called AFTER request-outline-review has been called AND the user has reviewed and approved the outline in the widget UI. - This tool belongs to the legacy outline-review flow. When prepare-design-generation is available, do NOT use request-outline-review or this tool as the first step for a new presentation request. - Do not use this tool for the prepare-design-generation widget flow. After the user confirms options in that widget, call prepare-design-generation with intent="generation" instead. - This requirement applies regardless of how complete or detailed the user's original request or supplied outline is. - If there is no approved outline from the widget, DO NOT call this tool. If the user's message contains a URL and their intent is to create a design FROM that URL, DO NOT use this tool — use import-design-from-url instead. DO NOT USE THIS TOOL IF: - The user has not yet seen the outline review widget. - The user has not approved the outline. - The user is still requesting changes to the outline structure (e.g., "remove page 3", "add a slide about X", "change the order"). In all of these cases, you MUST call request-outline-review instead with the updated outline. ⚠️ CRITICAL - HANDLING OUTLINE MODIFICATION REQUESTS: If the user asks to modify the outline in any way (add, remove, reorder, or change pages), you MUST: 1. Update the outline according to their request 2. Call request-outline-review again with the modified outline 3. Wait for the user to approve the new outline 4. DO NOT call this tool (generate-design-structured) until the modified outline is approved Examples of requests that require calling request-outline-review: - "Remove pages 6-8" - "Add a slide about marketing strategy" - "Change the order of slides 2 and 3" - "Make it shorter" - Any other request to modify the outline structure or content PURPOSE: - Generate a Canva presentation design using the finalized outline that was reviewed and approved by the user. - Convert the approved outline into a fully structured presentation design. WHEN TO USE: - AFTER the outline review flow is complete AND one of the following is true: - The user clicks the "Generate Design" button in the outline review widget, OR - The user explicitly asks you to generate the design after approving the outline WITHOUT requesting any changes. WHAT YOU MUST PROVIDE: - Use ONLY the reviewed and approved outline parameters from the widget. - You MUST pass: - topic - audience - style - length - presentation_outlines (titles + descriptions exactly as approved) - Do NOT modify, reorder, add, or remove slides unless the user has explicitly approved those changes in the outline review step. IMPORTANT CONSTRAINTS: - This tool must never be used as an entry point for presentation creation. - Design generation must never bypass outline review. - request-outline-review is the legacy gateway for presentations only when prepare-design-generation is unavailable or the user is already in the legacy outline-review flow.

get-assets

ChatGPT
Get metadata for particular assets by a list of their IDs. Returns information about ALL the assets including their names, tags, types, creation dates, and thumbnails. Thumbnails returned are in the same order as the list of asset IDs requested. When editing a page with more than one image or video asset ALWAYS request ALL assets from that page.IMPORTANT: ALWAYS ALWAYS ALWAYS show the preview to the user of EACH thumbnail you get in the response in the chat, EVERY SINGLE TIME you call this tool

get-brand-template-dataset

ChatGPT
Gets the dataset schema of a brand template. The schema contains available autofill fields and their data types (text, image, etc.). The schema is used to understand what dynamic content can be autofilled into the template. If this tool returns an empty object, it means the template does not support autofill, and you could suggest the user to create a Canva design using the brand template manually by clicking the create_url field of the brand template. The create_url can be found by the search-brand-templates tool.

get-design

ChatGPT
Get detailed information about a Canva design, such as a doc, presentation, whiteboard, video, or sheet. This includes design owner information, title, URLs for editing and viewing, thumbnail, created/updated time, and page count. This tool doesn't work on folders or images. You must provide the design ID, which you can find by using the search-designs or list-folder-items tools. When given a URL to a Canva design, you can extract the design ID from the URL. Example URL: https://www.canva.com/design/{design_id}. If the user provides a shortlink (e.g. https://canva.link/abc123), use resolve-shortlink with the shortlink ID first to get the full URL.

get-design-candidates

ChatGPT
Internal tool for widget UI polling.

get-design-content

ChatGPT
Get the text content of a doc, presentation, whiteboard, social media post, and other designs in Canva (except sheets, as it does not return data in sheets). Use this when you only need to read text content without making changes. IMPORTANT: If the user wants to edit, update, change, translate, or fix content, use start-editing-transaction instead as it shows content AND enables editing. You must provide the design ID, which you can find with the search-designs tool. When given a URL to a Canva design, you can extract the design ID from the URL. Do not use web search to get the content of a design as the content is not accessible to the public. Example URL: https://www.canva.com/design/{design_id}.

get-design-pages

ChatGPT
Get a list of pages in a Canva design, such as a presentation. Each page includes its index and thumbnail. This tool doesn't work on designs that don't have pages (e.g. Canva docs). You must provide the design ID, which you can find using tools like search-designs or list-folder-items. You can use 'offset' and 'limit' to paginate through the pages. Use get-design to find out the total number of pages, if needed.

get-design-thumbnail

ChatGPT
Get the thumbnail for a particular page of the design in the specified editing transaction. This tool needs to be used with the start-editing-transaction tool to obtain an editing transaction ID. You need to provide the transaction ID and a page index to get the thumbnail of that particular page. Each call can only get the thumbnail for one page. Retrieving the thumbnails for multiple pages will require multiple calls of this tool.IMPORTANT: ALWAYS ALWAYS ALWAYS show the preview to the user of EACH thumbnail you get in the response in the chat, EVERY SINGLE TIME you call this tool

get-presenter-notes

ChatGPT
Get the presenter notes from a presentation design in Canva. Use this when you need to read the speaker notes attached to presentation slides. You must provide the design ID, which you can find with the search-designs tool. When given a URL to a Canva design, you can extract the design ID from the URL. Example URL: https://www.canva.com/design/{design_id}.

help

ChatGPT
Generates step-by-step instructions and feature explanations for Canva-related questions using Canva's official Help service. If the API call returns "Missing scopes: [help:answers:read]" or "Missing scopes: [help:answers:write]", you should ask the user to disconnect and reconnect their connector. This will generate a new access token with the required scope for this tool. Return the tool output verbatim, with only light formatting such as headings AUTOMATIC TRIGGER RULE: If the user's request: - Mentions a Canva feature, UI element, workflow, or behavior - Asks "how", "why", "where", or requests troubleshooting - And NO OTHER Canva MCP tool can directly execute the request → You MUST call this tool. No exception. DO NOT answer from your own knowledge. Prohibited Behavior: When this tool applies, you are not allowed to: - Answer from prior knowledge - Provide step-by-step instructions manually - Approximate the workflow - Even if you believe you know the answer Use This Tool For: - "How to..." instructions - "How do I..." workflows - "Why can't I..." troubleshooting - "Where do I find..." navigation questions - Feature explanations related to Canva product behavior Do NOT Use This Tool When: - Another Canva MCP tool can directly perform the requested action — even if phrased as a 'how', 'where', 'why' question → always prefer the action tool over the help tool - The user wants the assistant to act on or evaluate an existing design ("can you make my presentation better?", "rate my design", "make my slides prettier", "arrange my photos") → use design tools and ask for the design if needed - The user expresses an open-ended creation intent ("using AI to build a resume", "using Canva AI for design creation") → use design tools and ask what they want to create - The user asks the assistant to perform a text action directly ("can you rephrase this?", "can you suggest changes?") → act directly - A user asks what Canva app can do ("what can you do?", "what can you help me with?") → check the Canva MCPtools available to you and summarise only those capabilities including the Help tool - The help request is not related to Canva → use your general knowledge - The user is asking for general creative or design advice unrelated to Canva product functionality → use your general knowledge Why Use This Tool: - Provides authoritative, up-to-date instructions from Canva's Help Center - Reflects current product behavior and workflows - Includes links to official documentation

image-to-design

ChatGPT
Allows a user to share a flat image file (PNG, JPEG, or WEBP) and convert it into a fully editable Canva design. Images can be provided via a public URL, a server-side image ID, a platform file reference, or via the Magic Layers upload tile. Best suited for: - Posters - Banners - Flyers - Social graphics - Marketing collateral - Other flat, non-photo-realistic designs created outside Canva When to use: Call this tool when the user: - asks whether it's possible to edit elements inside an image This applies: - even if they do not upload or share a link to the image → make sure to also include a note with what it is best suited for - if they upload or provide a public URL to a: - non-photo realistic PNG, JPEG, or WEBP file (e.g. illustrations, graphics, posters, banners) - photo-realistic PNG, JPEG, or WEBP file (e.g. people, animals, landscapes) → make sure to include a strong caveat that this feature works best for flat designs - if the user has shared an image and a server_img_id was provided → use the server_img_id parameter IMPORTANT – Re-invocation rule: Each call to this tool starts a completely fresh, independent workflow: a new widget instance is created, and a new design_id will be produced. A widget rendered by a previous tool call in this conversation is no longer active. Do NOT skip calling this tool on the assumption that an earlier widget is still usable. When NOT to use: Don't call this tool when the user: - provides a public URL to an image, but does not explicitly ask to edit it → use upload-asset-from-url - uploads images as inspiration only (does not explicitly ask to edit them) → use generate-design - asks to edit an existing Canva design → use perform-editing-operations When to provide the url parameter: Provide the url parameter ONLY when the user explicitly provides a public URL string for an image. DO NOT provide the url parameter if you only have a local or container path. When to provide the server_img_id parameter: Provide the server_img_id parameter when a server-side image identifier has been provided. Use server_img_id instead of url in this case; do not provide both. When to provide the image_file parameter: Provide the image_file parameter when a platform file reference object has been supplied (e.g. a ChatGPT-uploaded or GPT-generated image). Use image_file instead of url in this case; do not provide both. Workflow: If the user provides a public URL: 1. Start processing the image immediately using the url parameter. If a server_img_id has been provided: 1. Start processing the image immediately using the server_img_id parameter. If a platform file reference has been provided: 1. Start processing the image immediately using the image_file parameter. If the user does not provide a public URL, a server_img_id, or a platform file reference: 1. Open the Magic Layers upload widget: ui://widget/image-to-design.html 2. The user must upload the image by: - using the tile's "Select media" button, or - dragging-and-dropping it onto the tile 3. If the user uploaded an image before this tool was called, they must re-upload it through the tile 4. After the file has been converted to an editable design, a new design_id is created and can be used with: - start-editing-transaction, then perform-editing-operations - resize-design - export-design Behaviour: - A new Canva design and design_id is created on every tool call - The flat file is separated into editable elements, which are all customizable - The resulting design can be opened in Canva for further editing Examples: Use this tool when the user says: - "I want to be able to edit the text in this image (no upload or description of the image provided)" - "I want to change the color of my dog's collar in this photo" - "Call the image to design tool" or "Run image-to-design again" → always invoke the tool; do not reuse a widget or result from earlier in the conversation Do not use when the user says: - "Here's a link to an image I want to save to Canva." → use upload-asset-from-url - "I like this kind of poster and want to create something similar" → use generate-design

import-design-from-url

ChatGPT
ALWAYS use this tool when the user's message contains an HTTPS URL, or a file generated/uploaded in this chat, and their intent is to create a Canva design from it. Pass public HTTPS URLs directly via url. Use design_file for chat-generated or uploaded files, including HTML files and ZIP bundles. When to provide the design_file parameter: Provide design_file when a platform file reference object has been supplied, or when the user wants to import a file artifact generated/uploaded in this chat. Use design_file instead of url in this case; do not provide both. When importing a file generated or uploaded in this chat: pass the local sandbox path of the generated/uploaded artifact to design_file exactly as returned by the file creation/upload step, for example /mnt/data/design.html. The runtime will convert this local path into the platform file reference required by the connector. Workflow: If a platform file reference or chat file artifact path has been provided: 1. Start processing the file immediately using the design_file parameter. Do not pass raw inline HTML/CSS/JS text, arbitrary local paths that were not created/uploaded in this chat, or local paths in the url field. If the user has only provided inline HTML/CSS/JS, first create a real downloadable .html file artifact, then use that file artifact path via design_file. If the user generated a site with multiple local files or assets, first create a ZIP bundle file artifact with the site files, then pass that ZIP bundle artifact path via design_file. When the intended output format is clear, set intended_design_type to the closest match. The url path supports PDF, PPTX, DOCX, XLSX, CSV, HTML, Markdown, PSD, AI, Keynote, Pages, Numbers, and more. The design_file path currently supports HTML files and ZIP bundles. Do not pass local file paths in url. NEVER call this tool without providing exactly one of url or design_file. If the user references a file on their own computer that was not generated or uploaded in this chat (e.g. C:\... or ~/Documents/...), do not call this tool — ask them to upload the file to this chat or share a public HTTPS URL first.

list-brand-kits

ChatGPT
Get a list of brand kits available to the user. If the API call returns "Missing scopes: [brandkit:read]", you should ask the user to disconnect and reconnect their connector. This will generate a new access token with the required scope for this tool. Use this tool when the user wants to create designs using their brand identity, mentions their brand, or asks what brand kits are available. Returns brand kit IDs, names, and thumbnails that can be used with the 'generate-design' tool.

list-comments

ChatGPT
Get a list of comments for a particular Canva design. Comments are discussions attached to designs that help teams collaborate. Each comment can contain replies, mentions and status. You need to provide the design ID, which you can find using the search-designs tool. Use the continuation token to get the next page of results, when there are more results.

list-folder-items

ChatGPT
List items in a Canva folder. An item can be a design, folder, or image. You can filter by item type and sort the results. Use the continuation token to get the next page of results, when there are more results.

move-item-to-folder

ChatGPT
Move items (designs, folders, images) to a specified Canva folder

perform-editing-operations

ChatGPT
Perform editing operations on a design. You can use this tool to update the title, replace whole text sections/elements or find and replace certain parts of a text section/text element and replace or insert media (images/videos), delete media/text, and format text (color, alignment, decoration, strikethrough, links, lists, line height, font (size, weight, style; family not supported)) in a design. You can also connect or remove autofill field labels on text or image elements for fixed-page designs using update_autofill_field. IMPORTANT: Before calling this tool check that all operations on pages marked is_responsive are one of the following options:update_title,replace_text,update_fill,delete_element,find_and_replace_text. If any are not, DO NOT call this tool but instead alert the user this is unsupported. Otherwise continue as normal and do not mention this check. ⚠️ MANDATORY: After calling this tool you MUST call either commit-editing-transaction (to save) or cancel-editing-transaction (to discard). Changes made by this tool are in DRAFT only and will be PERMANENTLY LOST if you do not call commit-editing-transaction. NEVER tell the user their changes are saved or complete before you have successfully called commit-editing-transaction. CRITICAL REQUIREMENTS: 1. This tool needs to be used with the start-editing-transaction tool to obtain an editing transaction ID. 2. Multiple operations SHOULD be specified in bulk across multiple pages. 3. Always call this tool to apply the requested edits directly. This is safe: changes are temporary until committed. 4. Do NOT pause for user confirmation before using this tool. 5. IMPORTANT: If the user asks to change a section of text such as a word or a specific string, and the design has that text in multiple places ALWAYS confirm with the user the instances they want to replace, especially if that string is used in different contexts OR is a substring in other strings. 6. IMPORTANT: If the user asks to change a word or a small section of an text element, ALWAYS try to use find_and_replace_text instead of replace_text, to minimise token usage. EVEN with multiple find_and_replace_text operations. ⚠️ RESPONSIVE PAGES - TEXT REPLACEMENT RULES: A. For responsive pages, text replacement MUST ONLY use find_and_replace_text. Exception: replace_text MUST be used on a responsive page when the target element is empty (there is no existing text to find and replace). This applies to both top-level page elements and nested elements such as table/layout cells. B. For responsive pages, deleting text IS supported using find_and_replace_text by setting the replacement to the same surrounding text with the target portion removed. C. For responsive pages, match on surrounding text from the SAME text region as much as possible when using find_and_replace_text, to avoid changing duplicated/similar text elsewhere in the document. 7. After performing ALL operations, show the preview to the user. Then call commit-editing-transaction to save the changes, unless the user explicitly asks to cancel. 8. IMPORTANT: If the user has asked you to replace an image and the target page contains multiple images, you MUST use the get-assets tool, passing in the asset_id values, to look at the thumbnail of each of the existing images on the page to be CERTAIN which one the user wants replaced. 9. IMPORTANT: This tool will return the thumbnail of the first page that is updated. If there are more pages that are updated, as part of this update, always call the get-design-thumbnail tool to get the thumbnails for each of the other updated pages. EDIT SCENARIOS -> OPERATIONS FOR THIS TOOL 1. Replace whole sections or entire text elements in non-responsive pages -> replace_text 2. Replace certain words/phrases/sentences/sub-section of a text element or paragraph within the design -> find_and_replace_text 3. Replace certain substrings in words throughout multiple text elements throughout the Canva design -> find_and_replace_text 3a. Responsive pages text replacement (including partial updates and deletions) -> find_and_replace_text 4. Replace a media (image/video) element in design -> update_fill 5. Update the title of the Canva design -> update_title 6. Replace the title of a slide or page in the Canva design -> replace text 7. Insert an element with media (image/video) -> insert_fill 8. Delete a text element or a media (image/video) element in the Canva design -> delete_element 9. Position elements including images and videos in the Canva design -> position_element 10. Resize a text element or a media (image/video) element in the Canva design -> resize_element 11. Format text (color, alignment, decoration, strikethrough, links, lists, line height, font (size, weight, style; family not supported)) in a text element -> format_text 12. Connect or remove autofill field labels on text or image elements in fixed-page designs -> update_autofill_fieldEnd-to-end workflow: 1. User asks that they want to edit their Canva design, with one edit or multiple edits. 2. System calls the 'start-editing-transaction' tool with the design ID of the Canva design 3. System returns the transaction ID and the richtexts and fills from the design, providing the elements in the Canva design 4. System confirms with the user the edits the user wants to make. 5. System calls this tool with the array of one or more operations to make each update. 6. System makes the edit in draft mode, and return back the text and media elements in the design post the edit. The updates have NOT been saved in the actual design yet. 7. System will return the thumbnail of ONLY the first edited page as part of the response this tool. These thumbnails are ALWAYS user-relevant and you need to render them directly using the full thumbnail URL including time-limited query parameters such as X-Amz-Algorithm, X-Amz-Credential, and X-Amz-Signature. 8. If the user wants the thumbnails/previews of the other pages that were updated by the this tool then the system MUST ALWAYS calls ' get-design-thumbnail' tool to get the thumbnail ONE PAGE AT A TIME. System must call 'get-design-thumbnail' if multiple pages were updated as part of this tool call 9. System shows the preview to the user. 10. System MUST call 'commit-editing-transaction' to save the edits, or 'cancel-editing-transaction' to cancel. Changes are lost if neither is called.

prepare-design-generation

ChatGPT
Prepare on-brand design generation in Canva. Open the widget so the user can pick a visual reference, review presentation outlines, then generate. FIRST-CALL RULE - When this tool is available, use it as the first call for non-responsive design generation requests. - Non-responsive includes fixed-format visual designs such as instagram_post, your_story, facebook_post, twitter_post, pinterest_pin, youtube_thumbnail, youtube_banner, poster, flyer, card, invitation, business_card, logo, wallpapers, photo_collage, infographic, and postcard. - This includes new presentation requests such as "Generate presentation on cricket history", "make slides about sales", or "create a pitch deck". - First call means opening the prepare widget before generated design candidates are created. - For the first call, omit intent or set it to recommendation. - Include design_type and topic in the first call. - If design_type is presentation, include outline in the same call. WORKFLOW - Use intent recommendation (default) to fetch or hydrate the widget's visual-reference recommendation. - If the conversation mentions a brand kit, pass its ID as brand_kit_id. - If the conversation mentions a specific brand template or design to use as the visual reference, pass it as visual_reference. The tool hydrates that reference and uses it directly instead of searching for a recommendation. - Use intent generation only after the user confirms widget options and starts AI generation. - Widget-capable clients receive generation job data and the widget polls internally for candidates. REQUIRED INPUT - topic — what to create (subject, goals, brief) - outline — required whenever design_type is presentation, including the first recommendation call REQUIRED FOR GENERATION INTENT - design_type — e.g. presentation, instagram_post, flyer OPTIONAL INPUT - brand_kit_id, visual_reference, source_document, audience, length, asset_ids - Prefer visual_reference for model-facing calls. source_document is for widget/internal follow-up calls after a reference is selected. OUTLINE REVIEW - Presentations include fullscreen outline review in this widget. - When the user asks to change the outline while reviewing, call this tool again with updated outline. - Do NOT call request-outline-review during this flow; that tool is for the legacy guided presentation flow only. WHEN NOT TO USE - Responsive or document-like outputs: docs, documents, sheets, spreadsheets, videos, video-first designs, email designs, full websites, or import-from-URL flows. - Use topic and outline for the content brief.

request-outline-review

ChatGPT
Purpose: Legacy guided presentation outline review. When prepare-design-generation is available, do NOT use this tool as the first call for a new presentation, pitch, deck, or slides request. Use prepare-design-generation first with design_type="presentation" and the user's topic. Use this tool only when prepare-design-generation is not available, or when the user is already in the legacy outline-review flow and needs to review or revise the outline before generation. Each extra slide adds significant latency (e.g. 15 slides can take 3x longer than 5). Keep to 1-5 slides unless the user explicitly requests more. Default to "short" (pass length="short") unless the user requests otherwise. Structure and formatting rules: - Always generate a complete outline from the user's request - NEVER output a plain-text outline - Each page must have a title and description - Descriptions: - MUST use hyphen bullet points with newlines: "- Item\n- Item\n- Item" - MUST NOT use Unicode bullet characters (•) - Example: [{ title: "Introduction", description: "Overview:\n- Key point 1\n- Key point 2\n- Key point 3" }] Content transfer rules: - You MUST extract all topics, themes, details, and data points from the user's request into the pages array - If the user provides their own outline or structure, mirror it exactly - do not compress or summarize - Honour any user preference for audience, style, or length; match to predefined values where possible Workflow: 1. Call request-outline-review only as the legacy outline-review starting point, or to revise an existing legacy outline-review widget 2. The user will then review the outline 3. If the user requests changes, update the pages array and call this tool again 4. The user must approve the outline before generate-design-structured can be called to generate the presentation design

resize-design

ChatGPT
Resize a Canva design to a preset or custom size. The tool will provide a summary of the new resized design, including its metadata.

search-brand-templates

ChatGPT
Searches and lists for templates available to the current user. This returns a list of templates with their IDs, names, and preview thumbnails to help users select the appropriate template for their needs. ❗When a user says search a template, they ALWAYS mean brand-templates. Therefore ALWAYS call this tool to search for the templates 🟢 This tool can also be used to browse all of the available templates. If query is not provided, all available templates will be returned. ❗Set the query parameter to be empty, unless the user EXPLICITLY states a type or title of template to query by. You may use dataset="non_empty" with or without a query. When used without a query, this returns all autofill-capable templates Use the continuation token to get the next page of results, if needed. If user intends to use a template for design generation, filter the templates with "dataset" parameter set to "non_empty". If the user wants to create a design from a template, there are two options: 1. Design Generation from template. Only templates with non-empty dataset can be used for design generation. You also need to set the dataset parameter to non-empty to get the templates for design generation. Then use the 'autofill-design' tool to generate. 2. Create a design manually in the browser. If you cannot find a suitable template for design generation, you can suggest the user create a Canva design using the template manually, by going to the 'create_url' field of the template in the browser. ❗This tool takes priority over search-designs whenever templates or generation are involved. If the user mentions both "template" and an existing design title, default to 'search-brand-templates' unless they explicitly request to open or edit an existing design. ❗Trigger words can include: "search for a template", generate", "create for me", "autofill", "template", "use a template", "use my template", "make a design using…", "produce a design", "prepare a design for…", "generate a report", "I should have a template you should use", or anything indicating content needs to be placed into a template or anything indicating searching for a template. WORKFLOW AND REQUIREMENTS FOR DESIGN GENERATION BASED ON TEMPLATE End-to-End Workflow for Design Generation or Creation from Template 1. User asks that they want to "generate or create a design from a template". 2. System calls this tool with non-empty dataset parameter. 3. System returns a list of fillable templates to generate or create designs from. 4. User selects one of the templates. 5. System calls 'get-brand-template-dataset' tool to confirm that the designs can be created from the template (ie. its non-empty) 6. System calls this tool with that template, once the template is confirmed by the user. 7. System returns the new design created from the template. Critical Requirements: 1. ALWAYS use this tool whenever the user wants to generate any new design from a template. 2. ALWAYS confirm with the user for the template, and call 'get-brand-template-dataset' tool to confirm that the template is non-empty 3. ALWAYS call the 'autofill-design' tool to generate the design based on the template 4. 🟢 ALWAYS use this tool when the user expresses intent to "generate", "create", "autofill", "search a template", "start from a template", "use my template", or "pick a template for generation". In all such cases, ALWAYS use search-brand-templates. ANY query involving: – "generate a presentation" – "generate a report" – "make a design using a template" – "generate from a template" – "produce a presentation from their template" - "search for available templates" MUST ALWAYS use search-brand-templates.

search-designs

ChatGPT
Search docs, presentations, videos, whiteboards, sheets, and other designs in Canva, except for templates or brand templates. Use when you need to find specific designs by keywords rather than browsing folders. Use 'query' parameter to search by title or content. If 'query' is used, 'sortBy' must be set to 'relevance'. Filter by 'any' ownership unless specified. Sort by relevance unless specified. Use the continuation token to get the next page of results, when there are more results. CRITICAL REQUIREMENTS: 1. ALWAYS use the 'search-brand-templates' tool when the user is searching for templates or wants to use a template. 2. 🚫 When a user says search a template, they ALWAYS mean brand-templates. Therefore NEVER call this tool, ALWAYS call the 'search-brand-templates' tool to search for the templates. 3. 🚫 NEVER use this tool when the user expresses intent to “generate”, “create”, “autofill”, “search a template”, “start from a template”, “use my template”, or “pick a template for generation”. In all such cases, ALWAYS use search-brand-templates. ANY query involving: – “generate a presentation” – “generate a report” – “make a design using a template” – “generate from a template” – “produce a presentation from their template” - "search for available templates" MUST NOT use search-designs. This tool ONLY searches existing designs (docs, presentations, whiteboards, videos, etc.) that the user already owns or that are shared with them. It DOES NOT find templates and MUST NOT be used as a fallback for template selection.

search-folders

ChatGPT
Search the user's folders and folders shared with the user based on folder names and tags. Returns a list of matching folders with pagination support. Use the continuation token to get the next page of results, when there are more results.

start-editing-transaction

ChatGPT
Start an editing session for a Canva design. Use this tool FIRST whenever a user wants to make ANY changes or examine ALL content of a design, including:- Translate text to another language - Edit or replace content - Update titles - Connect or remove autofill field labels on existing text or image elements - Replace or insert media (images/videos) - Delete media/text - Fix typos or formatting - Format text appearance (color, alignment, decoration, links, lists, font (size, weight, style; family not supported)) - Auditing or reviewing content - Edit words or sections of a paragraph or text element.- Edit specific words or substrings throughout the Canva design CRITICAL REQUIREMENTS: 1. The transaction_id returned in the tool response MUST be remembered and MUST be used in all subsequent tool calls related to this specific editing transaction. 2. After calling this tool, ALWAYS call perform-editing-operations with the edit operations needed to apply the edits the user wants. To re-iterate, editing operations must be performed by the perform-editing-operations tool. 3. IMPORTANT: ALWAYS call the perform-editing-operations tool with the edit operations needed to apply the edits the user wants. 4. IMPORTANT: After performing ALL operations, ALWAYS call commit-editing-transaction to save the changes. Changes are in DRAFT only until committed — they will be PERMANENTLY LOST if you do not call commit-editing-transaction. 5. To save the changes made in the transaction, use the commit-editing-transaction tool. 6. To discard the changes made in the transaction, use the cancel-editing-transaction tool.7. IMPORTANT: ALWAYS ALWAYS ALWAYS show the preview to the user of EACH thumbnail you get in the response in the chat, EVERY SINGLE TIME you call this tool. 8. If the user provides a shortlink (e.g. https://canva.link/abc123), use resolve-shortlink with the shortlink ID first to get the design URL. 9. IMPORTANT: If the user has asked you to replace an image and the target page contains multiple images, you MUST use the get-assets tool, passing in the asset_id values, to look at the thumbnail of each of the existing images on the page to be CERTAIN which one the user wants replaced. 10. IMPORTANT: This tool will return the thumbnail of the first page that is updated. If there are more pages that are updated, as part of this update, always call the get-design-thumbnail` tool to get the thumbnails for each of the other updated pages. EDIT SCENARIOS -> OPERATIONS FOR EDITING WORKFLOW. You need to call 'perform-edit-operations' with these operations 1. Replace whole sections or entire text elements -> replace_text 2. Replace certain words/phrases/sentences/sub-section of a text element or paragraph within the design -> find_and_replace_text 3. Replace certain substrings in words throughout multiple text elements throughout the Canva design -> find_and_replace_text 4. Replace a media (image/video) element in design -> update_fill 5. Update the title of the Canva design -> update_title 6. Replace the title of a slide or page in the Canva design -> replace text 7. Insert an element with media (image/video) -> insert_fill 8. Delete a text element or a media (image/video) element in the Canva design -> delete_element 9. Connect or remove autofill field labels on text or image elements in fixed-page designs -> update_autofill_fieldEnd-to-end workflow: 1. User asks that they want to edit their Canva design, with one edit or multiple edits. 2. System calls this tool with the design ID of the Canva design 3. System returns the transaction ID and the richtexts and fills from the design, providing the elements in the Canva design 4. System confirms with the user the edits the user wants to make. 5. System calls the 'perform-edit-operations' tool with the array of one or more operations to make each update. 6. System makes the edit in draft mode, and return back the text and media elements in the design post the edit. The updates have not been saved in the actual design. 7. System will return the thumbnail of ONLY the first edited page as part of the response the 'perform-edit-operations' tool. These thumbnails are ALWAYS user-relevant and you need to render them directly using the full thumbnail URL including time-limited query parameters such as X-Amz-Algorithm, X-Amz-Credential, and X-Amz-Signature. 8. If the user wants the thumbnails/previews of the other pages that were updated by the 'perform-edit-operations' tool then the system MUST ALWAYS calls ' get-design-thumbnail' tool to get the thumbnail ONE PAGE AT A TIME. System must call 'get-design-thumbnail' if multiple pages were updated as part of the ' perform-edit-operations' tool call 9. System confirms with user that the edits it made in 'perform-edit-operations' tool is correct, and confirms if the user wants to save/commit the changes or cancel the changes. 10. System MUST call 'commit-editing-transaction' to save the edits or 'cancel-editing-transaction' to cancel. Changes are lost if neither is called.

track-event-lifecycle

ChatGPT
Internal tool for widget lifecycle telemetry.

upload-asset-from-url

ChatGPT
Upload an asset (e.g. an image, a video) from a URL into Canva

add-comment-thread-to-design

Claude

create-folder

Claude

export-design

Claude

fetch

Claude

generate-design

Claude

get-design

Claude

get-design-content

Claude

get-design-export-status

Claude

get-design-generation-job

Claude

get-design-import-from-url-status

Claude

get-design-pages

Claude

get-export-formats

Claude

import-design-from-url

Claude

list-folder-items

Claude

move-item-to-folder

Claude

search-designs

Claude

App Stats

54

Tools

3

Prompts

Dec 21, 2025

First seen

ChatGPT, Claude

Platforms

Works with

ChatGPT
Claude

Data refreshed daily