Canva MCP Server
Integrates with Canva, providing tools to list designs, retrieve design details, create designs (e.g., presentations, documents, Instagram posts), export designs to PNG/JPG/PDF/PPTX, manage folders, upload assets, and check authentication status via the Canva Connect API.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Canva MCP Server Create a new Instagram post design titled 'Spring Sale' in Canva."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
🎨 Canva MCP Server
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: Canva MCP Server
🧰 Available Tools
Once connected, you can ask your AI:
Tool | What does it do? | Example Prompt |
| Lists your recent designs with thumbnails and editing links. | "Show me my recent presentations in Canva" |
| Gets the details, pages, and URLs of a design by its ID. | "Give me the information for the design with ID DAHKDKZXFcQ" |
| Creates a new design (presentation, document, Instagram post, etc.). | "Create an Instagram post in Canva titled Launch 2026" |
| Exports a design to PNG, JPG, PDF, or PPTX and gives you the download link. | "Export my presentation to PDF format" |
| Explores the contents of your Canva root folder. | "What items do I have in my main Canva folder?" |
| Lists the items inside a specific folder. | "Show me the files inside the folder with ID X" |
| Creates a new folder in your Canva. | "Create a folder called Projects 2026" |
| Uploads a local image from your computer to Canva. | "Upload the image ./banner.png to my Canva account" |
| Verifies the connection status and validity of the tokens. | "Check if my Canva connection is active" |
🔑 Initial Credential Setup
Go to Canva Developers and click on
Your integrations.Click on
Create an integration$\rightarrow$ ChoosePublic.
In
Credentials, copy your Client ID and generate your Client Secret.In
Scopes, enable the permissions (these are the only supported ones):design:content:read,design:content:write,design:meta:readasset:read,asset:write,folder:read,folder:write,app:read

In
Authentication, add the exact redirect URL:http://127.0.0.1:3000/callback
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-authYour 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 estructuradoEngineering Features:
🔐 Secure OS Vault: Tokens are stored in the system directory (
~/.config/canva-mcp/on Linux/Mac or%APPDATA%\canva-mcpon Windows) with POSIX0600permissions (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.
Available Tools
10 toolscanva_create_designB
Crea un nuevo diseño en Canva (por ejemplo: presentación, documento, post de Instagram, flyer, banner o dimensiones personalizadas).
Inputs: title, assetId, presetName, customWidth, +1 more.
canva_create_folderC
Crea una nueva carpeta en Canva.
Inputs: name (required), parentFolderId.
canva_export_designA
Exporta un diseño de Canva a formato PNG, JPG, PDF o PPTX y devuelve los enlaces de descarga.
Inputs: format (required), designId (required), quality, paperSize.
canva_get_auth_statusA
Verifica el estado de la conexión, validez del token y permisos activos de Canva.
Inputs: no named parameters.
canva_get_designA
Obtiene los detalles, miniaturas y enlaces de edición/visualización de un diseño por su ID.
Inputs: designId (required).
canva_get_profileA
Obtiene el perfil del usuario autenticado y el equipo actual en Canva.
Inputs: no named parameters.
canva_list_designsC
Lista los diseños de Canva del usuario (presentaciones, documentos, posts, etc.).
Inputs: sortBy, ownership, continuation.
canva_list_folder_itemsA
Lista el contenido (diseños, imágenes, subcarpetas) dentro de una carpeta específica.
Inputs: folderId (required), continuation.
canva_list_foldersC
Lista los elementos y subcarpetas dentro de la carpeta raíz de Canva.
Inputs: itemType, continuation.
canva_upload_assetB
Sube un archivo de imagen o recurso local a Canva.
Inputs: name (required), filePath (required).
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 10 tools
Most tools have clearly distinct purposes, but canva_list_folders and canva_list_folder_items overlap: one lists root folder contents and the other lists contents of a specific folder, which could cause selection confusion. The rest are well separated by resource and action.
All tool names follow a consistent snake_case pattern with the canva_ prefix and a clear verb_noun structure (list_designs, get_design, create_folder, upload_asset). This makes the tool set predictable and easy to navigate.
Ten tools is a well-scoped size for a Canva integration, covering authentication, design CRUD, folder operations, asset upload, and export. Each tool serves a meaningful purpose without the set feeling bloated or too thin.
The server covers the main Canva workflows: viewing profile, listing/getting/creating designs, exporting, folder navigation/creation, and uploading assets. Minor gaps include no delete or update operations for designs/folders and no asset listing, but these are not critical for typical use.
Maintenance
Related MCP Connectors
Create, search, edit, and export designs and assets from Canva.
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 images, video and audio; reuse assets and build Canvas workflows from your AI assistant.
Turn Canva designs into templates and render image/PDF variants via the Layerre API.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables programmatic design creation and manipulation on the Canvelete platform through AI assistants. Supports design management, canvas element manipulation, template application, asset management, and real-time synchronization with the design editor.26 npmMIT
- FlicenseNot gradedqualityBmaintenanceEnables AI assistants to interact with the Canva Connect REST API, supporting design creation, brand template autofill, asset uploads, folder management, and design exports to PDF, PNG, JPG, PPTX, and MP4.-
- AlicenseNot gradedqualityCmaintenanceEnables AI assistants to generate professional presentations, manage Canva designs, and automate visual workflows through the Canva Connect API.MIT
- AlicenseCqualityCmaintenanceEnables 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.28MIT