Skip to main content
Glama

Generate a sheet of elements

generate_sheet

Makes ONE image holding several separate elements laid out so each can be cut out: an animation cycle, a sprite sheet, an icon set, stickers, props. COSTS CREDITS: one image at the planned tier; quote with dry_run:true first, free. The asserted count, the keyable ground, no lines or labels, a grid whose cells cut cleanly and cells big enough to use are all built here, so never write this prompt yourself and never call generate_image for a sheet. Pick by job:

  • An animation of one subject (a walk, a face laughing, a coin spinning): kind frames + sequences from sheet_options ({family, type, id, level}; smooth = an in-between after every drawing, the default) + subject + art_style (photograph, film-still, studio-portrait, render-3d, stop-motion for a real subject; inked-cel, anime-cel, watercolour and the rest for a drawn one).

  • Pixel-art game sprites: kind sprites + sequences by game type. No art_style: pixel art is the style.

  • Icons, stickers, props: kind + items, one short description each. @slug in subject or entity_ids attach a saved entity's sheet (list_entities). get_sheet_atlas then gives frame rects and tags for any engine.

Input Schema

NameRequiredDescriptionDefault
kindYesframes = animation, any subject real or drawn; sprites = 8/16-bit pixel art; icons, stickers, props = matched sets.
itemsNoOne short description each, after any sequences.
modelNoDefault gemini-nano-banana-2.1 (Nano Banana 2.1). GPT stops at 2K.
styleNoYour own words about the look, joined after art_style.
borderNoStickers: false = no white border.
groundNoThe value NOT in the artwork. Default black.
dry_runNoQuote only: nothing generated or charged.
per_rowNoOverride the planned columns.
subjectNoWho or what is in every frame. Without it every sheet invents someone.
art_styleNoA style id from sheet_options. Not sprites.
sequencesNoFrom sheet_options, in order; several stack on one sheet.
style_idsNoPictures whose look to borrow (ids).
entity_idsNo
project_idNo
resolutionNoOverride the planned tier.
prompt_onlyNoFree: just the plan and prompt, for generate_image as given.
reference_idsNoSheets of the same thing to match; for frames, the subject to keep.
reference_noteNoWhat to take from the attached pictures, in your words.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / art_style / description
      Previous value: -"A style id from sheet_options. Frames only."New value: +"A style id from sheet_options. Not sprites."
  2. Changed1 schema field changed
    • addedInput schema / properties / border
      Added value: +{
      +  "description": "Stickers: false = no white border.",
      +  "type": "boolean"
      +}
  3. Changed2 schema fields changed
    • changedInput schema / properties / model / description
      Previous value: -"Default gemini-3.1-flash-image (Nano Banana 2). GPT stops at 2K."New value: +"Default gemini-nano-banana-2.1 (Nano Banana 2.1). GPT stops at 2K."
    • changedInput schema / properties / model / enum
      Previous value: -[
      -  "gemini-3.1-flash-image",
      -  "gemini-3-pro-image",
      -  "gpt-image-2.5-flare",
      -  "gpt-image-2.5-sunburst"
      -]New value: +[
      +  "gemini-nano-banana-2.1",
      +  "gemini-3-pro-image",
      +  "gpt-image-2.5-flare",
      +  "gpt-image-2.5-sunburst"
      +]
  4. Changed2 schema fields changed
    • addedInput schema / properties / prompt_only
      Added value: +{
      +  "description": "Free: just the plan and prompt, for generate_image as given.",
      +  "type": "boolean"
      +}
    • changedInput schema / required
      Previous value: -[
      -  "project_id",
      -  "kind"
      -]New value: +[
      +  "kind"
      +]
  5. Changed1 schema field changed
    • addedInput schema / properties / entity_ids
      Added value: +{
      +  "items": {
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
  6. First observed

TDQS

A4.8/5.0
Behavior5/5

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

Annotations only say readOnlyHint=false / destructiveHint=false; the description adds the information that actually matters: the call COSTS CREDITS at the planned tier, that dry_run:true and prompt_only:true are free, and that the tool internally constructs the count assertion, keyable ground, absence of lines/labels, and a clean-cutting grid. That is real disclosure of cost, side effects, and internal guarantees that the annotations do not cover.

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-loaded with the core action and the credit warning before any detail, and the dense bullet block is justified by 18 parameters. It is on the edge of over-packed — the style-id lists ('photograph, film-still, studio-portrait...') cost words that could be deferred to sheet_options — but nothing is truly redundant.

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 an 18-param generation tool with no output schema, the description covers the workflow (quote → generate → get_sheet_atlas), the cost model, the mode variants, and the per-job parameter combinations an agent needs to call it correctly. Only low-stakes fields like project_id are left to the schema, which is acceptable.

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 coverage is already 89%, but the description adds genuine cross-parameter meaning: which kind pairs with which other params, that art_style must be a sheet_options id and does not apply to sprites, that sequences stack in order, and that @slug in subject or entity_ids attaches a saved entity. Minor gaps remain (project_id, style_ids, reference_ids get no prose), so not a full 5.

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 a precisely scoped artifact: ONE image holding several separately cut-out elements, and enumerates the concrete use cases (animation cycle, sprite sheet, icon set, stickers, props). It also explicitly distinguishes itself from generate_image ('never call generate_image for a sheet'), so an agent can route without opening a 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?

The 'Pick by job' section gives explicit routing rules tying each job type to a kind plus its companion params (frames + sequences + art_style, sprites + sequences, icons/stickers/props + items). It also names alternatives and prerequisites: quote with dry_run:true first, art_style ids come from sheet_options, saved entities come from list_entities, and get_sheet_atlas is the follow-up for frame rects.

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