Skip to main content
Glama

Create Design with AI

create-design

Generate a new Canva design from a written brief, with any supplied content folded in.

Use to turn a brief, presentation outline, or draft copy into a presentation, doc, sheet, website, poster, flyer, social post, resume, or another text-and-image layout; or to make a first design for a new project.

Do not use this tool for an on-brand request: it cannot apply a brand kit or base a design on a brand template. When the user asks for their brand kit, their brand colours, fonts or logo, or a brand template to base the design on, use the legacy generation tools instead — prepare-design-generation where it is listed, otherwise generate-design or generate-design-structured.

Use this tool only when the requested output itself is an editable Canva page or layout, such as "create an infographic". Do not use it when the user explicitly asks for an image, picture, photo, illustration, artwork, sticker, icon, graphic, or 2d vector; use generate-image instead. Explicit image wording takes priority over design-like content within the image, including text, statistics, labels, callouts, or an infographic-like composition. For example, "create an image about coffee with bold stat callouts" uses generate-image, as does "create an image of an infographic". Do not choose this tool merely because the request uses the words "create" or "design".

Creates a newly generated design rather than editing one that already exists. Not for videos or whiteboards.

Returns a job_id and continuation_token for the generation job. When this tool's UI widget is shown, the widget polls get-create-design-async-job itself and displays the design when ready - do not poll it yourself. Only when no widget is shown, poll get-create-design-async-job with both, waiting the number of seconds each response's polling_policy.wait_seconds gives before the next call, until the job completes, then share the design link with the user.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
briefYesWhat to create, in the user's own words. State the subject, the purpose, and any wording, tone, colours, or brand the user asked for.
formatNoNamed Canva format the design is made in, e.g. "Instagram Post", "Presentation", "Flyer (Landscape A4)". Include the orientation whenever the format has one, because a name without it cannot be resolved to an exact size and the design comes out square. Omit it - usually the better choice - to have the format chosen from the brief.
outlineNoOutline for a presentation, when you have one the user has approved or supplied. Only valid when the design is a presentation. Omit to let Canva structure the presentation from the brief.
user_intentNoMandatory description of what the user is trying to accomplish with this tool call. This should always be provided by LLM clients. Please keep it concise (255 characters or less recommended).

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
job_idNoID of the design generation job. Pass it to get-create-design-async-job to poll for the result. This value is stable and never changes.
statusYesStatus of the newly created job. 'pending' means the job was created - poll get-create-design-async-job with the job_id and continuation_token for completion, failure, and print details. 'failed' means no job was created and there is nothing to poll; the failure explains why.
failureNoWhy no job was created. Only present when status is 'failed', in which case there is no job_id or continuation_token to poll with.
polling_policyNoHow and when to poll next.
continuation_tokenNoOpaque token to pass on the first poll to get-create-design-async-job. Always use the most recent token from the last response.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only declare readOnly=false, destructive=false, openWorld=true; the description adds substantial context beyond them — that it creates rather than edits, that it returns job_id and continuation_token, and the exact polling protocol including who polls (widget vs. caller) and the wait_seconds cadence.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Long but front-loaded: the core purpose and the image-vs-design disambiguation come first, followed by routing and polling detail. A few clauses restate the same routing rule (image wording priority is illustrated with two near-identical examples), which trims it below a 5.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Complete for a high-complexity generation tool with nested parameters and an output schema: it covers scope, exclusions, sibling routing, and the async job lifecycle an agent must drive, despite the output schema already existing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so brief, format, outline, and user_intent are already fully documented in the schema, including the format-orientation caveat. The description only gestures at this with 'with any supplied content folded in', so it adds no meaning beyond the structured fields — the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Opens with a specific verb+resource ('Generate a new Canva design from a written brief') and immediately enumerates the output types it produces, then differentiates itself from generate-image, the brand-template tools, and legacy generation tools by name.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit when-to-use ('turn a brief, presentation outline, or draft copy into ...'), explicit when-not (on-brand requests, image/vector wording, editing existing designs, videos/whiteboards), and names the alternative tool for each exclusion, including fallback ordering ('prepare-design-generation where it is listed, otherwise generate-design or generate-design-structured').

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources