← Discover MCPs and Agents
C
MCPOtherMCP Registry

Canvora

Turn any idea, URL, doc, or PDF into on-brand visuals: 100+ formats, native in 150+ languages

Links

README

From the repo.

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).

Config for your environment

Use the endpoint URL below in your config. No API key — you connect directly.

Tool

OS

Config file: ~/.cursor/mcp.json

{
  "mcpServers": {
    "mcp-server": {
      "url": "https://api.canvora.ai/mcp"
    }
  }
}

Paste into mcpServers in the config file. Restart Cursor after saving.

If this MCP is also published on mcpchannel.ai, you can subscribe from Browse and use the gateway config there instead.