Skip to main content
Glama

render_image

Generate an image — a product shot, a background, a character reference. SPENDS CREDITS. The prompt is sent to the provider VERBATIM. Returns a job id; call get_generation to follow it, which returns the finished image so it can be shown directly. The resulting URL can be passed straight into render_video as a reference, which is how you build an ad from a product photo you just made. 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

TableJSON 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 (readOnlyHint=false, openWorldHint=true, destructiveHint=false) only flag it as a non-destructive write; the description adds the high-value facts that it SPENDS CREDITS, is asynchronous (returns a job id), sends the prompt verbatim, and that some models transform rather than generate and take no prompt. These are exactly the traits annotations cannot 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 action and cost warning, and every sentence carries operational weight (cost, async flow, chaining, model variation). It is dense and somewhat run-on, but no sentence is 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 correctly explains the return (a job id) and how to resolve it (get_generation), plus cost, model-dependent prompt behavior, and downstream chaining. Nothing an agent needs to invoke it correctly is missing.

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 useful cross-parameter semantics: it ties `prompt`/`requires` to list_models, explains that source media replaces the prompt for transform models, and clarifies the verbatim/flag-parsing behavior of the prompt. It stops short of explaining run_id/project/workspace behavior in the description, leaving those to the schema.

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 ('Generate an image') with concrete example outputs (product shot, background, character reference). It also explicitly distinguishes itself from siblings by naming get_generation for follow-up, render_video for chaining, and list_models for capability checks.

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 explicit sequencing: call list_models first and read `prompt`/`requires`; for prompt:'none' models omit `prompt` and pass source media; call get_generation to follow the job. It also names the alternative flow (render_video chaining) and the pre-condition of checking models before spending.

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