Skip to main content
Glama

Generate a visual

create_visual
Idempotent

Start an image generation job. Spends Creative Credits. REQUIRED: call plan_visual first — with the same creative_kind, tier, visual_type and references_count (the length of references) — and send its credits as expected_credit_cost, plus a stable idempotency_key so a retry cannot double-charge. This connection also has a daily spend cap set at consent — if you hit it, wait until UTC midnight or tell the user to reconnect with a higher cap. SETS, as Creative Studio makes them — ONE job, ONE generation's price, cut into separate pictures (output_urls): by default you get 4 versions of your prompt (3 for a thumbnail) to choose from, as the Studio shows; batch changes how many (1-4). options (2-4 directions, each its own prompt and optionally its own words) gives competing alternatives instead. Never call this repeatedly for more choices. CAROUSELS: creative_kind "carousel" with slides (2-8, in swipe order: the first is the cover — headline + optional subhead; the last is the ask — cta + optional headline; the ones between are content frames — title, a frame_type and its fields) and optional preset (portrait 4:5, the default, or square). The whole deck is drawn as ONE picture and cut into its slides, at one flat price; the words on each slide are the words you send. Keep slides SHORT — big type renders cleanly, small dense type does not: a few words per line, list bullets of one short line. One call = one deck; do NOT make a carousel slide by slide. The answer (or get_job, while it runs) carries slides: the slide URLs in order. Look at them: a slide whose words came out wrong is fixed with redo_carousel_slides (one free redo per slide), not by remaking the deck. WORDS ON THE PICTURE: put the exact words to render in exact_copy (headline, offer = the sub-headline or supporting line, cta, brand_name); when you leave it out, the words the prompt quotes for the picture are lifted from it, and a prompt with none renders no text. ART DIRECTION, as the Studio's brief sets it: typography (how the words are set: weight, case, style), layout (where the copy sits), goal, objective, awareness_stage; thumbnail_surface for a thumbnail. REAL PHOTOS, LOGOS, PEOPLE: pass brand Library asset ids (list_brand_assets, or upload_brand_asset for a file at a URL) as references, with reference_roles saying what each is for. BRAND CONTEXT — decide it every time: by default the brand workspace's own business description, colours and logo are written into the brief, so the picture is ABOUT that business. When the piece is about anything else — a topic, an opinion, a how-to, an industry point, or another company — send brand_context: "prompt_only" so only your prompt (and exact_copy) is used, or the output reads as an advert for the workspace. For another company's work, use ITS brand (get_site_brand for its website, or create_brand). Output URLs are public CDN links.

Input Schema

