Skip to main content
Glama

generate_illustration

Generate a single composed illustration from a prompt - a scene, environment, hero image, banner, character portrait, or any standalone picture. (For a SET of separate isolated subjects sharing one style - icons, sprites, asset packs - use generate_image_set for solid-color backgrounds, or generate_transparent_image_set for transparent backgrounds, instead.) Returns a zip download URL: the image plus a prompt.json recording what you asked for, plus an index.html viewer. Each call costs 1 credit. Run generation calls sequentially, never in parallel - only one generation runs at a time per API key.

The prompt describes the picture and is used as written (no template, no appended instructions); do not put the pixel size in it - put the size in the width and height arguments. width and height must be one of the supported pixel pairs below; any other pair is rejected. These are the maximums offered - nothing larger is available. Each line is one shape: the first pair is that shape's largest size, the rest are exact proportional downscales of it.

Prompt craft, since each call costs a credit: name the light and the time of day (cold blue twilight, one warm lamp from the left), because lighting carries the mood of a single picture; fix the camera (wide establishing shot, three-quarter portrait, viewed from the doorway) so the composition commits to one vantage point; ask for open space on a named side when text will be laid over the picture later; and say no text or lettering unless a word on a sign is the point, since lettering inside a picture is unreliable and titles are better added afterwards.

2752x1536, 1376x768, 688x384 2048x2048, 1024x1024, 512x512, 256x256 1024x4128, 512x2064, 256x1032 704x5856, 352x2928 3168x1344, 1584x672, 792x336 1696x2528, 848x1264, 424x632 2528x1696, 1264x848, 632x424 1792x2400, 896x1200, 448x600 4128x1024, 2064x512, 1032x256 2400x1792, 1200x896, 600x448 1856x2304, 928x1152, 464x576 2304x1856, 1152x928, 576x464 5856x704, 2928x352 1536x2752, 768x1376, 384x688

Formats: png (default, lossless), jpg, webp. quality (1-100) applies to jpg and webp; default 90. Prompt max length: 2500 characters. A prompt that does not describe a picture is rejected. unpackTo: a directory on your local filesystem to extract the downloaded zip into. filename: name for the image file inside the zip (default illustration.).

If a "Rate limit exceeded" error is returned, wait the suggested number of seconds before retrying. Do not retry immediately.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
widthYesOutput width in pixels. Must form one of the supported (width, height) pairs listed in the tool description.
formatNoOutput format: png (default, lossless), jpg, or webp.
heightYesOutput height in pixels, paired with width per the supported list in the tool description.
promptYesWhat the illustration should depict - a scene, environment, hero image, banner, character, or any single composed picture. Used as written; a prompt that does not describe a picture is rejected. Do not put the pixel size here; use width and height.
qualityNoImage quality for jpg/webp (1-100). Defaults to 90.
filenameNoName for the image file inside the zip. Defaults to illustration.<ext>.
unpackToNoPath on the caller's local filesystem where the generated illustration should be saved. The server does NOT write here. After this call returns, you (the calling client) must download illustration.zip from the returned zip URL, extract it to this path yourself, then report the path to the user. Make the download your immediate next action when the result arrives, before any commentary; the download URL expires (the result states when).

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
widthNoDelivered width in pixels.
formatNoThe delivered image format.
heightNoDelivered height in pixels.
zipURLNoDownload URL for the zip containing the illustration. Time-limited; expiresAt states the deadline.
unpackToNoThe caller-supplied local extraction path, echoed back.
expiresAtNoWhen the download URL expires.
remainingNoCredits remaining after this call.
manifestURLNo
imageFilenameNoThe illustration's filename inside the zip.
rejectedPromptNoPresent only when the request was rejected because the prompt does not appear to describe a picture: the submitted prompt. No generation ran and nothing was charged; revise the prompt and resubmit.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed8 schema fields changed
    • addedOutput schema / properties / expiresAt / description
      Added value: +"When the download URL expires."
    • addedOutput schema / properties / format / description
      Added value: +"The delivered image format."
    • addedOutput schema / properties / height / description
      Added value: +"Delivered height in pixels."
    • addedOutput schema / properties / imageFilename / description
      Added value: +"The illustration's filename inside the zip."
    • addedOutput schema / properties / remaining / description
      Added value: +"Credits remaining after this call."
    • addedOutput schema / properties / unpackTo / description
      Added value: +"The caller-supplied local extraction path, echoed back."
    • addedOutput schema / properties / width / description
      Added value: +"Delivered width in pixels."
    • addedOutput schema / properties / zipURL / description
      Added value: +"Download URL for the zip containing the illustration. Time-limited; expiresAt states the deadline."
  2. Changed1 schema field changed
    • changedInput schema / properties / unpackTo / description
      Previous value: -"Path on the caller's local filesystem where the generated illustration should be saved. The server does NOT write here. After this call returns, you (the calling client) must download illustration.zip from the returned zip URL, extract it to this path yourself, then report the path to the user. Make the download your immediate next action when the result arrives, before any commentary; the download URL is short-lived."New value: +"Path on the caller's local filesystem where the generated illustration should be saved. The server does NOT write here. After this call returns, you (the calling client) must download illustration.zip from the returned zip URL, extract it to this path yourself, then report the path to the user. Make the download your immediate next action when the result arrives, before any commentary; the download URL expires (the result states when)."
  3. Changed2 schema fields changed
    • changedInput schema / properties / prompt / description
      Previous value: -"What the illustration should depict - a scene, environment, hero image, banner, character, or any single composed picture. Used as written. Do not put the pixel size here; use width and height."New value: +"What the illustration should depict - a scene, environment, hero image, banner, character, or any single composed picture. Used as written; a prompt that does not describe a picture is rejected. Do not put the pixel size here; use width and height."
    • addedOutput schema / properties / rejectedPrompt
      Added value: +{
      +  "description": "Present only when the request was rejected because the prompt does not appear to describe a picture: the submitted prompt. No generation ran and nothing was charged; revise the prompt and resubmit.",
      +  "type": "string"
      +}
  4. Changed1 schema field changed
    • changedInput schema / properties / unpackTo / description
      Previous value: -"Path on the caller's local filesystem where the generated illustration should be saved. The server does NOT write here. After this call returns, you (the calling client) must download illustration.zip from the returned zip URL, extract it to this path yourself, then report the path to the user."New value: +"Path on the caller's local filesystem where the generated illustration should be saved. The server does NOT write here. After this call returns, you (the calling client) must download illustration.zip from the returned zip URL, extract it to this path yourself, then report the path to the user. Make the download your immediate next action when the result arrives, before any commentary; the download URL is short-lived."
  5. First observed

