Turn any idea, URL, doc, or PDF into on-brand visuals: 100+ formats, native in 150+ languages
One address for any MCP client. You sign in at api.canvora.ai once, after adding it.
At most: creates or changes data: records, files, settings.
Odel charges nothing per call. The publisher may charge for its own service.
| Access to | Read | Change |
|---|---|---|
| Generate | Not stated: generate | |
| Edit | ||
| Read | ||
From the sign-in at api.canvora.ai, as the endpoint publishes it. You approve it there.
Odel could not list its tools without signing in.
npx skills add canvora/canvora-mcp
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 skills — skills/: 11 task-specific skills, one npx skills add installs all of them into Claude Code, Cursor, Codex, OpenCode, OpenClaw and 60+ agents.
| Skill | For |
|---|---|
canvora | core: setup, generate loop, credits, refinement |
instagram-carousel | Instagram carousels / swipe posts |
linkedin-carousel | LinkedIn document carousels + safe zones |
pitch-deck | pitch/sales/training decks, document → slides |
pdf-document | multi-page PDFs: brochures, reports, one-pagers |
landing-page-visuals | a whole page's visual kit from its URL |
ad-campaign | paid social + display ad sets and variants |
blog-promo-kit | header, OG image and promo set from one post |
data-infographic | process flows, comparisons, timelines, stats |
multilingual-campaign | one campaign → many languages |
product-photo-visuals | designs built around the user's own photos |
visual-refresh | edit, 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.
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/
| Command | What it does |
|---|---|
canvora generate | Create 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 es | Same 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 formats | All 82 format IDs with dimensions (live catalog) |
canvora brands | Your brand kits (pass one via --brand <uuid>) |
canvora credits | Credit 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.
--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
One remote server, OAuth sign-in, 16 tools your agent discovers on connect:
| Server URL | https://api.canvora.ai/mcp (streamable HTTP) |
| Claude | Settings → Connectors → Add custom connector → OAuth Client ID claude_mcp |
| ChatGPT | Settings → Apps → Developer mode → Create app → OAuth Client ID chatgpt_mcp |
| Registry | ai.canvora/canvora on the official MCP Registry — also on Glama, Smithery, mcpservers.org |
Step-by-step: canvora.ai/help/integrations/mcp-setup
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
canvora localize into 10 markets; layout survives, text goes native (skill)--file-url at a PDF report, get presentation slidesad_square,ad_landscape,ad_portrait from one product URL, all placements coveredcanvora credits before big jobs; failed generations auto-refund.MIT licensed (CLI, skills, and docs in this repo).