NameRequiredDescriptionDefault
goalNoWhat the piece is for
tierNo
batchNoHow many versions of this prompt to choose from, as ONE job at one price. Leave it out for Creative Studio's default: 4 (3 for a thumbnail). Send 1 only when one picture is all that is wanted. Takes of ONE idea, never several ideas: for different ideas use `options`. Not slides.
layoutNoWhere the copy sits: classic (bottom band), top-band, side-panel, full-bleed-card, corner-lockup, centered-hero, minimal-caption, split
presetNoThe format, as Creative Studio names it: square, portrait, story, landscape, twitter_header, youtube_banner, linkedin_profile_banner, linkedin_company_banner, thumbnail, pin, link, display_rectangle, display_halfpage, display_leaderboard, display_skyscraper, display_billboard, display_mobile_banner, display_large_leaderboard. Wins over aspect_ratio. A carousel is portrait (default) or square; display_* formats other than display_rectangle and display_halfpage are made only as a set (batch or options).
promptYes
slidesNoCarousel only, and required for it: the deck, one entry per slide in swipe order
optionsNo2-4 competing directions as ONE job at one price (a set). Use this, not batch, for different concepts or angles: each direction has its own prompt and its own words. The top-level `prompt` is still required: one line saying what the set is
brand_idYesBrand workspace id from list_brands
objectiveNoThe one outcome it should drive, in a sentence
user_goalNoOptional: the user's goal behind this call, in one short sentence of plain words (e.g. "add a page so customers can book tables"). No names, emails or other personal details.
brand_markNoWhat branding the piece carries: the business name set as type, the Library logo, or none
exact_copyNoThe exact words to render on the picture
referencesNoBrand Library asset ids (list_brand_assets / upload_brand_asset) to use in the picture
typographyNoHow the words are set — weight, case, style, e.g. "heavy condensed sans, all caps, tight tracking"
visual_typeNoThe same visual_type sent to plan_visual, if any: one of product, environment, graphic, lifestyle, interface, in_scene_text
aspect_ratioNoOne of 1:1, 4:5, 9:16, 16:9, 3:1, 4:1, 189:32, 2:3, 1.91:1; or send `preset` instead
brand_contextNo`brand` (default) writes the workspace's own business, colours and logo into the brief. Send `prompt_only` whenever the piece is NOT about that business (a topic, an opinion, an industry point, another company) — otherwise it reads as an advert for the workspace
creative_kindYes
awareness_stageNoHow much the reader already knows
idempotency_keyYesStable key for this attempt; reuse it after a timeout
reference_rolesNoOne per reference, in order: product (show this product), place (put this object in the scene), logo (the brand mark, reproduced exactly), style (borrow the look only), scene (this location), reproduce (keep this creative and its words)
thumbnail_surfaceNoThumbnail only: which video frame it covers
expected_credit_costYesCredits returned by plan_visual

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / options / description
      Previous value: -"2-4 competing directions as ONE job at one price (a set). Use this, not batch, for different concepts or angles: each direction has its own prompt and its own words"New value: +"2-4 competing directions as ONE job at one price (a set). Use this, not batch, for different concepts or angles: each direction has its own prompt and its own words. The top-level `prompt` is still required: one line saying what the set is"
  2. Changed2 schema fields changed
    • changedInput schema / properties / batch / description
      Previous value: -"How many versions of this prompt to choose from, as ONE job at one price. Leave it out for Creative Studio's default: 4 (3 for a thumbnail). Send 1 only when one picture is all that is wanted. Not slides."New value: +"How many versions of this prompt to choose from, as ONE job at one price. Leave it out for Creative Studio's default: 4 (3 for a thumbnail). Send 1 only when one picture is all that is wanted. Takes of ONE idea, never several ideas: for different ideas use `options`. Not slides."
    • changedInput schema / properties / options / description
      Previous value: -"2-4 competing directions as ONE job at one price (a set)"New value: +"2-4 competing directions as ONE job at one price (a set). Use this, not batch, for different concepts or angles: each direction has its own prompt and its own words"
  3. Changed1 schema field changed
    • addedInput schema / properties / user_goal
      Added value: +{
      +  "description": "Optional: the user's goal behind this call, in one short sentence of plain words (e.g. \"add a page so customers can book tables\"). No names, emails or other personal details.",
      +  "type": "string"
      +}
  4. First observed

TDQS

A4.5/5.0
Behavior3/5

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

Annotations already declare readOnly=false, idempotentHint=true, openWorldHint=true and destructive=false, and the description is consistent with these. It adds real behavioral context—credit spend, the daily spend cap and its recovery rule, double-charge prevention via idempotency_key, one-job-one-price pricing, and public CDN output URLs—so it earns credit beyond the annotations. It stops short of a full 5 because the credit/cap disclosure, while useful, is more scoping than deep failure-mode detail.

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 required preconditions and uses clear cap-labeled sections (SETS, CAROUSELS, WORDS ON THE PICTURE, ART DIRECTION, BRAND CONTEXT) that make the density navigable. It is long, and some distinctions (batch vs options) are restated in both the description and the schema description, so a bit of trimming is possible—but the length is largely justified by 24 parameters.

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

Completeness5/5

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

For a 24-parameter, nested-object, no-output-schema tool, the description explains the return surface (output_urls, slides in order, get_job while running, public CDN links) and the carousel/redo recovery path. Nothing an agent needs to call this correctly—prerequisites, spend model, brand-context decision, carousel assembly—is missing.

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

Parameters5/5

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

Schema coverage is high (88%), so baseline would be 3, but the description adds strong cross-parameter meaning the schema cannot convey: references_count must equal references.length, expected_credit_cost must come from plan_visual, batch means takes of one idea while options means competing directions, and how slides/reference_roles/exact_copy interact. This materially improves correct invocation over the structured fields alone.

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?

Opens with a specific verb+resource ('Start an image generation job') and immediately distinguishes itself from the sibling plan_visual by requiring it as a prerequisite. An agent can tell what this does versus plan_image_concepts, create_logo, or generate_design_variation without reading the schema.

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?

Explicitly names the prerequisite (plan_visual with matching fields), states when to use batch vs options, when to send brand_context: 'prompt_only', when to use redo_carousel_slides instead of remaking a deck, and forbids repeated calls for more choices and slide-by-slide carousels. When-to-use and when-not are both covered with named alternatives.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources