Canva MCP server for AI agents and assistants

Securely connect your AI agents and chatbots (Claude, ChatGPT, Cursor, etc) with Canva MCP or direct API to generate new designs, update templates, fetch assets, and automate publishing workflows through natural language.

Canva logoCanva
Oauth2

Canva is a drag-and-drop design suite for creating professional graphics, presentations, and marketing materials. It makes it easy for anyone to design with beautiful templates and a vast library of elements.

46 Tools

Try Canva now

Type what you want done — sign in and watch it run live in the Tool Router playground.

TOOL ROUTER PLAYGROUND
Canva
Try asking
TOOLS

Supported Tools

Every Canva action and event your agent gets out of the box.

Access user specific brand templates list

Lists brand templates available to the user (Canva Enterprise only).

Create Asset Upload Job

Uploads an asset file to the user's Canva content library.

Create comment reply in design

This preview API allows replying to comments within a design on Canva, with a limit of 100 replies per comment.

Create design comment in preview api

Creates a new comment thread on a Canva design.

Create Design Import Job

Imports an external file as a new Canva design.

Create Design Resize Job

Creates a resized copy of an existing design (Canva Pro/Enterprise only).

Create URL Asset Upload Job

Tool to create an asynchronous Canva asset import job from a public URL.

Delete asset by id

You can delete an asset by specifying its `assetId`.

Exchange oauth 2 0 access or refresh token

The OAuth 2.

Fetch asset upload job status

Polls for asset upload job completion status.

Fetch canva connect signing public keys

The API for verifying Canva webhooks, 'connect/keys,' is in preview, meaning unstable, not for public integrations, and provides a rotating JWK for signature verification to prevent replay attacks.

Fetch current user details

Returns the User ID, Team ID, and display name of the user account associated with the provided access token.

Fetch design metadata and access information

Gets the metadata for a design.

Get design comment thread replies

Retrieves a list of replies for a comment or suggestion thread on a design.

Get specific design comment reply

Retrieves a specific reply to a comment or suggestion thread on a design.

Get design export job result

Polls for design export job completion status.

Get designs designid comments threadid

Retrieves metadata for a comment or suggestion thread on a design.

Get design export formats

Lists available file formats for exporting a design.

Get URL asset upload job status

Tool to retrieve the status and result of a URL-based asset upload job.

Get URL import job status

Polls for URL import job completion status.

Get user capabilities

Lists the API capabilities for the user account associated with the provided access token.

Initiate canva design autofill job

Upcoming brand template ID updates require migration within 6 months.

List design pages with pagination

Preview API for Canva: subject to unannounced changes and not for public integrations.

List folder items by type with sorting

Lists the items in a folder, including each item's `type`.

List User Designs

Provides a summary of Canva user designs, includes search filtering, and allows showing both self-created and shared designs with sorting options.

Move item to specified folder

Transfers an item to a different folder by specifying both the destination folder's ID and the item's ID.

Create new Canva design

Creates a new Canva design with preset type or custom dimensions.

Post designs designid comments

Creates a comment thread on a Canva design.

Create reply to comment thread

Tool to create a reply to a comment or suggestion thread on a Canva design.

Start design export job

Starts a new asynchronous job to export a Canva design file.

Create folder

Tool to create a folder in Canva.

Create URL Import Job

Tool to start an asynchronous job to import an external file from a URL as a new design in Canva.

Remove folder and move contents to trash

Deletes a folder by moving the user's content to Trash and reassigning other users' content to their top-level projects.

Retrieve app public key set

Returns the Json Web Key Set (public keys) of an app.

Retrieve asset metadata by id

You can retrieve the metadata of an asset by specifying its `assetId`.

Retrieve brand template dataset definition

Canva's brand template IDs will change later this year, including a 6-month integration migration.

Retrieve canva enterprise brand template metadata

Upcoming update will change brand template IDs; integrations must migrate within 6 months.

Retrieve design autofill job status

API users with Canva Enterprise membership can retrieve design autofill job results, potentially requiring multiple requests until a `success` or `failed` status is received.

Retrieve design import job status

Polls for design import job completion status.

Retrieve Design Resize Job Status

Retrieves the status and results of a design resize job.

Retrieve folder details by id

Gets the name and other details of a folder using a folder's `folderID`.

Retrieveuserprofiledata

Currently, this returns the display name of the user account associated with the provided access token.

Revoke oauth tokens

Revoke a refresh token to end its lineage and user consent, requiring re-authentication.

Update asset s name and tags by id

You can update the name and tags of an asset by specifying its `assetId`.

Update folder details by id

Updates a folder's details using its `folderID`.

Validate oauth token properties

Check an access token's validity and properties via introspection, requiring authentication.

SETUP GUIDE

Connect Canva MCP Tool with your Agent

1

Install Composio

typescript
npm install @composio/core ai @ai-sdk/openai @ai-sdk/mcp
Install the Composio SDK and Claude Agent SDK
2

Create Tool Router Session

typescript
import { Composio } from '@composio/core';

const composio = new Composio({ apiKey: 'your-api-key' });

