Skip to main content
Glama

mcp-canva — MCP server untuk Canva + editor web "Rakit Desain"

Repo ini berdiri sendiri, terpisah dari MCP CapCut (bryankwandou/MCPCAPCUT).

Bagian

Isi

Server MCP

Tool canva_* lewat Canva Connect API resmi (OAuth): list/buat desain, upload aset, export, brand template + autofill, resize; catalog; desktop_* (kontrol layar, opsional)

Editor web

src/creative_mcp/editor/: editor desain bergaya Canva (template, elemen, teks, animasi, presentasi, export PNG/JPG/PDF/PPTX). Dideploy ke Vercel sebagai situs statis

Daftar fitur

FEATURES.md / features.html: fitur Canva Free vs Pro dan status di editor ini

Elemen/fitur Pro Canva tidak dibuka tanpa langganan; tidak ada aset Canva yang disalin.

Instalasi

git clone https://github.com/bryankwandou/MCPCANVA && cd MCPCANVA
pip install -e ".[desktop]"
mcp-canva login        # sekali: browser terbuka ke Canva, klik Allow

App Canva dibuat di https://www.canva.com/developers/apps (Outside Canva), Redirect URL http://127.0.0.1:3001/oauth/redirect. Client ID/Secret ditanyakan saat login dan disimpan di .env.

Tambahkan ke Claude Desktop (claude_desktop_config.json):

{ "mcpServers": { "canva": { "command": "mcp-canva" } } }

Related MCP server: Canva MCP Server

Cek koneksi

python scripts/verify_connection.py --write

Berhasil bila muncul [OK ] Canva: akun terhubung dengan nama akun Anda dan desain "Tes MCP …" muncul di Canva.

Desain native dari HTML (tanpa API, tanpa PPTX)

Lewat Chrome yang sudah login Canva (debug port 9222):

Tool

Fungsi

canva_html_to_canva(html_path, title)

Render HTML di headless Chrome; tiap teks jadi kotak teks Canva (posisi, font, ukuran, warna sama), tiap <img> jadi gambar Canva, sisanya satu gambar latar

canva_native_build(spec)

Rakit desain dari spec JSON {title, width, height, elements:[image/text]}

canva_browser_upload(files)

Upload file ke Uploads Canva

Tandai elemen dengan data-canva="raster" agar tetap di gambar latar (mis. grup yang diputar). CLI: mcp-canva html file.html "Judul".

Deploy editor ke Vercel

Import repo ini di Vercel; vercel.json sudah menyetel output src/creative_mcp/editor tanpa build.

Available Tools

28 tools
cache_clearA

Clear cached data ('' = everything, 'canva:' = only Canva).

Inputs: prefix.

canva_autofillC

Generate a new design from a brand template. data example: {"headline": {"type": "text", "text": "Promo"}, "photo": {"type": "image", "asset_id": "..."}}

Inputs: data (required), brand_template_id (required), title.

canva_brand_template_fieldsC

Show the autofillable fields (text/image/chart) of a brand template.

Inputs: brand_template_id (required).

canva_create_designB

Create a design. preset: 'doc', 'whiteboard' or 'presentation'; or give width/height in px. Optionally insert an uploaded asset. Returns edit_url to open in the Canva editor.

Inputs: title (required), width, height, preset, +1 more.

canva_create_showcase_templateB

Create the masterpiece Canva showcase template with real photography and 40+ vector/text elements. Generates the editable PPTX and optionally imports it into Canva cloud so it appears in Canva Desktop.

Inputs: cta, title, subtitle, import_to_canva.

canva_exportB

Export a design (png, jpg, pdf, mp4, gif, pptx). Returns download URLs.

Inputs: design_id (required), pages, format.

canva_get_designB

Get design metadata including edit/view URLs and thumbnail.

Inputs: design_id (required).

canva_get_pagesC

List the pages of a design with thumbnails.

Inputs: design_id (required).

canva_import_fileC

Import a local PDF/PPTX/AI/PSD/Keynote file as a new editable Canva design.

Inputs: file_path (required), title.

canva_import_urlC

Import a file from a public URL as a new editable Canva design.

Inputs: url (required), title (required), mime_type.

canva_list_brand_templatesC

List brand templates (Canva Pro/Teams/Enterprise).

Inputs: query.

canva_list_designsC