TDQS

A4.8/5.0
Behavior5/5

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

Despite annotations (readOnly=false, destructive=false, openWorld=true, idempotent=false) covering the safety profile, the description adds rich behavioral context: each call costs 1 credit, generation runs sequentially and never in parallel, the return is a zip containing image + prompt.json + index.html, supported dimension pairs are max sizes with exact downscales, prompt length limit, rejection of non-picture prompts, quality defaults, prompt used as written with no template, and rate-limit handling with an explicit do-not-retry-immediately warning. This goes far beyond what the annotations imply.

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?

The text is front-loaded with the core purpose and sibling routing, then behavior, then the dimension table, then prompt craft and format details. It is somewhat long and could be slightly tighter, but every section serves a purpose for a generation tool with multiple supported formats and a large dimension matrix. The instruction to run sequentially is well placed near the top. Uses a short second sentence to explain the set-based alternative's reason. Structure is logical and scannable, though the inline dimension list is verbose and could be formatted as a table.

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?

Given the tool's complexity (7 parameters, multiple output formats, dimension constraints, credit cost, download workflow), the description is complete: it covers prompt usage, dimension constraints, formats, quality defaults, filename, the client-side download responsibility, rate limits, and output contents. Nothing essential for correct invocation is missing. The output schema exists; the description supplements rather than duplicates it.

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

Parameters4/5

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

Schema description coverage is 100%, so parameters are already well documented, but the description adds value beyond the schema: it explains width/height must be one of the supported pixel pairs (with the full pair list inline), provides prompt-craft guidance absent from the schema, clarifies filename default and unpackTo download responsibility, and notes prompt max length. These additions meaningfully compensate for any ambiguity in the schema's reference to 'the supported list in the tool description'.

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?

The description precisely states a specific verb (generate) and resource (single composed illustration), distinguishing it from generate_image_set and generate_transparent_image_set by naming the when-to-use condition (set of separate isolated subjects). An agent can choose this tool versus its siblings without opening any 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?

It explicitly says when to use this tool versus alternatives, naming two sibling tools and the exact condition that selects them (solid-color backgrounds vs transparent backgrounds). It also provides sequential-execution and rate-limit retry guidance, covering both correct and incorrect usage.

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