Skip to main content
Glama
elisbanpaco

Canva MCP Server

by elisbanpaco

🎨 Canva MCP Server

CI License: MIT Node.js Version NPM Version MCP Standard TypeScript Tested with Vitest

Connect your AI assistants (Google Antigravity, Gemini CLI, Claude Desktop, Cursor) directly to your Canva account through the official API (Canva Connect API). Create, search, export, and upload designs using natural language.


⚡ Quickstart

1. Direct Setup via npx

You can run it directly with npx without needing to clone the repository:

🤖 Google Antigravity / Gemini CLI (~/.gemini/config/mcp_config.json)

{
  "mcpServers": {
    "canva": {
      "command": "npx",
      "args": ["-y", "@elisbanpaco/mcp-canva-gemini-cli"],
      "env": {
        "CANVA_CLIENT_ID": "tu_client_id",
        "CANVA_CLIENT_SECRET": "tu_client_secret"
      }
    }
  }
}

🟣 Claude Desktop (claude_desktop_config.json)

{
  "mcpServers": {
    "canva": {
      "command": "npx",
      "args": ["-y", "@elisbanpaco/mcp-canva-gemini-cli"],
      "env": {
        "CANVA_CLIENT_ID": "tu_client_id",
        "CANVA_CLIENT_SECRET": "tu_client_secret"
      }
    }
  }
}

💻 Cursor IDE (.cursor/mcp.json)

{
  "mcpServers": {
    "canva": {
      "command": "npx",
      "args": ["-y", "@elisbanpaco/mcp-canva-gemini-cli"],
      "env": {
        "CANVA_CLIENT_ID": "tu_client_id",
        "CANVA_CLIENT_SECRET": "tu_client_secret"
      }
    }
  }
}

Related MCP server: Canvelete

🧰 Available Tools

Once connected, you can ask your AI:

Tool

What does it do?

Example Prompt

canva_list_designs

Lists your recent designs with thumbnails and editing links.

"Show me my recent presentations in Canva"

canva_get_design

Gets the details, pages, and URLs of a design by its ID.

"Give me the information for the design with ID DAHKDKZXFcQ"

canva_create_design

Creates a new design (presentation, document, Instagram post, etc.).

"Create an Instagram post in Canva titled Launch 2026"

canva_export_design

Exports a design to PNG, JPG, PDF, or PPTX and gives you the download link.

"Export my presentation to PDF format"

canva_list_folders

Explores the contents of your Canva root folder.

"What items do I have in my main Canva folder?"

canva_list_folder_items

Lists the items inside a specific folder.

"Show me the files inside the folder with ID X"

canva_create_folder

Creates a new folder in your Canva.

"Create a folder called Projects 2026"

canva_upload_asset

Uploads a local image from your computer to Canva.

"Upload the image ./banner.png to my Canva account"

canva_get_auth_status

Verifies the connection status and validity of the tokens.

"Check if my Canva connection is active"


🔑 Initial Credential Setup

  1. Go to Canva Developers and click on Your integrations.

  2. Click on Create an integration $\rightarrow$ Choose Public.

    Create Canva Integration

  3. In Credentials, copy your Client ID and generate your Client Secret.

  4. In Scopes, enable the permissions (these are the only supported ones):

    • design:content:read, design:content:write, design:meta:read

    • asset:read, asset:write, folder:read, folder:write, app:read

    Scopes configuration in Canva

  5. In Authentication, add the exact redirect URL: http://127.0.0.1:3000/callback

    Add Redirect URL

Authentication (First time only)

Since Canva requires per-user credentials, open your terminal and run this to authenticate and securely store your tokens:

# En Linux/macOS
export CANVA_CLIENT_ID="tu_client_id"
export CANVA_CLIENT_SECRET="tu_client_secret"
npx -p @elisbanpaco/mcp-canva-gemini-cli mcp-canva-auth

# En Windows (PowerShell)
$env:CANVA_CLIENT_ID="tu_client_id"
$env:CANVA_CLIENT_SECRET="tu_client_secret"
npx -p @elisbanpaco/mcp-canva-gemini-cli mcp-canva-auth

Your browser will open to confirm. Done! Your tokens will be saved with 0600 permissions on your operating system.


🏗️ Architecture and Security

sequenceDiagram
    autonumber
    actor User as Usuario / Asistente IA
    participant MCP as Canva MCP Server (Stdio)
    participant Vault as Bóveda de Tokens (~/.config/canva-mcp)
    participant CanvaOAuth as Canva OAuth2 (PKCE S256)
    participant CanvaAPI as Canva Connect API (REST v1)

    Note over User,CanvaAPI: 1. Flujo de Autenticación (pnpm auth)
    MCP->>CanvaOAuth: Inicia flujo PKCE con desafío SHA-256
    CanvaOAuth-->>MCP: Redirección con Código de Autorización
    MCP->>CanvaOAuth: Intercambio de código por Tokens de acceso
    CanvaOAuth-->>MCP: Access Token + Refresh Token
    MCP->>Vault: Guarda en almacenamiento seguro (Permisos 0600)

    Note over User,CanvaAPI: 2. Ejecución de Herramientas en Tiempo Real
    User->>MCP: Llama a herramienta (ej. canva_list_designs)
    MCP->>Vault: Carga token válido (Auto-renovación con Mutex)
    MCP->>CanvaAPI: Petición HTTP Bearer con Exponential Backoff
    CanvaAPI-->>MCP: Respuesta JSON con metadatos y URLs
    MCP-->>User: Resultado estructurado

Engineering Features:

  • 🔐 Secure OS Vault: Tokens are stored in the system directory (~/.config/canva-mcp/ on Linux/Mac or %APPDATA%\canva-mcp on Windows) with POSIX 0600 permissions (readable only by your user).

  • Anti-collision Mutex: Prevents race conditions when the model runs multiple tools in parallel during token renewal.

  • 🛡️ Exponential Backoff: Automatic retries with exponential backoff on rate limits (HTTP 429) and temporary outages (5xx).

  • 🧪 100% Test Coverage: Complete unit test suite with Vitest.


🧪 Testing and Development

# Ejecutar suite de pruebas unitarias
pnpm test

# Verificación estricta de tipos TypeScript
pnpm typecheck

# Compilar paquete de producción
pnpm build

📄 License

This project is licensed under the MIT license. See the LICENSE file for more details.

A
license - permissive license
A
quality
A
maintenance

Maintenance

Maintainers
Response time
0dRelease cycle
2Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

View all related MCP servers

Related MCP Connectors

  • Sync Lightroom, Figma, Dropbox & Canva assets to WordPress and Shopify via natural language.

  • Sync Lightroom, Figma, Dropbox & Canva assets to WordPress and Shopify via natural language.

  • Connect AI assistants to Stellary projects, boards, documents, and governed agent workflows.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/elisbanpaco/mcp-canva-gemini-cli'

If you have feedback or need assistance with the MCP directory API, please join our Discord server