Canvora MCP
OfficialServer Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| CANVORA_API_KEY | No | Your Canvora API key (canvora.ai → Integrations → API Keys, all plans). Needed for tool calls; the server starts and lists its tools without it. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| chatA | Send a message to Canvora's AI visual creation assistant. This is the primary tool for CREATING visuals — describe what you want (text content, a URL, an idea) and Canvora will analyze it, suggest formats, and prepare a generation. Do NOT use this tool to retrieve or display existing/past generations — use get_generation instead (omit generation_id to fetch the user's most recent generation). Do NOT use it for variations (create_variation), translations (localize_generation), or exports (export_visuals) of existing work. The conversation is stateful — Canvora remembers context across messages. When ready, it returns generation parameters that you should present to the user for review before confirming with confirm_generation. Examples:
|
| check_creditsA | Check your current Canvora credit balance. Only call this when the user explicitly asks about their credits or balance. |
| list_brandsA | List all brand kits in your Canvora account. Returns brand names, colors, fonts, logos, and tone. Use the brand ID with confirm_generation to apply brand styling. |
| list_formatsA | List the available visual formats with dimensions and categories. Canvora supports 100+ formats; use this to find the right format ID for confirm_generation. |
| get_generationA | Get the status and outputs of a generation. Pass a generation_id to fetch that generation, or OMIT it to fetch the user's most recent generation (use this for "show me my last generation"). After calling confirm_generation, use this tool to poll for completion — poll every 10-15 seconds until status is "completed". Returns output image URLs when ready (outputs may arrive incrementally while status is "processing"). The visuals stay stored in the Canvora workspace (canvora.ai); the returned URLs can be previewed or downloaded in the chat. |
| confirm_generationA | Confirm and start a visual generation after the chat tool returns "READY TO GENERATE". Call this only after the user has reviewed and approved the generation settings. You can pass overrides for in-place tweaks — style, brand, language, resolution, slide counts. Any parameter not provided uses the values from the chat conversation. To CHANGE the format (especially to or from a carousel) or the content, call the chat tool again rather than overriding formats here — chat re-plans the design and recomputes the content-appropriate slide count. If you do override to a carousel format, you MUST include its carousel_counts, or the slide count won't match the content. Returns a generation ID immediately. Generation runs in the background (30-120 seconds). You MUST then call get_generation with the returned ID to poll for completion — wait 15 seconds before the first call, then poll every 10-15 seconds until status is "completed". IMPORTANT: Do NOT call confirm_generation again if it seems slow — that creates a duplicate generation and charges credits twice. Always use get_generation to check status instead. The finished visuals are saved to the user's Canvora workspace (account and brand kit at canvora.ai) and are also returned as preview/downloadable URLs; poll get_generation to retrieve them. |
| edit_imageA | Edit a visual in the user's Canvora workspace with a design operation. Pick the operation and describe the change in the instruction:
Edits that change what the image depicts — the subject, people, products or scene, or adding new imagery — are not available through this connector and are declined with a link to the Canvora editor. This is a two-step flow:
Always show the user the edit plan before confirming. The edited visual is saved to the user's Canvora workspace (account and brand kit at canvora.ai) and is also returned as a preview/downloadable URL. |
| create_variationA | Create fresh visual variations of an existing generation. Use this tool whenever the user asks for "variations", "alternatives", "different versions", or "more options" for an existing generation. IMPORTANT: This is NOT the same as creating a new generation. This tool takes an existing generation_id and creates new visual designs from the same content. Do NOT use confirm_generation for variations — always use this tool. SEMANTICS: variations are created for EVERY visual in the generation, and count applies PER VISUAL — count=2 on a generation with 2 visuals produces 4 new images. Tell the user the real total before or when starting. (To vary just one specific visual, the user can use the per-visual Variations option in their Canvora dashboard.) Costs 10 credits per single image variation, 15 per carousel slide. New variations are saved to the user's Canvora workspace (account and brand kit at canvora.ai) and are also returned as preview/downloadable URLs. |
| export_visualsA | Export a completed generation as PDF, PowerPoint, or ZIP.
Returns a downloadable file URL; the source visuals remain in the user's Canvora workspace (account at canvora.ai). |
| localize_generationA | Translate the visuals of a completed generation into one or more target languages. Each visual is translated in place (image-to-image) — the layout, colors, fonts, icons and imagery stay EXACTLY the same, only the text changes language. Canvora supports 150+ languages including RTL scripts (Arabic, Hebrew, Urdu) and CJK. Perfect for localizing a campaign: one LinkedIn carousel becomes Spanish, Japanese, Arabic and German variants in a single call. Costs 10 credits per translated image, per language (a 6-slide deck into Spanish = 60 credits). Up to 10 languages per call. Returns one generation ID per language — poll each with get_generation until status is "completed". This translates ALL visuals in the chosen generation. If more than one generation exists in the chat, localize the specific generation the user is referring to — ask which one if it is unclear. SEMANTICS: this translates EVERY visual in the generation (each translated visual costs 10 credits). To translate just ONE visual (e.g. "translate the Instagram post to Spanish"), do NOT use this tool — use edit_image on that image with an instruction like "Translate all visible text in this image into Spanish", which translates only that visual. IMPORTANT: Confirm the target languages with the user before calling. Localized visuals are saved to the user's Canvora workspace (account and brand kit at canvora.ai) and are also returned as preview/downloadable URLs. |
| download_visualB | Get the download URL for a specific output from a completed generation. Returns the direct image URL that can be opened or downloaded. The visual stays stored in the Canvora workspace (canvora.ai). |
| convert_imageB | Convert an image to JPG, WebP, or PNG format. Returns the converted image as a downloadable URL. |
| list_workspacesA | List your workspaces and personal account. Use this when the user wants to generate visuals for a specific team or workspace. Returns workspace IDs, names, your role, and credit balances. Pass the workspace_id to the chat or confirm_generation tools to create visuals under that workspace (uses workspace credits instead of personal). If the user doesn't mention a workspace, default to personal (no workspace_id needed). |
| get_edit_historyA | Get the edit history of a generated image — original version plus every applied edit, with which version is current. Use before reverting an edit. |
| revert_editA | Revert a generated image to a previous edit version or to the original. Free — does not consume credits. Use get_edit_history first to find edit IDs. The reverted visual stays in the Canvora workspace (canvora.ai) and is returned as a preview/downloadable URL. |
| upload_photoA | Upload a photo (base64) to be embedded in generated visuals — product shots, event photos, headshots. Returns a CDN URL to pass as embedding_photos to confirm_generation. Used primarily by the setup widget. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 16 tools
Most tools map cleanly to distinct actions on distinct resources (format listing, generation polling, editing, variations, localization, export, conversion), and descriptions explicitly cross-reference each other to steer selection (e.g. chat vs. get_generation, localize_generation vs. edit_image translate). The only real friction is get_generation vs. download_visual, both of which surface output URLs for a completed generation.
Nearly all names follow a consistent verb_noun snake_case pattern (list_formats, get_generation, confirm_generation, edit_image, export_visuals). The single outlier is `chat`, a bare noun that breaks the pattern and gives no hint of its action.
16 tools is on the high side but justified by a genuinely broad surface: creation, polling, editing, reversion, variations, localization, export, conversion, plus workspace/brand/credit context. No tool appears redundant enough to drop.
The lifecycle is well covered end-to-end from format discovery and planning through confirm, poll, edit/revert, vary, localize, export, and convert. Minor gaps exist: no way to list or enumerate past generations (only 'most recent' via an omitted ID) and no cancel/delete operation for abandoned generations.