Skip to main content
Glama

Save script

save_script

Save script text (your own draft, or an edited version of the generated one). Saving UPDATES the active version in place — the previous text is not kept, so show the user the current script (get_script) before overwriting it. New versions are created by generate_script runs, and activate_script_version switches between those. Run scan_script afterwards so assets and voice blocks reflect the new text.

Three notations the script text carries, none of them ever spoken:

SCENE DIRECTIONS — `[SCENE: <visual direction>]` as its OWN paragraph
(blank line before and after; brackets inside a narration paragraph are
never matched). It directs the storyboard for the narration that follows,
until the next direction, and for that span OUTRANKS the director style's
shot choices — say what is on screen, who is in frame, and any on-screen
text to bake in verbatim. It does not constrain how many segments the
span is cut into. scan_script extracts characters/places named only
inside a direction too, under the exact name used.

PAUSES — `<break time="1.5s" />` is the ONLY thing that makes the voice
pause; ellipses, dashes and paragraph breaks produce no silence. Use
~0.5s between thoughts, ~1.0s at act seams, longer where a card needs
reading time; write ONE tag with the total ("4.0s"), never two back to
back. narrator_speed changes how fast words are said; breaks add the
silence between them.

SPEAKERS — a paragraph starting `Name: "..."` assigns that line to a
character, who gets their own voice (set_character_voice) and their own
shot. Narration with no prefix is the narrator's.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
contentYesFull script text to save as a new version; plain prose narration, optionally with `[SCENE: ...]` direction paragraphs, `<break time="0.5s" />` pauses, and `Name:` speaker prefixes
project_idYesProject ID, as returned by create_project or list_projects

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / content / description
      Previous value: -"Full script text to save as a new version; plain prose narration, optionally with scene headings"New value: +"Full script text to save as a new version; plain prose narration, optionally with `[SCENE: ...]` direction paragraphs, `<break time=\"0.5s\" />` pauses, and `Name:` speaker prefixes"
  2. Changed2 schema fields changed
    • addedInput schema / properties / content / description
      Added value: +"Full script text to save as a new version; plain prose narration, optionally with scene headings"
    • addedInput schema / properties / project_id / description
      Added value: +"Project ID, as returned by create_project or list_projects"
  3. First observed

TDQS

A4.9/5.0
Behavior5/5

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

The description explicitly discloses that the previous text is not kept, which is critical behavioral context beyond the annotations. It also details that scene directions, pauses, and speaker prefixes are never spoken, and it documents how pauses truly behave versus ellipses/dashes. This is highly transparent about side effects and edge cases.

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?

The description is long, but the length is earned: it is organized into labeled sections with bolded terms and contains no filler. It is front-loaded with the core behavior before diving into notation details, though a slightly tighter presentation would be possible.

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?

The description is contextually complete for a complex update tool: it covers preconditions, post-actions, destructive overwrite behavior, related sibling tools, and the exact syntax of the three script notations. The lack of an output schema is not a gap because the description fully explains the operation's contract.

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

Parameters5/5

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

Although the schema covers both parameters, the description substantially enriches the `content` parameter by specifying exact notation syntax and rules: `[SCENE: ...]` paragraphs, `<break time="1.5s" />` tags, and `Name:` speaker prefixes. It also warns against malformed uses like two breaks back-to-back, which the schema alone does not convey.

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 an explicit verb and object: 'Save script text' and clarifies that saving 'UPDATES the active version in place.' It also differentiates itself from related tools like generate_script and activate_script_version by describing their roles in the same workflow.

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?

The description gives concrete workflow guidance: show the user get_script before overwriting, run scan_script afterwards, and notes that new versions come from generate_script while activate_script_version switches between versions. This makes both when-to-use and when-not-to-use clear.

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