Skip to main content
Glama

Veltake Studio

Price a generation

estimate_generation
Read-onlyIdempotent

Price a generation without making it. Free, changes nothing. Takes the same arguments as generate (without expected_cost) and answers the coins it would cost, the coin balance and the settings that price is for (resolution, duration, audio). Every check generate makes runs here too, so a refused request is found before the person is asked anything. Pass the answered coins to generate as expected_cost.

Input Schema

NameRequiredDescriptionDefault
kindYeswhat to make: image | video | speech | music. Each argument below says which kinds take it
linesNospeech: the script, in order — each line is {speaker, text, style}
modelYesa model id from list_models for this kind
styleNomusic: the style — a genre, a mood, the instruments (custom songs)
titleNomusic: the song's title (custom songs)
imagesNoimage, video: hosted image URLs — references for an image model; for a video model the first frame, or with images_are_references the subject/style references (at most the model's max_images). Import a link with import_media first
lyricsNomusic: the words to be sung. With lyrics, title and style are required
promptNoimage, video: what to make. music: the description of the song (simple mode; for a song with its own lyrics use lyrics)
durationNovideo: seconds, one of the model's durations. music: the song's length in seconds (custom songs only)
speakersNospeech: the voices, in order (list_models has the voices, accents, styles and paces). Each is {name, voice, accent, style, pace, profile}, all optional except that a script needs at least one speaker. A model with line_style lists no accents, styles or paces: direct each line with its own style instead
last_frameNovideo: a hosted image URL for the LAST frame — only for models with supports_transition; then images holds exactly the first frame
resolutionNoimage, video: one of the model's resolutions — a higher tier costs more
video_taskNovideo: what reference_video is for — edit (change that one clip; images are references, and with no duration the answer runs the clip's length) or extend (add new footage to it; duration is the new part's length, the answer is that part alone, and images are refused). Omitted, it is a reference; on a model with clip_is_source it is required, and images are refused either way (there a clip is never a reference, an edit runs the clip's length, and an extension answers the clip plus the new part and takes up to 10 seconds). Only for models with video_tasks; needs a prompt and exactly one clip
aspect_ratioNoimage, video: the frame, one of the model's aspect_ratios (e.g. 16:9)
filler_wordsNospeech: add filler words and natural interjections to a TWO-speaker dialogue — only for models with filler_words
instrumentalNomusic: no vocals
generate_audioNovideo (and any image model that has it): make the sound too — only for models with supports_audio, and it costs audio_cost more
reference_audioNovideo: a hosted audio URL to take sound from — only for models with max_reference_audios above 0
reference_videoNovideo: a hosted video URL to take motion or style from, or on a model with clip_is_source the clip to edit or extend (video_task is then required) — only for models with max_reference_videos above 0
images_are_referencesNovideo: read images as references to draw from, NOT as the first frame — the video does not start on them. Needs at least one image, cannot be combined with last_frame, and only models with supports_reference take it

Output Schema

NameRequiredDescriptionDefault
vNo
kindYes
coinsYes
modelYes
enoughNo
balanceNo
settingsNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • changedInput schema / properties / reference_video / description
      Previous value: -"video: a hosted video URL to take motion or style from — only for models with max_reference_videos above 0"New value: +"video: a hosted video URL to take motion or style from, or on a model with clip_is_source the clip to edit or extend (video_task is then required) — only for models with max_reference_videos above 0"
    • changedInput schema / properties / video_task / description
      Previous value: -"video: what reference_video is for — edit (change that one clip; images are references, and with no duration the answer runs the clip's length) or extend (add new footage to it; duration is the new part's length, the answer is that part alone, and images are refused). Omitted, it is a reference. Only for models with video_tasks; needs a prompt and exactly one clip"New value: +"video: what reference_video is for — edit (change that one clip; images are references, and with no duration the answer runs the clip's length) or extend (add new footage to it; duration is the new part's length, the answer is that part alone, and images are refused). Omitted, it is a reference; on a model with clip_is_source it is required, and images are refused either way (there a clip is never a reference, an edit runs the clip's length, and an extension answers the clip plus the new part and takes up to 10 seconds). Only for models with video_tasks; needs a prompt and exactly one clip"
  2. Changed1 schema field changed
    • addedInput schema / properties / video_task
      Added value: +{
      +  "description": "video: what reference_video is for — edit (change that one clip; images are references, and with no duration the answer runs the clip's length) or extend (add new footage to it; duration is the new part's length, the answer is that part alone, and images are refused). Omitted, it is a reference. Only for models with video_tasks; needs a prompt and exactly one clip",
      +  "type": "string"
      +}
  3. Changed5 schema fields changed
    • addedInput schema / properties / filler_words
      Added value: +{
      +  "description": "speech: add filler words and natural interjections to a TWO-speaker dialogue — only for models with filler_words",
      +  "type": "boolean"
      +}
    • changedInput schema / properties / lines / description
      Previous value: -"speech: the script, in order — each line is {speaker, text}"New value: +"speech: the script, in order — each line is {speaker, text, style}"
    • addedInput schema / properties / lines / items / properties / style
      Added value: +{
      +  "description": "how this line is said, in your own words (tone, emotion, pace) — only for models with line_style, at most max_line_style_chars",
      +  "type": "string"
      +}
    • changedInput schema / properties / lines / items / properties / text / description
      Previous value: -"what they say"New value: +"what they say — on a model with tags, a sound tag from its list may sit inside the words (e.g. <laugh>)"
    • changedInput schema / properties / speakers / description
      Previous value: -"speech: the voices, in order (list_models has the voices, accents, styles and paces). Each is {name, voice, accent, style, pace, profile}, all optional except that a script needs at least one speaker"New value: +"speech: the voices, in order (list_models has the voices, accents, styles and paces). Each is {name, voice, accent, style, pace, profile}, all optional except that a script needs at least one speaker. A model with line_style lists no accents, styles or paces: direct each line with its own style instead"
  4. First observed

TDQS

A4.6/5.0
Behavior5/5

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

Beyond the read-only and idempotent annotations, the description adds substantial behavioral context: it is free, changes nothing, runs every check that generate runs, and returns cost, coin balance, and pricing settings. It also explains the validation benefit that a refused request is caught before the person is asked anything.

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?

The description is compact and front-loaded: it states what the tool does, that it is free and side-effect-free, what it returns, how validation works, and how to use the result. Every sentence contributes useful information without repetition.

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 complex 20-parameter tool with a full input schema and an output schema, the description gives enough context to invoke it correctly: same arguments as generate, exclusion of expected_cost, validation parity, and the handoff to generate. It does not spell out distinctions from other quote/estimate siblings, which keeps it from being fully complete.

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 100%, so each of the 20 parameters is documented in the schema. The description adds cross-tool parameter semantics by saying it takes the same arguments as generate without expected_cost and that the returned coins should be passed to generate as expected_cost, which is meaningful context not captured by the individual parameter descriptions.

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?

The description states a specific verb and resource: "Price a generation without making it." It immediately distinguishes the tool from its closest sibling, generate, by making clear that this version performs no creation, and it frames the output as the coins it would cost.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The usage context is clear: call this before generate to preview cost and validation, then pass the answered coins to generate as expected_cost. It does not explicitly name other pricing siblings such as app_quote or estimate_run, so the alternative guidance is incomplete, but the primary when-to-use case is well established.

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