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.

2816x1584, 1408x792, 704x396 2048x2048, 1024x1024, 512x512, 256x256 1456x2912, 728x1456, 364x728 3200x1440, 1600x720, 800x360 2912x1456, 1456x728, 728x364 1664x2496, 832x1248, 416x624 2496x1664, 1248x832, 624x416 1776x2368, 888x1184, 444x592 2368x1776, 1184x888, 592x444 1584x2816, 792x1408, 396x704 1440x3200, 720x1600, 360x800

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
widthNo
formatNo
heightNo
zipURLNo
unpackToNo
expiresAtNo
remainingNo
manifestURLNo
imageFilenameNo
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. Dates show when Glama detected each change.

  1. 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)."
  2. 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"
      +}
  3. 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."
  4. First observed

TDQS

A4.9/5.0
Behavior5/5

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

The description discloses many behavioral details beyond annotations: the return payload is a zip download URL containing image, prompt.json, and index.html; each call costs 1 credit; only one generation runs at a time per API key; unsupported pixel pairs are rejected; rate-limit errors require waiting the suggested time; and the unpackTo parameter requires the client to download and extract locally. No contradiction with annotations exists.

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 description is long but well-structured and front-loaded with the core purpose and sibling differentiation. Each section—alternatives, return format, cost/concurrency, parameter constraints, prompt craft, pixel pairs, formats, and error handling—earns its place given the tool's complexity. It could be tightened slightly, but the length is justified.

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?

The description covers the return value (zip URL contents), cost, concurrency rules, parameter constraints, error handling, and the local file-saving protocol. Combined with the rich input schema and output schema, an agent has everything needed to invoke this tool correctly and to react to the result.

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?

Although the schema covers 100% of parameters, the description adds substantial meaning beyond the schema: it lists the exact supported (width, height) pairs and their downscale relationships, specifies prompt max length and rejection criteria, explains format defaults and quality behavior, and clarifies that unpackTo does NOT make the server write locally but instead directs the client to download and extract.

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 states 'Generate a single composed illustration from a prompt' with concrete examples (scene, environment, hero image, banner, character portrait), clearly identifying it as a single-picture tool. It also distinguishes itself from siblings by explicitly pointing to generate_image_set and generate_transparent_image_set for sets of separate subjects.

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?

The description explicitly says when to use alternatives: 'For a SET of separate isolated subjects... use generate_image_set... or generate_transparent_image_set... instead.' It also provides prompt-craft guidance, cost warnings, and the critical constraint that generation calls must run sequentially, never in parallel.

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.

TDQS

A4.7/5.0
Disambiguation5/5

Each tool has a clearly distinct role: generation is split by output type (single illustration vs. solid-color set vs. transparent set), and the remaining tools handle references, delivery editing, icon export, credit checking, and listing. The three generation tools are heavily cross-referenced with explicit guidance on when to use each, leaving no boundary ambiguity.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern (check_credits, create_reference, edit_image_set, export_icons, generate_illustration, list_recent_generations). The two set-generation variants differ by a descriptive adjective but still follow the same generate_*_set shape, so the naming pattern remains predictable.

Tool Count5/5

Eight tools is well-scoped for an image generation service: three generation variants, one reference-upload helper, one delivery editor, one export tool, one credit checker, and one history/retrieval tool. Each tool serves a distinct workflow step without unnecessary redundancy.

Completeness4/5

The core lifecycle is well covered: generate (all three modes), upload references, edit delivered sets, export icons, check credits, and retrieve past generations. The only notable gap is that illustrations cannot be edited or re-delivered after generation, though the tool descriptions make this an explicit design constraint rather than an oversight.

Resources