Skip to main content
Glama
README.md
# mcp-canva — MCP server untuk Canva + editor web "Rakit Desain"

Repo ini berdiri sendiri, terpisah dari MCP CapCut ([bryankwandou/MCPCAPCUT](https://github.com/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
```bash
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`):
```json
{ "mcpServers": { "canva": { "command": "mcp-canva" } } }
```

## Cek koneksi
```bash
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.

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
ResponsivenessNo issues