Search/list designs in the connected Canva account (cached 10 minutes).

Inputs: query, refresh, continuation.

canva_list_folderB

List items in a Canva folder ('root' for the top level).

Inputs: folder_id.

canva_make_from_templateC

Generate a full original design (instagram_post | story | youtube_thumbnail | presentation) with separate, editable elements, and import it into Canva as a normal editable design. For presentation, body items become slides ("Judul: detail").

Inputs: title (required), template (required), cta, body, +6 more.

canva_open_desktopC

Launch or focus the Canva Desktop application installed on this PC. If design_id is supplied, it targets that design.

Inputs: design_id.

canva_open_editorB

Open a Canva design in the browser on this computer, ready for desktop_* control. Workflow to use ANY element your account has (free or paid plan): desktop_screenshot -> click 'Elements' in the left panel -> desktop_type the search term -> desktop_drag the result onto the page -> desktop_screenshot to verify. Elements marked with a crown are Pro.

Inputs: design_id (required).

canva_resizeC

Copy a design into a new size (premium; free plans get a small trial quota, reported in trial_information).

Inputs: design_id (required), width, height, preset.

canva_upload_assetC

Upload a local image/video/audio file to the Canva media library.

Inputs: file_path (required), name.

canva_whoamiA

Show the connected Canva user and the plan capabilities (e.g. autofill, brand templates).

Inputs: no named parameters.

catalogA

ONE call that shows everything usable right now: Canva account capabilities (what your plan allows), recent designs, brand templates, CapCut projects and local media. Results are cached (Canva profile 24h, designs 10m, media 10m) - pass refresh=True to re-fetch.

Inputs: refresh.

desktop_clickC

Click at screen coordinates.

Inputs: x (required), y (required), button, clicks. Returns: result

desktop_dragB

Drag and drop from (x1,y1) to (x2,y2) - e.g. an element/clip onto the canvas or timeline.

Inputs: x1 (required), x2 (required), y1 (required), y2 (required), +1 more. Returns: result

desktop_hotkeyC

Press a key combination, e.g. ["ctrl","z"] or ["space"].

Inputs: keys (required). Returns: result

desktop_open_urlA

Open a URL in the default browser on this computer (e.g. a Canva or CapCut web editor).

Inputs: url (required). Returns: result

desktop_screenshotB

Take a screenshot of your screen (to see the CapCut/Canva editor). Coordinates for the other desktop tools are in real screen pixels: divide image coordinates by 'scale'.

Inputs: max_width.

desktop_scrollC

Scroll (positive = up).

Inputs: amount (required), x, y. Returns: result

desktop_typeC

Type text into the focused field.

Inputs: text (required). Returns: result

studio_openA

Start the bridge and return the Creative Studio dashboard link (designs, video projects, templates, CapCut library, Canva).

Inputs: no named parameters.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    C2.9/5.0

    Scored across 28 tools

    Disambiguation4/5

    Tools are mostly distinct, with clear domain prefixes separating Canva API from desktop automation. Some overlap exists among design-creation tools (make_from_template, create_showcase_template, autofill, create_design) and among opening tools (open_editor vs open_url), but descriptions clarify intended use.

    Naming Consistency3/5

    All names use snake_case with domain prefixes (canva_, desktop_), which is readable and consistent in casing. However action patterns are mixed: verb_noun (list_designs), verb-only (export, autofill), noun-only (catalog, screenshot), and noun_verb (cache_clear, studio_open).

    Tool Count2/5

    28 tools exceeds the 25-tool threshold for an overly large set, even for a broad Canva and desktop automation domain. Several desktop automation tools could be consolidated or made optional, making the overall surface feel heavy.

    Completeness3/5

    Core Canva workflows are covered: create, import, export, autofill, resize, brand templates, and folder listing. Notable gaps remain, such as no delete/update design, no asset listing/deletion, no folder creation or moves, and CapCut operations rely on brittle desktop automation rather than dedicated tools.

    Maintenance

    ActivityMaintained
    ResponsivenessOutdated data

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      D
      maintenance
      A Model Context Protocol (MCP) server for Canva integration. Connect Claude Code or any MCP-compatible AI client to your Canva account to search designs, generate AI designs, edit content, manage folders, and collaborate through comments.
      2
      MIT
    • F
      license
      Not graded
      quality
      B
      maintenance
      Enables 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.
      -