Canva MCP for AI Agents

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.
Trusted by
AWS
Glean
Zoom
Airtable

30 min · no commitment · see it on your stack

Canva Logo
Gradient Top
Gradient Middle
Gradient Bottom
divider

Try Canva now

Enter a prompt below to test the integration in our Tool Router playground. You'll be redirected to sign in and try it live.

Supported Tools

Tools
Access user specific brand templates listLists brand templates available to the user (Canva Enterprise only).
Create Asset Upload JobUploads an asset file to the user's Canva content library.
Create comment reply in designThis preview API allows replying to comments within a design on Canva, with a limit of 100 replies per comment.
Create design comment in preview apiCreates a new comment thread on a Canva design.
Create Design Import JobImports an external file as a new Canva design.
Create Design Resize JobCreates a resized copy of an existing design (Canva Pro/Enterprise only).
Create URL Asset Upload JobTool to create an asynchronous Canva asset import job from a public URL.
Delete asset by idYou can delete an asset by specifying its `assetId`.
Exchange oauth 2 0 access or refresh tokenThe OAuth 2.
Fetch asset upload job statusPolls for asset upload job completion status.
Fetch canva connect signing public keysThe 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 detailsReturns the User ID, Team ID, and display name of the user account associated with the provided access token.
Fetch design metadata and access informationGets the metadata for a design.
Get design comment thread repliesRetrieves a list of replies for a comment or suggestion thread on a design.
Get specific design comment replyRetrieves a specific reply to a comment or suggestion thread on a design.
Get design export job resultPolls for design export job completion status.
Get designs designid comments threadidRetrieves metadata for a comment or suggestion thread on a design.
Get design export formatsLists available file formats for exporting a design.
Get URL asset upload job statusTool to retrieve the status and result of a URL-based asset upload job.
Get URL import job statusPolls for URL import job completion status.
Get user capabilitiesLists the API capabilities for the user account associated with the provided access token.
Initiate canva design autofill jobUpcoming brand template ID updates require migration within 6 months.
List design pages with paginationPreview API for Canva: subject to unannounced changes and not for public integrations.
List folder items by type with sortingLists the items in a folder, including each item's `type`.
List User DesignsProvides 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 folderTransfers an item to a different folder by specifying both the destination folder's ID and the item's ID.
Create new Canva designCreates a new Canva design with preset type or custom dimensions.
Post designs designid commentsCreates a comment thread on a Canva design.
Create reply to comment threadTool to create a reply to a comment or suggestion thread on a Canva design.
Start design export jobStarts a new asynchronous job to export a Canva design file.
Create folderTool to create a folder in Canva.
Create URL Import JobTool 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 trashDeletes a folder by moving the user's content to Trash and reassigning other users' content to their top-level projects.
Retrieve app public key setReturns the Json Web Key Set (public keys) of an app.
Retrieve asset metadata by idYou can retrieve the metadata of an asset by specifying its `assetId`.
Retrieve brand template dataset definitionCanva's brand template IDs will change later this year, including a 6-month integration migration.
Retrieve canva enterprise brand template metadataUpcoming update will change brand template IDs; integrations must migrate within 6 months.
Retrieve design autofill job statusAPI 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 statusPolls for design import job completion status.
Retrieve Design Resize Job StatusRetrieves the status and results of a design resize job.
Retrieve folder details by idGets the name and other details of a folder using a folder's `folderID`.
RetrieveuserprofiledataCurrently, this returns the display name of the user account associated with the provided access token.
Revoke oauth tokensRevoke a refresh token to end its lineage and user consent, requiring re-authentication.
Update asset s name and tags by idYou can update the name and tags of an asset by specifying its `assetId`.
Update folder details by idUpdates a folder's details using its `folderID`.
Validate oauth token propertiesCheck an access token's validity and properties via introspection, requiring authentication.
Python
TypeScript

Install Composio

python
pip install composio claude-agent-sdk
Install the Composio SDK and Claude Agent SDK

Create Tool Router Session

python
from composio import Composio
from claude_agent_sdk import ClaudeSDKClient, ClaudeAgentOptions

composio = Composio(api_key='your-composio-api-key')
session = composio.create(user_id='your-user-id')
url = session.mcp.url
Initialize the Composio client and create a Tool Router session

Connect to AI Agent

python
import asyncio

options = ClaudeAgentOptions(
    permission_mode='bypassPermissions',
    mcp_servers={
        'tool_router': {
            'type': 'http',
            'url': url,
            'headers': {
                'x-api-key': 'your-composio-api-key'
            }
        }
    },
    system_prompt='You are a helpful assistant with access to Canva tools.',
    max_turns=10
)

async def main():
    async with ClaudeSDKClient(options=options) as client:
        await client.query('Create a new Canva design with Instagram post template')
        async for message in client.receive_response():
            if hasattr(message, 'content'):
                for block in message.content:
                    if hasattr(block, 'text'):
                        print(block.text)

asyncio.run(main())
Use the MCP server with your AI 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

Frequently Asked Questions

Do I need my own developer credentials to use Canva with Composio?

No, you can get started immediately using Composio's built-in Canva app. For production, we recommend configuring your own OAuth credentials.

Can I use multiple toolkits together?

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

Is Composio secure?

Composio is SOC 2 and ISO 27001 compliant with all data encrypted in transit and at rest. Learn more.

What if the API changes?

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

Used by agents from

Context
Letta
glean
HubSpot
Agent.ai
Altera
DataStax
Entelligence
Rolai
Context
Letta
glean
HubSpot
Agent.ai
Altera
DataStax
Entelligence
Rolai
Context
Letta
glean
HubSpot
Agent.ai
Altera
DataStax
Entelligence
Rolai

Never worry about agent reliability

We handle tool reliability, observability, and security so you never have to second-guess an agent action.