Skip to main content
Glama

Redraw one cast member's portrait

regenerate_cast_portrait
Destructive

Redraws ONE cast member's portrait (the same character, a new image) and attaches it to that member: ONE image generation, not a new cast. WHEN: the user dislikes a member's face, or a portrait FAILED (the story create refuses a cast with a failed portrait and names this). character_id is the member's id from generate_cast_portraits or list_characters (kind cast_member). It draws the SAME character from its stored look: for a CHANGED character (smaller, older, a different thing) use describe_cast_member; never re-draft the whole cast to change one member. THE CARD: this call already put the aicut cast card up, each portrait filling in as it generates: do not poll or call show_generation (one get_image read of portrait_image_id if asked). No card (a terminal)? Poll each generating member's portrait_image_id with wait_for_generation (media image) and give the urls. AFTER: returns portrait_image_id with portrait_status: "generating"; the old portrait stays in the account's images. Each repeat is one more portrait's price, stated every time. COST: one standard image at image_model (or the platform default portrait model), NOT necessarily the rate the draft published (the library does not record which model drew a face); estimate_only: true gives the exact number. THE GO THIS ONE NEEDS: one redraw, one named member, one priced ask: a complaint ('the husband looks wrong') is a reason to OFFER it with its price, never a go; never redraw more members than named. SPENDS TOKENS: price with estimate_only: true, ask in the SAME message as the price, and wait for a go that names THIS purchase (SPENDING RULES, this server's instructions). IDEMPOTENCY: a reused idempotency_key REPLAYS the first job whatever the settings: never reuse one for a new generation (this server's instructions).

Input Schema

NameRequiredDescriptionDefault
image_modelNoImage model: the member's OWN `image_model` from `generate_cast_portraits` (matches the cast and its price). Omitted, the platform default portrait model is used: maybe a different look and price.
character_idYesThe cast member's library id: `id` on a `generate_cast_portraits` member or on a `list_characters` entry of kind `cast_member`.
estimate_onlyNoPrice only; creates nothing.
idempotency_keyNoRetry-safety key (IDEMPOTENCY).

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.8/5.0
Behavior5/5

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

Goes well past the annotations: it discloses the return contract (`portrait_image_id` with `portrait_status: "generating"`), that the old portrait survives in the account's images, that each repeat is a fresh charge, that the price may differ from the draft's published rate, and the exact idempotency-key replay semantics. The token-spend and go/no-go rules add real behavioral context the `destructiveHint`/`idempotentHint` flags only gesture at.

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?

Purpose is front-loaded in the first clause and the WHEN/ALTERNATIVES/CARD/AFTER/COST blocks are scannable. It is long for a four-parameter tool, and cost is stated three separate times while 'this server's instructions' is cited twice, which is some redundancy — but each block carries operational content rather than filler.

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?

With no output schema, the description still explains what comes back and how to follow up (don't poll the card; on a terminal, poll `portrait_image_id` with `wait_for_generation` and hand back urls). Cost, permissions-of-spend, failure recovery, and idempotency are all covered, so an agent has everything needed to call it correctly.

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 100%, so the schema already documents all four params; the description adds genuine meaning on top — where `character_id` comes from, that omitting `image_model` may yield a different look and price because 'the library does not record which model drew a face,' and that `estimate_only: true` returns the exact number. Only the idempotency key's warning is a restatement of schema text.

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+scope: 'Redraws ONE cast member's portrait (the same character, a new image)' and explicitly bounds it as 'ONE image generation, not a new cast.' It names the sibling it is not (`describe_cast_member` for a changed character, `generate_cast_portraits` for the whole cast), so an agent can route without opening another 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?

Gives an explicit WHEN (user dislikes a face, or a portrait FAILED and blocks story creation), an explicit when-not ('never re-draft the whole cast to change one member'), and a named alternative for the adjacent case (`describe_cast_member` for a changed character). It also constrains scope: 'never redraw more members than named.'

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.

Directories

Listed in ChatGPT · aicut

Last observed