Skip to main content
Glama
675,935 tools. Updated 2026-10-19 09:31

"Canva" matching MCP tools:

  • 执行一个岗位动作(如 AICare 的 preflight / list_checks / gen_report / run_detection / resolve_user)。参数:slug、action 必填;params 按 list_actions 的 schema 填;session_id 想让结果落在某次会话里就带;hostUserId 宿主用户标识可选。返回 {ok, mode:"sync", data} 直接用;{ok, mode:"job", jobId, pollSec} 用 get_job 轮询。代价:list_actions 标 paid 的会从岗位出资人余额扣 credits(出报告 5 / 跑检测 2),失败不扣;同键(如同对象同一天)重复调用返回缓存结果(cached 标记)不重复扣,用户催第二次可放心重试。典型编排:list_actions → canvas_action(preflight) 拿背景 → canvas_action(gen_report) → get_job → 用自然语言讲给用户。公共岗位:gaia-academy(龙虾学院 · Agent 进修)的动作标 public:true——任何持有效 Key 的调用方都能跑,不需要拥有该岗位;学员身份取调用方 Key 的用户,非 public 动作对非归属方仍 403。典型用法:canvas_action(gaia-academy, search_courses → start_exam → submit_exam → get_principle)。
    ConnectorNo auth
  • 把内容推到某个画布会话的屏上。参数:session_id 必填(来自 open_canvas 或 list_sessions);content 必填,写成一条"助手回复"文本,可含 ```canvas-md(Markdown 卡片)/ ```canvas-html(完整 HTML 文档)/ ```canvas(JSON 块)围栏,围栏外文字显示为字幕;speak=true 朗读字幕;title 可选。会话在线立即上屏;不在线(含还没人打开过的)存为待展示,该会话或同岗位同一 hostUserId 下次打开自动补推。屏属于会话不属于人:别复用别人的 session_id;要执行有副作用的动作(出报告/跑检测)用 canvas_action。需要有效 Key,匿名不开。
    ConnectorNo auth
  • Generate a standalone image from a text prompt, or edit/restyle images supplied as references. **When to use:** Use this tool based on the requested output, not assumed model limitations such as an inability to render text. If the user explicitly asks for an image, picture, photo, illustration, artwork, sticker, icon, graphic, or 2d vector, use this tool. The explicitly named output takes priority over design-like content within it, including text, statistics, labels, callouts, or an infographic-like composition. For example, "create an image about coffee with bold stat callouts" uses generate-image. Use create-design when the requested output itself is an editable Canva page or layout, such as "create an infographic". "Create an image of an infographic" still uses generate-image. The verb "create" or "design" alone does not make the request a Canva design. **When not to use:** Do not use when the requested output itself is a designed page or layout, such as an infographic, poster, wallpaper, flyer, presentation, or social media post; use create-design. To add, position, resize, or replace content inside an existing design, use the design-editing workflow instead; the image is source media and the design page is the edit target. **Image references and attachments:** For image-to-image generation or editing, add one MEDIA entry to imageReferences for every reference image. Pass the ID of an existing Canva MEDIA content reference directly. Before using a user-provided attachment as a reference, upload it to Canva: call create-upload-url, then send the attachment's raw bytes to the returned upload URL exactly as instructed. Each upload URL is single-use, so call create-upload-url separately for every attachment. Wait for every upload to succeed, then use the mediaId from each upload response as a separate MEDIA entry in imageReferences. For example, after uploading two attachments (replace the illustrative IDs with their returned mediaIds): ```json { "prompt": "Restyle both reference images as watercolor illustrations", "imageReferences": [ {"type": "MEDIA", "id": "MAAAAAAAAAAA"}, {"type": "MEDIA", "id": "MBBBBBBBBBBB"} ] } ``` Use exactly one imageReferences entry per successfully uploaded attachment. Never combine multiple media IDs into one string or object, and never put an upload URL in imageReferences. Do not pass assistant-hosted attachment URLs directly to this tool. If any attachment cannot be uploaded, do not silently omit it; explain the failure to the user. Omit imageReferences for pure text-to-image generation. **Result:** This call returns only a jobId, not the finished image. When this tool's UI widget is shown, the widget polls get-generate-image-job itself and displays the image when ready - do not poll it yourself. Only when no widget is shown, pass the jobId to get-generate-image-job and keep checking until the job succeeds or fails.
    ConnectorOAuth
  • Check an image generation job started by generate-image. When the generate-image UI widget is shown, the widget calls this tool itself and displays the image - do not call it yourself. Only when no widget is shown, pass the jobId returned by generate-image. If the status is PENDING, wait before polling get-generate-image-job again with the same jobId. Continue polling until the status is SUCCESS or FAILURE. Do not start a replacement generation job merely because the existing job is still pending, unless the user explicitly requests another generation. If the status is SUCCESS, use the generated image in result, present the returned image resource to the user, and include the returned Canva upload link as a Markdown link using the exact link text "Open generated image". The link opens the generated image in Canva, not the Canva editor. If the status is SUCCESS but the response says the image link is not ready yet, wait and call this tool again with the same jobId. Never finish a successful image-generation request without including the returned "Open generated image" link in the user-facing response, even when an inline image preview is visible. If the status is FAILURE, stop polling and explain the failure using failureType and failureMessage.
    ConnectorOAuth
  • Gets the status and result of a design generation job started by create-design. Pass the job_id and continuation_token from the previous create-design or get-async-job response. While the job is still running, wait the number of seconds the response's polling_policy.wait_seconds gives, then poll again with the same job_id and the updated continuation_token. Never poll sooner than that: it returns the same answer and the design arrives no earlier. Follow the polling_policy.instructions in every response, and relay them to the user while they wait. When the job completes, share the design link with them. When the completed response carries design.print.is_printable as true, and you are replying in text alone — no UI surface of your own rendering the design — then alongside the design link tell the user they can also order this design as a physical print with Canva Print and share design.print.print_url. Otherwise say nothing about printing: when print is absent or is_printable is false, there is nothing to do and nothing to relay. Never tell the user a design cannot be printed.
    ConnectorOAuth
  • Generate a standalone image from a text prompt, or edit/restyle images supplied as references. **When to use:** Use this tool based on the requested output, not assumed model limitations such as an inability to render text. If the user explicitly asks for an image, picture, photo, illustration, artwork, sticker, icon, graphic, or 2d vector, use this tool. The explicitly named output takes priority over design-like content within it, including text, statistics, labels, callouts, or an infographic-like composition. For example, "create an image about coffee with bold stat callouts" uses generate-image. Use create-design when the requested output itself is an editable Canva page or layout, such as "create an infographic". "Create an image of an infographic" still uses generate-image. The verb "create" or "design" alone does not make the request a Canva design. **When not to use:** Do not use when the requested output itself is a designed page or layout, such as an infographic, poster, wallpaper, flyer, presentation, or social media post; use create-design. To add, position, resize, or replace content inside an existing design, use the design-editing workflow instead; the image is source media and the design page is the edit target. **Image references and attachments:** For image-to-image generation or editing, add one MEDIA entry to imageReferences for every reference image. Pass the ID of an existing Canva MEDIA content reference directly. Before using a user-provided attachment as a reference, upload it to Canva: call create-upload-url, then send the attachment's raw bytes to the returned upload URL exactly as instructed. Each upload URL is single-use, so call create-upload-url separately for every attachment. Wait for every upload to succeed, then use the mediaId from each upload response as a separate MEDIA entry in imageReferences. For example, after uploading two attachments (replace the illustrative IDs with their returned mediaIds): ```json { "prompt": "Restyle both reference images as watercolor illustrations", "imageReferences": [ {"type": "MEDIA", "id": "MAAAAAAAAAAA"}, {"type": "MEDIA", "id": "MBBBBBBBBBBB"} ] } ``` Use exactly one imageReferences entry per successfully uploaded attachment. Never combine multiple media IDs into one string or object, and never put an upload URL in imageReferences. Do not pass assistant-hosted attachment URLs directly to this tool. If any attachment cannot be uploaded, do not silently omit it; explain the failure to the user. Omit imageReferences for pure text-to-image generation. **Result:** This call returns only a jobId, not the finished image. When this tool's UI widget is shown, the widget polls get-generate-image-job itself and displays the image when ready - do not poll it yourself. Only when no widget is shown, pass the jobId to get-generate-image-job and keep checking until the job succeeds or fails.
    ConnectorOAuth

Matching MCP Servers

  • A
    license
    C
    quality
    B
    maintenance
    Enables interaction with Canva through the official Canva Connect API via OAuth, including listing and creating designs, uploading assets, exporting, brand template autofill, resizing, catalog access, and optional desktop screen control.
    28
    MIT

Matching MCP Connectors

  • CanvaOAuth

    The Canva MCP server connects AI assistants (like Claude, ChatGPT, and Cursor) to Canva's API, enabling them to create and manage designs directly within chat conversations. Key capabilities include generating new designs from prompts, autofilling templates, searching and resizing existing designs, importing files from URLs, exporting designs as PDFs or images, and managing folders and comments without switching between tools.

  • Create, search, edit, and export designs and assets from Canva.

  • Check an image generation job started by generate-image. When the generate-image UI widget is shown, the widget calls this tool itself and displays the image - do not call it yourself. Only when no widget is shown, pass the jobId returned by generate-image. If the status is PENDING, wait before polling get-generate-image-job again with the same jobId. Continue polling until the status is SUCCESS or FAILURE. Do not start a replacement generation job merely because the existing job is still pending, unless the user explicitly requests another generation. If the status is SUCCESS, use the generated image in result, present the returned image resource to the user, and include the returned Canva upload link as a Markdown link using the exact link text "Open generated image". The link opens the generated image in Canva, not the Canva editor. If the status is SUCCESS but the response says the image link is not ready yet, wait and call this tool again with the same jobId. Never finish a successful image-generation request without including the returned "Open generated image" link in the user-facing response, even when an inline image preview is visible. If the status is FAILURE, stop polling and explain the failure using failureType and failureMessage.
    ConnectorOAuth
  • Gets the status and result of a design generation job started by create-design. Pass the job_id and continuation_token from the previous create-design or get-async-job response. While the job is still running, wait the number of seconds the response's polling_policy.wait_seconds gives, then poll again with the same job_id and the updated continuation_token. Never poll sooner than that: it returns the same answer and the design arrives no earlier. Follow the polling_policy.instructions in every response, and relay them to the user while they wait. When the job completes, share the design link with them. When the completed response carries design.print.is_printable as true, and you are replying in text alone — no UI surface of your own rendering the design — then alongside the design link tell the user they can also order this design as a physical print with Canva Print and share design.print.print_url. Otherwise say nothing about printing: when print is absent or is_printable is false, there is nothing to do and nothing to relay. Never tell the user a design cannot be printed.
    ConnectorOAuth
  • Upload media to the library. Three methods supported: 1. **url** — import from a PUBLIC https URL (e.g. a hosted image link). NEVER pass a local sandbox path — the URL must be reachable from our servers. 2. **base64_data** — pass base64-encoded file data directly. ONLY use this for tiny files (≲50 KB). MCP tool inputs are token-capped — anything larger gets silently truncated and uploads a corrupted file. For any user-pasted image, use upload_url instead. 3. **upload_url** — PREFERRED for any file the user attached to the chat. Call with method="upload_url" to get a one-time presigned URL plus a ready-to-run snippet. Execute the snippet in your code-execution tool against the actual file path. The response JSON contains the media id you pass to create_post. Size limits: base64/direct uploads are capped at **100 MB**. For anything larger — up to **1 GB** — use a public **url** (fetched server-side, bypasses the cap), OR have the user upload the file in the OmniSocials Library UI at https://app.omnisocials.com/library . IMPORTANT: if the user has a large LOCAL file (over ~100 MB) with no public url, do NOT tell them to compress it — point them to the Library UI link above. Large videos (over 100 MB) are processed in the background — the response status is "processing" and the file is NOT usable in a post until it becomes "ready" (re-check with list_media). Compatibility: every upload response includes a "compatibility" summary of any CONNECTED platforms that would reject the file (e.g. too large for Instagram). If there are warnings, RELAY them and ask the user whether to continue before posting — the file still uploads and can post to platforms that accept it. To check BEFORE uploading, call check_media_compatibility first. PDF = carousel: upload a PDF (via a public url, or base64_data with mime_type "application/pdf", or the upload_url snippet) and it is split into one image slide per page (max 20). The response lists a Media ID for EVERY slide — pass ALL of them, in order, as media_ids to create_post to post the deck as a carousel. On LinkedIn the slides post as a native swipeable DOCUMENT made from the ORIGINAL PDF file (the file is kept: text stays sharp, in-document links work, viewers download the real file, and every page is included even past the 20-slide cap) as long as the slides are posted unchanged and in order; on Instagram, TikTok, Threads and Pinterest as an image carousel. Set linkedin.document_source to 'slides' on the post to send a document rebuilt from the slide images instead. This is how a user posts an existing slide deck (Canva/PowerPoint/Figma exported to PDF) as a carousel. Prefer pdf_mode "document" when the user wants ONE library item for the deck (no per-page clutter): the response then has a single Media ID whose media_ids entry expands into every page at post time. Supported: JPEG, PNG, GIF, WebP, MP4, MOV, AVI, PDF. For user-attached files: ALWAYS try upload_url first. Call upload_media with method="upload_url", then in your code-execution sandbox run the returned Python (ChatGPT Code Interpreter, file at /mnt/data/<filename>) or curl (Claude Code Execution) snippet against the actual file path. Only react to a failure AFTER actually executing the snippet.
    ConnectorOAuth
  • 把一套整理好的 Markdown 发布成知识库(发布到我名下;带 slug 则同时配给那个岗位)。结构:wiki/index.md 是总目录(每篇一行:链接 + 一句摘要 + 更新日期,数字员工靠它挑页,摘要要准);其余 wiki/<主题>/<文章>.md,一个概念一篇,标题用访客会问的说法,单篇别超过 6000 字。规矩:①数字、日期、引文必须照原始资料逐字写,不改写不推算;②只收 wiki/ 下的 .md,原始资料不要发上来;③同名再发是整库替换,更新前先 read_kb 把现有页面读回来合并;④发布等于公开——岗位是匿名访客都能聊的,个人隐私、客户资料、令牌、内部运维内容一律不放(平台会拦身份证号和令牌,其它靠你自检)。checked 必须为 true 才会发。上限 200 个文件 / 单个 64KB / 合计 2MB。参数示例:{"name":"选课指南","checked":true,"files":[{"path":"wiki/index.md","content":"# Knowledge Base Index\n..."},{"path":"wiki/xuanke/rules.md","content":"# 选课时间与学分上限\n..."}]}(files 是数组,每项一个 {path, content},不是 {路径: 内容} 的对象)。这是写操作,发之前跟用户确认库名和要不要配给岗位。
    Connector
    Destructive
    No auth
  • Gets the status and result of a video generation job started by create-video. Pass the job_id and continuation_token from the previous create-video or get-video-generation-status response. While the job is still running, wait the number of seconds the response's polling_policy.wait_seconds gives, then poll again with the same job_id and the updated continuation_token. Never poll sooner than that: it returns the same answer and the video arrives no earlier. A completed job may carry the video before its preview_url is available; when the response still carries a polling_policy, wait as instructed and poll again to obtain the preview. Follow the polling_policy.instructions in every response, and relay them to the user while they wait. Automatic polling stops after 20 minutes. A delayed response means generation may still be running; direct the user to projects_url and do not start another generation automatically. When the video is ready, share its id and view_url with the user. Temporary preview and download links may expire; view_url opens the saved Canva asset.
    ConnectorOAuth
  • Gets the status and result of a video generation job started by create-video. Pass the job_id and continuation_token from the previous create-video or get-video-generation-status response. While the job is still running, wait the number of seconds the response's polling_policy.wait_seconds gives, then poll again with the same job_id and the updated continuation_token. Never poll sooner than that: it returns the same answer and the video arrives no earlier. A completed job may carry the video before its preview_url is available; when the response still carries a polling_policy, wait as instructed and poll again to obtain the preview. Follow the polling_policy.instructions in every response, and relay them to the user while they wait. Automatic polling stops after 20 minutes. A delayed response means generation may still be running; direct the user to projects_url and do not start another generation automatically. When the video is ready, share its id and view_url with the user. Temporary preview and download links may expire; view_url opens the saved Canva asset.
    ConnectorOAuth
  • CRITICAL STARTING POINT. Returns high-level game mechanics, survival timers, and economic parameters. Use this to understand how to win and avoid penalties.
    ConnectorNo auth
  • Open the FluxInk handwriting recognition canvas. The user draws freehand strokes with a stylus, finger, or mouse. The strokes are converted by one of two model families: general recognition for handwriting, math, and chemical formulas, or structure recognition for molecular structures. Use this when the user asks to handwrite, draw, sketch, ink, scribble, or scrawl something. Use this when the user wants to draw a math equation, chemical formula, or molecular structure rather than type it. Use this when the user asks for a canvas, drawing pad, handwriting input box, or whiteboard. Use this when the user wants to convert stylus or finger drawings into recognized text or markup. Do NOT use this when the user types a question, equation, or formula in chat and just wants an answer. Do NOT use this when the user uploads or references an existing image of handwriting (call recognize_image instead). Do NOT use this when the user wants a formatted document, study sheet, or layout PDF (call create_layout instead). Do NOT use this when the user wants text rendered in a personal handwriting style (call show_style_canvas instead). Do NOT use this for conversational or informational requests that need no ink input. Do NOT re-open if a FluxInk handwriting canvas is already visible from any earlier turn. Instead instruct the user to keep drawing on the existing canvas. Only set force_new=true when the user explicitly asks for a brand new, fresh, or blank canvas. Always pass the original chat message in the prompt parameter so context is preserved after recognition. After calling, write a single short acknowledgement and do NOT describe the canvas UI.
    ConnectorNo auth
  • List the pages in an existing Canva design, including each page's index and individual thumbnail. Use to browse a design's pages or slides, see each page thumbnail in order, show what a specific page looks like, or get a range of page previews. Do not use to retrieve a thumbnail that reflects uncommitted changes in an active editing transaction. Requires a design with individual pages; Canva Docs do not have pages. Returns only the requested pages, without the design's total page count.
    ConnectorOAuth
  • LEGACY-ONLY — DO NOT CALL WHEN create-design IS AVAILABLE. If create-design is in the tool list, you MUST NOT call this tool. Call create-design instead. BRAND EXCEPTION: create-design cannot apply a brand kit or base a design on a brand template. When the user asks for an on-brand design — their brand kit, their brand colours, fonts or logo, or a brand template to base the design on — call this tool instead of create-design. All instructions below apply when create-design is absent from the tool list, and whenever the request is an on-brand one. A failed create-design call does not make it unavailable. Generate professionally designed content in Canva including visual designs (posters, social media posts, presentations, flyers) and text-based documents (memos, articles, newsletters, proposals, reports, business plans, requirements documents). 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. 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 for fixed-format visual designs when prepare-design-generation is available. 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. For multi-page designs like presentations, supply images in the order of the slides. 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 For presentations, target 1-5 slides by default (length: "short"). Format the query string with these sections in order (use the headers exactly): 1. **Presentation Brief** Include: * **Title** (working title for the deck) * **Topic / Scope** (1–2 lines; include definitions if terms are uncommon) * **Key Messages** (3–5 crisp takeaways) * **Constraints & Assumptions** (timebox, brand, data limits, languages, etc.) * **Style Guide** (tone, color palette, typography hints, imagery style) 2. **Narrative Arc** A one-paragraph outline of the story flow (e.g., Hook → Problem → Insight → Solution → Proof → Plan → CTA). Keep transitions explicit. 3. **Slide Plan** Provide numbered slides with **EXACT titles** and detailed content. For each slide, include all of the following subsections in this order (use the labels exactly): * **Slide {N} — "{Exact Title}"** * **Goal:** one sentence describing the purpose of the slide. * **Bullets (3–6):** short, parallel phrasing; facts, examples, or specifics (avoid vague verbs). * **Visuals:** explicit recommendation (e.g., "Clustered bar chart of X by Y (2022–2025)", "Swimlane diagram", "2×2 matrix", "Full-bleed photo of <subject>"). * **Data/Inputs:** concrete values, sources, or placeholders to be filled (if unknown, propose realistic ranges or example figures). * **Speaker Notes (2–4 sentences):** narrative details, definitions, and transitions. * **Asset Hint (optional):** reference to an asset by descriptive name or index if assets exist (e.g., "Use Asset #3: 'logo_dark.svg' as corner mark"). * **Transition:** one sentence that logically leads into the next slide. > Ensure the Slide Plan forms a **cohesive story** (each slide's Goal and Transition should support the Narrative Arc). **Quality checklist (the model must self-check before finalizing)** * Titles are unique, concise (≤ 65 characters), and action-or insight-oriented. * Each slide has 3–6 bullets; no paragraph walls; numbers are specific where possible. * Visuals are concrete (chart/diagram names + variables/timeframes); tables are used only when necessary. * Terminology is defined once and used consistently; acronyms expanded on first use. * Transitions form an intelligible narrative; the story arc is obvious from titles alone. * No placeholders like "[TBD]" or "[insert]". If data is unknown, propose realistic figures and label as "example values". * All required headers and subsections are present, in the exact order above.
    ConnectorOAuth
  • Data exata da próxima cobrança de cada recorrência de despesa ativa (RecurringTransaction), recalculada na hora (não usa o nextDueDate salvo, que fica desatualizado após a primeira ocorrência). `entity` traz o nome da marca reconhecida (ex: 'Canva', 'Netflix') quando a descrição bate com o catálogo de merchants conhecidos, senão repete a descrição. Use `query` pra perguntas específicas tipo 'quando renova minha assinatura do Canva' — filtra por nome do merchant ou trecho da descrição, case-insensitive. Sem `query`, lista tudo.
    ConnectorOAuth
  • 列出可开岗的数字员工模板。用于:想知道"系统能开哪些岗位"、或用户要开通新岗位时。返回每个模板的 templateId / 名称 / 说明 / canOpen / missingHandlers / 动作清单。别用它找"已开好的岗位"——那是 list_my_staff。canOpen=false 的模板不可开通(缺实现),别推荐用户选。参数:无。
    ConnectorNo auth
  • 列出我名下的数字员工岗位(slug / 名称 / 模板 / 画布链接)。用户问"我有哪些岗位"用它;后续所有按岗位操作的工具都要 slug,slug 一律从这里拿,不要凭记忆拼。参数:无。
    ConnectorNo auth
  • List the pages in an existing Canva design, including each page's index and individual thumbnail. Use to browse a design's pages or slides, see each page thumbnail in order, show what a specific page looks like, or get a range of page previews. Do not use to retrieve a thumbnail that reflects uncommitted changes in an active editing transaction. Requires a design with individual pages; Canva Docs do not have pages. Returns only the requested pages, without the design's total page count.
    ConnectorOAuth
  • LEGACY-ONLY — DO NOT CALL WHEN create-design IS AVAILABLE. If create-design is in the tool list, you MUST NOT call this tool. Call create-design instead. BRAND EXCEPTION: create-design cannot apply a brand kit or base a design on a brand template. When the user asks for an on-brand design — their brand kit, their brand colours, fonts or logo, or a brand template to base the design on — call this tool instead of create-design. All instructions below apply when create-design is absent from the tool list, and whenever the request is an on-brand one. A failed create-design call does not make it unavailable. Generate professionally designed content in Canva including visual designs (posters, social media posts, presentations, flyers) and text-based documents (memos, articles, newsletters, proposals, reports, business plans, requirements documents). 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. 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 for fixed-format visual designs when prepare-design-generation is available. 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. For multi-page designs like presentations, supply images in the order of the slides. 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 For presentations, target 1-5 slides by default (length: "short"). Format the query string with these sections in order (use the headers exactly): 1. **Presentation Brief** Include: * **Title** (working title for the deck) * **Topic / Scope** (1–2 lines; include definitions if terms are uncommon) * **Key Messages** (3–5 crisp takeaways) * **Constraints & Assumptions** (timebox, brand, data limits, languages, etc.) * **Style Guide** (tone, color palette, typography hints, imagery style) 2. **Narrative Arc** A one-paragraph outline of the story flow (e.g., Hook → Problem → Insight → Solution → Proof → Plan → CTA). Keep transitions explicit. 3. **Slide Plan** Provide numbered slides with **EXACT titles** and detailed content. For each slide, include all of the following subsections in this order (use the labels exactly): * **Slide {N} — "{Exact Title}"** * **Goal:** one sentence describing the purpose of the slide. * **Bullets (3–6):** short, parallel phrasing; facts, examples, or specifics (avoid vague verbs). * **Visuals:** explicit recommendation (e.g., "Clustered bar chart of X by Y (2022–2025)", "Swimlane diagram", "2×2 matrix", "Full-bleed photo of <subject>"). * **Data/Inputs:** concrete values, sources, or placeholders to be filled (if unknown, propose realistic ranges or example figures). * **Speaker Notes (2–4 sentences):** narrative details, definitions, and transitions. * **Asset Hint (optional):** reference to an asset by descriptive name or index if assets exist (e.g., "Use Asset #3: 'logo_dark.svg' as corner mark"). * **Transition:** one sentence that logically leads into the next slide. > Ensure the Slide Plan forms a **cohesive story** (each slide's Goal and Transition should support the Narrative Arc). **Quality checklist (the model must self-check before finalizing)** * Titles are unique, concise (≤ 65 characters), and action-or insight-oriented. * Each slide has 3–6 bullets; no paragraph walls; numbers are specific where possible. * Visuals are concrete (chart/diagram names + variables/timeframes); tables are used only when necessary. * Terminology is defined once and used consistently; acronyms expanded on first use. * Transitions form an intelligible narrative; the story arc is obvious from titles alone. * No placeholders like "[TBD]" or "[insert]". If data is unknown, propose realistic figures and label as "example values". * All required headers and subsections are present, in the exact order above.
    ConnectorOAuth