Skip to main content
Glama

preview_render

Read-onlyIdempotent

Price a render WITHOUT creating it — video, image or audio alike. Costs nothing, spends no credits, calls no provider. Use this before any render_* tool so the user sees the price first. Returns cost (credits), balance and sufficientCredit; if sufficientCredit is false, do not submit, tell the user. Some models TRANSFORM media instead of generating (upscale, remove-bg, face-swap): they take NO prompt at all. Call list_models first and read prompt ('required'|'optional'|'none') and requires — for prompt:'none' models omit prompt and pass the source media instead.

Input Schema

NameRequiredDescriptionDefault
audioNoNative audio. Omit to use the model default (usually on).
modelYesModel id from list_models, e.g. dreamina-seedance-2-ref. Required — there is no default.
aspectNoOnly values list_models reports for this model.
audiosNoReference media. Each entry is either a plain URL, or {name, url} so the prompt can address it as @name — the server renumbers those to the @Image1/@Video1 form the provider reads, in the order given, so you never count positions yourself.
imagesNoReference media. Each entry is either a plain URL, or {name, url} so the prompt can address it as @name — the server renumbers those to the @Image1/@Video1 form the provider reads, in the order given, so you never count positions yourself.
promptNoSent to the provider VERBATIM — nothing rewrites it. Provider flags parsed out of prompt text (--seed, --cf, --wm) survive, so they work here. Omit entirely for models whose list_models.prompt is 'none' (upscale, remove-bg) — they take no text.
run_idNoOptional. Your id for this agent run (1–64 of A-Z a-z 0-9 . _ : -). Stored on every job of the run so they can be found and filed together later. Use the same value for every call of one run.
videosNoReference media. Each entry is either a plain URL, or {name, url} so the prompt can address it as @name — the server renumbers those to the @Image1/@Video1 form the provider reads, in the order given, so you never count positions yourself.
projectNoOptional. A Drama Studio film id in the workspace being charged: the finished generation is added to that film's media pool (videos on its timeline, images/audio as references). Workspace generations only; checked before any credit is spent.
durationNoSeconds. Only values list_models reports for this model.
workspaceNoOptional. The workspace to generate in. Only a workspace API key (Settings → Developer) can spend a workspace — this may only repeat that key's workspace id; omit it and the key's own scope is used. A personal key or a sign-in token stays personal (passing a workspace is refused).
resolutionNoOnly values list_models reports for this model.

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?

Annotations already declare readOnly/idempotent/non-destructive, and the description still adds substantive detail: no credits spent, no provider call, the returned fields (cost, balance, sufficientCredit), and the distinct behavior of transform models that accept no prompt. This is well beyond what the annotations convey.

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 price-without-committing statement, then conditional guidance. It is dense with several separate ideas packed in, slightly reducing scannability, but nearly every sentence carries actionable information.

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 compensates by naming the exact return fields and the decision they drive ('do not submit' when insufficient). It also covers the transform-model edge case that would otherwise cause a wrong invocation.

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 baseline is 3, but the description adds cross-parameter orchestration guidance — read list_models' `prompt` and `requires` fields before choosing which params to pass, and omit `prompt` for prompt:'none' models. It doesn't cover the workspace/run_id scoping nuances, which the schema handles.

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 resource ('Price a render WITHOUT creating it') and explicitly covers the media scope (video, image, audio). The negative framing immediately distinguishes it from the render_* siblings.

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?

Explicitly instructs 'Use this before any render_* tool so the user sees the price first' and adds a conditional branch ('if sufficientCredit is false, do not submit, tell the user'). It also names list_models as the prerequisite for transform models, giving a complete call sequence.

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