Canvora

Canvora(canvora.ai)公式リモートMCPサーバー:あらゆるアイデア、URL、ドキュメント、PDFをブランドに沿ったビジュアルに変換 – カルーセル、投稿、デッキ、インフォグラフィックを100以上のフォーマットで作成可能、150以上の言語にネイティブ対応。ブランドキット、ローカライゼーション、PDF/PPTXエクスポート。無料プランあり。npx @canvora/cli

ドキュメント

Install as a skill

npx skills add canvora/canvora-mcp

Canvora — visuals for AI agents

npm Canvora MCP server License: MIT

Give your agent a design department. Turn any idea, URL, doc, or PDF into finished, on-brand visuals: 82 formats (posts, carousels, decks, PDFs, ads, infographics, landing-page kits), generated natively in 150+ languages — including RTL and CJK. Brand kits keep every output in the client's colors, fonts, logo, and tone.

canvora generate --idea "5 tips for remote work" \
  --format linkedin_carousel --slides linkedin_carousel=5 \
  --brand $BRAND_ID --wait --json
# → 5 finished branded slides on CDN URLs

Your agent writes the brief. Canvora does the design. The outputs are stable CDN URLs ready to post, embed, or hand to a scheduler (works great upstream of Postiz or any posting tool: generate → schedule, end to end agentic).

This repo is the agent-facing toolkit for Canvora:

  • Agent skillsskills/: 11 task-specific skills, one npx skills add installs all of them into Claude Code, Cursor, Codex, OpenCode, OpenClaw and 60+ agents.

    SkillFor
    canvoracore: setup, generate loop, credits, refinement
    instagram-carouselInstagram carousels / swipe posts
    linkedin-carouselLinkedIn document carousels + safe zones
    pitch-deckpitch/sales/training decks, document → slides
    pdf-documentmulti-page PDFs: brochures, reports, one-pagers
    landing-page-visualsa whole page's visual kit from its URL
    ad-campaignpaid social + display ad sets and variants
    blog-promo-kitheader, OG image and promo set from one post
    data-infographicprocess flows, comparisons, timelines, stats
    multilingual-campaignone campaign → many languages
    product-photo-visualsdesigns built around the user's own photos
    visual-refreshedit, vary, localize and revert what exists
  • Remote MCP server — for Claude, ChatGPT, Cursor, and any MCP client. Nothing to install.

  • canvora CLI — for shell-native agents, cron jobs, and CI. Zero dependencies.

The Canvora service itself is hosted; this repo contains client tooling, skills, and docs.

Option 1 — Skills + CLI (Claude Code, Cursor, Codex, OpenClaw, shell-native agents)

npx skills add canvora/canvora-mcp     # installs the skills (they set up the CLI on first use)
# or just the CLI:
npm install -g @canvora/cli

export CANVORA_API_KEY=vd_...   # create at canvora.ai → Integrations → API Keys (all plans, incl. Free)

# one atomic command: generates, polls, exits with the output URLs
canvora generate \
  --idea "5 tips for remote work" \
  --format linkedin_carousel --slides linkedin_carousel=5 \
  --wait --json

More runnable recipes: examples/

Commands

CommandWhat it does
canvora generateCreate visuals from an --idea (short concept, Canvora develops it), --input (your full content text), --url, or --file-url (PDF). --wait polls to completion and prints output URLs.
canvora localize <id> --language esSame design, new language: translates an existing generation's visuals, layout untouched
canvora variations <id> [--count n]Fresh takes on an existing generation's visuals
canvora edit <outputId> --prompt "..."Natural-language edit of one visual (previews the change; --yes auto-confirms)
canvora status <id>Check a generation and list its output URLs
canvora download <id> --dir out/Save all output files locally
canvora formatsAll 82 format IDs with dimensions (live catalog)
canvora brandsYour brand kits (pass one via --brand <uuid>)
canvora creditsCredit balance (10 credits per visual, 15 per carousel/deck slide)

Every command takes --json for machine-readable stdout; progress and errors go to stderr, so piping stays clean. Exit codes: 0 success, 1 failure, 2 usage error.

Generate flags

--idea "concept"          short concept - Canvora develops it into content
--input "text"            your full content text, used as the source material
--url <url>               extract content from a webpage
--file-url <pdf-url>      extract content from a PDF
--format <id>[,<id>...]   output formats (see: canvora formats)
--slides <format>=<n>     slide count for carousel/deck formats (1-10, default 5); match it to the item count your idea promises
--brand <uuid>            apply a brand kit
--style <name>            modern | minimal | bold | elegant | playful | corporate | creative | dark
--resolution 2K|4K        4K on paid plans
--language <code-or-name> visual text language ("es", "Spanish"); default: matches your input's language
--exact                   use --input text verbatim, no rewording (quotes, taglines)
--logo                    place the brand kit's logo on the visual (needs --brand)
--cta                     end a carousel/deck on a call-to-action slide
--no-text                 pure visual, no typography (backgrounds, hero imagery)
--freeform                ignore format-specific art direction, use dimensions only
--landing-page            with --url: read the page's sections and produce a matching
                          landingPage-* visual kit (Starter plan or higher)
--project <uuid>          group outputs into a project/campaign
--workspace <uuid>        bill a team workspace pool instead of your personal credits
--wait                    poll until done (--timeout 600, --poll 5 seconds)
--json                    machine-readable output

Option 2 — MCP (Claude, ChatGPT, any MCP client)

One remote server, OAuth sign-in, 16 tools your agent discovers on connect:

Server URLhttps://api.canvora.ai/mcp (streamable HTTP)
ClaudeSettings → Connectors → Add custom connector → OAuth Client ID claude_mcp
ChatGPTSettings → Apps → Developer mode → Create app → OAuth Client ID chatgpt_mcp
Registryai.canvora/canvora on the official MCP Registry — also on Glama, Smithery, mcpservers.org

Step-by-step: canvora.ai/help/integrations/mcp-setup

Option 3 — Raw REST

curl -X POST https://api.canvora.ai/api/generations \
  -H "X-API-Key: vd_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "inputType": "text",
    "inputContent": "5 tips for remote work",
    "outputFormats": ["linkedin_carousel"],
    "carouselCounts": {"linkedin_carousel": 5}
  }'

Full API guide: canvora.ai/help/integrations/api-keys

What agents build with this

  • Client content pipelines — brief in, branded multi-format campaign out, scheduled by your posting tool
  • Multilingual campaigns — generate once, canvora localize into 10 markets; layout survives, text goes native (skill)
  • Save-optimized carousels — hook-first structure and per-slide art direction encoded as a skill (skill)
  • Docs → decks — point --file-url at a PDF report, get presentation slides
  • Ad setsad_square,ad_landscape,ad_portrait from one product URL, all placements covered

Built to be called by software

  • Predictable costs — flat credit pricing (10/visual, 15/slide); canvora credits before big jobs; failed generations auto-refund.
  • Human in the loop — everything your agent creates also lands in your Canvora dashboard, ready for review, editing, and export before it goes anywhere.
  • Scoped, revocable keys — hashed at rest, per-key usage tracking, one-click revoke.
  • Outputs on a CDN — stable URLs your agent can post, embed, or hand to a scheduler.
  • Works on every plan — API and MCP access included on Free (free credits, no card).

Links

MIT licensed (CLI, skills, and docs in this repo).