Canva MCP server
Last verified: 2026-09
Create and edit Canva designs.
Community Developer tools Needs a secret Claude Desktop, Cursor, Windsurf, Claude Code, VS Code
What it does
Canva Connect MCP. Designs and exports through Canva's API. Needs an OAuth app (client id/secret). Community listing — confirm the current package name on Canva's docs before installing.
It sits in Developer tools: Split this category in two.
Good for
- List designs the connected Canva account can see.
- Export a design you already own for a blog or deck.
- Create something only after OAuth is on a throwaway brand account.
- Skip it for product UI — that is Figma.
Tools
- list / get designs — What the connected account can see.
- export / create (if the current server exposes them) — Writes — check tools after connect.
Config (Claude Desktop / Cursor / Windsurf)
Paste the JSON below. Same mcpServers shape. Replace placeholder paths and secrets.
Windows paths look like C:\\Users\\you\\project, not /path/to.
Host-side steps →
Claude Desktop
| OS | Config file |
|---|---|
| macOS | ~/Library/Application Support/Claude/claude_desktop_config.json |
| Windows | %APPDATA%\Claude\claude_desktop_config.json
(usually C:\Users\<you>\AppData\Roaming\Claude\) |
| Linux | ~/.config/Claude/claude_desktop_config.json |
Cursor
| Scope | macOS / Linux | Windows |
|---|---|---|
| This project | .cursor/mcp.json in the repo root | |
| This user | ~/.cursor/mcp.json |
%USERPROFILE%\.cursor\mcp.json |
Windsurf
| OS | Config file |
|---|---|
| macOS / Linux | ~/.codeium/windsurf/mcp_config.json |
| Windows | %USERPROFILE%\.codeium\windsurf\mcp_config.json |
{
"mcpServers": {
"canva": {
"command": "npx",
"args": [
"-y",
"canva-mcp"
],
"env": {
"CANVA_CLIENT_ID": "...",
"CANVA_CLIENT_SECRET": "..."
}
}
}
}
Windsurf remote MCP: use serverUrl instead of url if the block below is HTTP.
One-liner: npx -y canva-mcp
Secrets it wants: CANVA_CLIENT_ID, CANVA_CLIENT_SECRET
How to get started
- Create a Canva Connect app. Put the client id/secret in env.
- Complete OAuth once. Ask it to list recent designs.
- Do not connect a brand account you share with the whole company on day one.
Access risk
OAuth can read (and maybe publish) brand templates. Treat it as design-system access.
When to skip it
Skip it for Figma frames or for local image files.
Instead: Figma, EverArt, Filesystem.
Vs alternatives
| Server | Official? | Needs a secret? | Best for |
|---|---|---|---|
| Canva | No | Yes | Create and edit Canva designs. |
| Figma | No | Yes | Read Figma file structure and screenshots. |
| EverArt | Yes | Yes | Generate images through EverArt. |
| Filesystem | Yes | No | Read and write files inside a folder you choose. |
More in Developer tools
FAQ
Is the package name stable?
Community listing. Confirm Canva's current Connect MCP docs before putting client id/secret in env.
What is the auth?
Canva Connect OAuth app — CANVA_CLIENT_ID and CANVA_CLIENT_SECRET, then a browser consent.
Can it publish to the brand kit?
If the app's scopes allow writes/publishes, treat it as design-system access. Start with list/get.
Canva or EverArt?
Canva is existing designs and brand templates. EverArt is generate-an-image.