Skip to main content
Glama

Veltake Studio

Price the composer (app)

app_quote
Read-onlyIdempotent

For the Veltake app's own screens only — not for a conversation. estimate_generation for the composer's settings.

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

B3.2/5.0
Behavior3/5

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

The annotations already establish that this is a read-only, non-destructive, idempotent operation, so the description does not need to repeat that safety profile. It adds useful scope information about app screens versus conversations, but it does not explain pricing behavior, estimation freshness, or other operational details beyond the annotations.

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

Conciseness3/5

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

The definition is short and front-loads the app-only scope, but the second sentence is a fragment and is ambiguous rather than efficient. It avoids waste but sacrifices clarity for brevity.

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

Completeness3/5

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

Given the rich schema coverage, annotations, and output schema, the description only needs to clarify selection and scope. It does that partially by naming the alternative and the app-only context, but its elliptical wording leaves the app_quote versus estimate_generation distinction less clear than it should be for a 20-parameter tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all 20 parameters are already documented in the input schema. The description adds no parameter-level meaning beyond what the schema provides, making the baseline 3 appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description implies a pricing/quote tool through the title and the app-screens scope, but it never plainly states that it returns a price estimate. It distinguishes itself from a conversation context, yet the core verb and resource are only implicit.

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?

It explicitly limits use to the Veltake app's own screens and excludes conversation use, and it names estimate_generation as the alternative for composer settings. The guidance is clear enough for selection, though the phrasing is terse and slightly ambiguous.

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