console.log("Creating Tool Router session...");
const { mcp } = await composio.create('your-user-id');
console.log(`Tool Router session created: ${mcp.url}`);
Initialize the Composio client and create a Tool Router session
3

Connect to AI Agent

typescript
import { openai } from '@ai-sdk/openai';
import { experimental_createMCPClient as createMCPClient } from '@ai-sdk/mcp';
import { generateText, stepCountIs } from 'ai';

const client = await createMCPClient({
  transport: {
    type: 'http',
    url: mcp.url,
    headers: { 'x-api-key': 'your-composio-api-key' }
  }
});

const tools = await client.tools();

const { text } = await generateText({
  model: openai('gpt-4o'),
  tools,
  messages: [{ role: 'user', content: 'Create a new Canva design with Instagram post template' }],
  stopWhen: stepCountIs(5)
});

console.log(`Agent: ${text}`);
Use the MCP server with your AI agent
SETUP GUIDE

Connect Canva API Tool with your Agent

1

Install Composio

typescript
npm install @composio/openai
Install the Composio SDK
2

Initialize Composio and Create Tool Router Session

typescript
import OpenAI from 'openai';
import { Composio } from '@composio/core';
import { OpenAIResponsesProvider } from '@composio/openai';

const composio = new Composio({
  provider: new OpenAIResponsesProvider(),
});
const openai = new OpenAI({});
const session = await composio.create('your-user-id');
Import and initialize Composio client, then create a Tool Router session
3

Execute Canva Tools via Tool Router with Your Agent

typescript
const tools = session.tools;
const response = await openai.responses.create({
  model: 'gpt-4.1',
  tools: tools,
  input: [{
    role: 'user',
    content: 'Create a new Instagram post using my brand template'
  }],
});
const result = await composio.provider.handleToolCalls(
  'your-user-id',
  response.output
);
console.log(result);
Get tools from Tool Router session and execute Canva actions with your Agent

Why Use Composio?

AI Native Canva Integration

  • Supports both Canva MCP and direct API based integrations
  • Structured, LLM-friendly schemas for reliable tool execution
  • Rich coverage for reading, writing, and querying your Canva data

Managed Auth

  • Built-in OAuth handling with automatic token refresh and rotation
  • Central place to manage, scope, and revoke Canva access
  • Per user and per environment credentials instead of hard-coded keys

Agent Optimized Design

  • Tools are tuned using real error and success rates to improve reliability over time
  • Comprehensive execution logs so you always know what ran, when, and on whose behalf

Enterprise Grade Security

  • Fine-grained RBAC so you control which agents and users can access Canva
  • Scoped, least privilege access to Canva resources
  • Full audit trail of agent actions to support review and compliance
FAQ

Frequently asked questions

No. Composio provides a managed OAuth app for Canva, so you sign in with your normal Canva account and approve access. If you later want the consent screen to show your own company name, you can add your own Canva OAuth app in the Composio dashboard, and every connection after that uses it.

Yes! Composio's Tool Router enables agents to use multiple toolkits. Learn more.

Yes. Composio is SOC 2 Type II compliant and is built to keep your Canva connection and credentials secure. OAuth tokens and API keys are encrypted, and sensitive customer data is protected at rest and in transit.

Composio also undergoes independent security testing and continuously monitors its systems for security threats. You can review the latest reports and policies in the Composio Trust Center.

Composio maintains and updates all toolkit integrations automatically, so your agents always work with the latest API versions.

When you connect a Canva account through Composio, every action runs under that account, so anything the agent creates, sends, or changes shows up in Canva as done by you. Keep an approval step in your prompt for actions with side effects, such as sending or deleting, and have the agent draft first.

Exactly the ones Canva lists on its consent screen when you connect. Review that screen before approving. If you connect a work account, your Canva administrator may need to approve the app first, and you can revoke the access inside Canva whenever you want.

Yes. Composio supports multiple connected accounts for the same app, and that works in Claude, ChatGPT, or any other assistant you connect through Composio. Give each Canva connection a name such as work or personal, and the assistant uses the one you mention in the request. Each account keeps its own credentials and nothing is merged.

Composio refreshes Canva tokens automatically, so day to day you do nothing. If you revoke access inside Canva, or Canva invalidates the session, the connection shows as expired in Composio and the agent stops acting on that account until you reconnect it, which is a single sign-in.

Composio's free plan includes 100,000 tool calls per month with no credit card, and up to 20,000 of those can run through Composio-managed apps like Canva. Personal Canva use rarely gets near that. Paid plans add higher limits and team features, and Canva's own pricing is unaffected.

Built-in connectors usually give one AI access to a limited set of apps. Many people use Composio because it lets their AI connect to more apps than it normally supports, or connect to multiple accounts for the same app (e.g. connect Claude to multiple Canva accounts).

With Composio, you connect Canva once and then use it across different AI assistants without setting it up separately in each one. Connect your apps to Composio once, then connect Composio to whichever AI you use, whether that's Claude, ChatGPT, Hermes, or your own custom assistant.

Start with Canva.It takes 30 seconds.

Managed auth, hosted MCP servers, and every Canva tool your agent needs.Free to start.

Start building