Skip to main content
Glama

Confirm & Generate Visuals

confirm_generation
Destructive

Start an approved visual generation from reviewed chat settings, returning a generation ID to poll for completion.

Instructions

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.

Input Schema

NameRequiredDescriptionDefault
formatsNo
brand_idNo
languageNo
embed_logoNo
resolutionNo
include_ctaNo
visual_styleNo
workspace_idNo
carousel_countsNo
conversation_idYes
design_style_idNo
embedding_photosNo
use_exact_contentNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare destructive/openWorld/non-idempotent, and the description substantiates all three: it explains that duplicate calls create duplicate generations and double-charge credits, that work runs in the background for 30-120 seconds, and that a generation ID is returned immediately. It adds a concrete polling protocol (wait 15s, then every 10-15s until status "completed") and names the output destination (Canvora workspace plus preview/downloadable URLs) — none of which is inferable from the structured fields.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the trigger condition and the override model, then the critical anti-duplication warning. It is long but nearly every sentence carries operational weight; the only waste is mild repetition of the get_generation polling instruction, which appears three times in slightly different framings.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a credit-charging, non-idempotent mutation tool with 13 params and no output schema, the description gives a complete operational picture: trigger condition, override scope, re-plan escape hatch, async lifecycle, polling cadence, and where artifacts land. The remaining gap is per-parameter meaning, which is real but secondary to calling the tool safely.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% across 13 parameters, so the description carries the full burden. It does name several in prose (style, brand, language, resolution, slide counts, formats implied via the carousel rule) and explains the default behavior of omitted params, but roughly half — conversation_id, workspace_id, design_style_id, embed_logo, include_cta, embedding_photos, use_exact_content — are never mentioned, including the sole required parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource — confirm and start a visual generation — and pins the precondition to an exact sentinel string returned by the chat tool ("READY TO GENERATE"). It is clearly distinguished from the chat sibling, which is named as the tool for re-planning design/content.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit when-to-call (only after user reviewed and approved), explicit when-not (never re-call when slow), and an explicit alternative for a distinct case: format or content changes go back to chat, not to overrides here. It even states a hard constraint on the override path (carousel format requires carousel_counts).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.