Skip to main content
Glama

Plan a music video or film and get its price (one approval)

studio_video_plan
DestructiveIdempotent

Creates or updates a film or music-video project, saves its script or storyboard, and returns a price quote without charging. Film input contains the finished script, language, cast and visualWorld. Music input contains sections, visualWorld and optional songUnderstanding. start identifies a new project; projectId identifies an existing one. A music project without a song returns state needs_song and its projectId; planning can continue on that project after its song upload. The result contains the project, saved plan and quote. Identical operationId and input retries return the same project and quote. Rendering is separate and requires the customer's approval of the quoted price.

Input Schema

NameRequiredDescriptionDefault
filmNoFilm only: the finished script, language, cast and visualWorld (same fields as studio_film_script_write). expectedRevisionId may be omitted for a new film.
musicNoMusic only: what to save on the board once the song is on the project.
scopeYes'whole' for the whole song, 'ticked' for the sections currently ticked on the board.
startNoStart a new video (same fields as studio_video_start). Omit when continuing an existing projectId.
projectIdNoContinue this existing project instead of starting a new one.
operationIdYesStable operation identifier shared by this quote and its confirmation.
stillQualityNoPicture quality for the pictures. Default high.
stillShotIdsNoOptional customer-selected stableShotIds from studio_sections_read. Absence selects every shot without a picture. Other shots may have separate later quotes and financial approvals.

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true, idempotentHint=true and openWorldHint=false, so the bar is lower, yet the description adds real value: no charge occurs at this step, a music project lacking a song lands in a recoverable needs_song state, and identical operationId+input retries reuse the same project and quote. It does not spell out what an 'update' overwrites on an existing project, which is the one behavior the destructiveHint still leaves unexplained.

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?

Six compact sentences, front-loaded with the core action and price-without-charge promise, then branching rules, then idempotency, then the rendering boundary. Each sentence carries information; a small amount of the input-shape sentence duplicates the schema but it establishes the union shape quickly.

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?

For a complex 8-parameter nested tool with an output schema, the description covers the missing pieces an agent needs: which inputs select film vs music, the new-vs-existing project switch, the needs_song recovery path, no-charge semantics, retry identity, and the hand-off to rendering. Return shape explanation is not required given the output schema.

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 the field-level meaning of operationId, scope, film, music, start, projectId, stillQuality and stillShotIds is already carried by the schema. The description restates the film vs music payload split and the start/projectId alternative, which the schema descriptions already assert, so it adds only modest semantic value beyond the structured data.

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 precise compound verb+resource ('creates or updates a film or music-video project, saves its script or storyboard, and returns a price quote without charging') and immediately bounds it against rendering, which is called out as a separate, approval-gated step. An agent can distinguish it from the sibling quote/write tools without opening schemas.

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?

Explicit routing is given for the two entry modes ('start identifies a new project; projectId identifies an existing one') and for the failure branch ('A music project without a song returns state needs_song and its projectId'). It also states that rendering is separate and needs the customer's approval of the quoted price, but it never names the sibling tools (e.g. studio_video_start, studio_storyboard_prepare, studio_generation_quote) an agent should prefer in adjacent situations.

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