Skip to main content
Glama

generate

Idempotent

Execute an approved paid AI image, video, or audio request using a quote_id after user price approval; returns a job ID and idempotency key for safe retries.

Instructions

PAID: the only tool that spends the user's Raywake balance. Call ONLY after the user approves the quoted USD price, with quote_id from quote for exactly the same model+input. Waits up to 45 seconds. Save the returned idempotency_key even on errors; reuse it with the exact request to recover a lost response. Continue existing jobs with free get_job, never a new generation.

Input Schema

NameRequiredDescriptionDefault
inputYesExact provider-native input matching get_model schema. Media references must be public HTTPS URLs.
modelYesExact endpoint_id returned by search_models/get_model.
quote_idYes
idempotency_keyNoSaved key for an exact retry. Omit for a new approved generation; the server creates and returns one.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.6/5.0
Behavior4/5

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

Goes well beyond the annotations: annotations only say it's not read-only, is idempotent and open-world, while the description discloses the monetary cost, a 45-second wait, and error-recovery semantics (persist idempotency_key even on failures, reuse with the identical request to recover a lost response). It stops short of describing what a successful response contains beyond the key.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Cost warning is front-loaded as the first token, followed by the gating condition, then latency, then recovery guidance, then the sibling routing. Six dense clauses, no filler, every sentence carries an operational constraint.

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

Completeness4/5

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

For a 4-parameter paid mutation with no output schema, coverage is strong: cost, gating, latency, retry/idempotency and next-step routing are all present, and the nested input object is deferred to the referenced get_model schema. Missing only a description of the full success payload (e.g. the resulting job id/status) that the caller must act on.

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 75% and the schema already documents input, model and idempotency_key. The description still adds meaning the schema cannot: quote_id must come from quote for exactly the same model+input, and idempotency_key must be reused only with the exact same request. It doesn't add format detail for quote_id itself, which the schema leaves bare.

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?

Names the specific role precisely: the only tool that spends the user's Raywake balance, invoked with model+input+quote_id and producing a generation job. It is explicitly differentiated from the free siblings (quote produces the quote_id, get_job continues existing jobs) so an agent can place it in the workflow 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?

Gives a hard precondition (only after the user approves the quoted USD price), the exact provenance of quote_id, and matching constraint (same model+input). It also states the negative case: never start a new generation to continue a job — use free get_job instead.

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