Skip to main content
Glama

Update shot

update_shot

Change one storyboard shot: its action text, framing (shotValue), camera movement, duration, or continuation link. Only the fields you pass change. Get shotIds from list_shots. Live collaborators see the change immediately. No images are regenerated and no credits are spent. A shot that continues another (continuesFromShotId set) takes its framing and camera movement from its chain head: shotValue / cameraMovement passed for it are not applied and come back in ignored; change the chain head instead. Pass continuesFromShotId to link to an earlier shot of the same scene, or null to unlink. attachments adds board and context images to the shot's panel (see create_shots); boardInstructions sets what the boards' redraw leaves out. At least one field besides shotId is required. Returns the shot as list_shots shows it after the write.

Input Schema

NameRequiredDescriptionDefault
shotIdYesShot to change (shotId from list_shots or create_shots).
projectIdYesScreenWeaver project id (from list_projects).
shotValueNoFraming. A preset value, label or shorthand: extreme-close-up (ECU), close-up (CU), medium-close-up (MCU), medium (MS), medium-long (MLS), long (LS), extreme-long (ELS), ots (OTS), pov (POV), insert. Other text is kept as free text.
actionTextNoWhat the frame shows and what happens in it, as a concrete visual description for the storyboard image. To show a Story element (character, place, object) write its referenceHandle from list_entities, e.g. @ref_storyboard_char_alice_sheet for the character Alice. The server turns known handles into live references (they read back as @#<entityId>-story-element); unknown ones stay as plain text. Read-back @# tokens can be sent again unchanged. Describe the shot in story terms only, with no instruction to the generator (not "Redraw board panel 3: …" or "keep the board's framing"): the action also feeds the production and video prompts. Boards go in attachments, and what to leave out of them in boardInstructions.
attachmentsNoImages to attach to the shot's panel, added to those it has (max 8); attaching an image again with another role changes its role. Same roles and modes as in create_shots.
cameraMovementNoCamera movement. A preset value or label: static, pan-left, pan-right, tilt-up, tilt-down, dolly-in, dolly-out, truck-left, truck-right, pedestal-up, pedestal-down, crane, handheld, steadicam, whip-pan, zoom-in, zoom-out. Other text is kept as free text.
durationSecondsNoShot length in seconds (0.5 to 3600, rounded to a tenth).
boardInstructionsNoWhat the redraw of the shot's boards must do or leave out beyond the template, in the user's words; null clears it. Only when the user asked for something. Never cite the art direction.
continuesFromShotIdNoLink this shot as a continuation of an earlier shot of the same scene (shotId), or null to unlink it. The shot must come after its predecessor in the timeline.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changed
    • changedInput schema / properties / actionText / description
      Previous value: -"What the frame shows and what happens in it, as a concrete visual description for the storyboard image. To show a Story element (character, place, object) write its referenceHandle from list_entities, e.g. @ref_storyboard_char_alice_sheet for the character Alice. The server turns known handles into live references (they read back as @#<entityId>-story-element); unknown ones stay as plain text. Read-back @# tokens can be sent again unchanged. Describe the shot in story terms only, with no instruction to the generator (not \"Redraw board panel 3: …\" or \"keep the board's framing\"): the action also feeds the production and video prompts. Instructions about boards go in the panel prompt (set_prompt)."New value: +"What the frame shows and what happens in it, as a concrete visual description for the storyboard image. To show a Story element (character, place, object) write its referenceHandle from list_entities, e.g. @ref_storyboard_char_alice_sheet for the character Alice. The server turns known handles into live references (they read back as @#<entityId>-story-element); unknown ones stay as plain text. Read-back @# tokens can be sent again unchanged. Describe the shot in story terms only, with no instruction to the generator (not \"Redraw board panel 3: …\" or \"keep the board's framing\"): the action also feeds the production and video prompts. Boards go in attachments, and what to leave out of them in boardInstructions."
    • addedInput schema / properties / attachments
      Added value: +{
      +  "description": "Images to attach to the shot's panel, added to those it has (max 8); attaching an image again with another role changes its role. Same roles and modes as in create_shots.",
      +  "items": {
      +    "additionalProperties": false,
      +    "properties": {
      +      "mediaId": {
      +        "description": "The image, as a media id from import_media (a page or a crop), view_media or get_group.",
      +        "maxLength": 200,
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      "mode": {
      +        "description": "Board only. reference (default): the panel generator redraws the board in the storyboard style, keeping its staging, with the story elements' look. as-is: the board itself becomes the shot's selected panel, as set_shot_panel does (at most one per shot).",
      +        "enum": [
      +          "reference",
      +          "as-is"
      +        ],
      +        "type": "string"
      +      },
      +      "role": {
      +        "description": "board: the drawing of this shot's frame. context: material the panel reads but does not draw, such as the strip of the whole shot or a page with the director's notes.",
      +        "enum": [
      +          "board",
      +          "context"
      +        ],
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "mediaId",
      +      "role"
      +    ],
      +    "type": "object"
      +  },
      +  "maxItems": 8,
      +  "minItems": 1,
      +  "type": "array"
      +}
    • addedInput schema / properties / boardInstructions
      Added value: +{
      +  "anyOf": [
      +    {
      +      "description": "What the redraw of the boards must do or leave out beyond the template, in the user's words, e.g. \"Leave out the camera arrows; keep the rain.\" Only when the user asked for something. Never cite the art direction.",
      +      "maxLength": 2000,
      +      "minLength": 1,
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "description": "What the redraw of the shot's boards must do or leave out beyond the template, in the user's words; null clears it. Only when the user asked for something. Never cite the art direction."
      +}
  2. Changed1 schema field changed
    • changedInput schema / properties / actionText / description
      Previous value: -"What the frame shows and what happens in it, as a concrete visual description for the storyboard image. To show a Story element (character, place, object) write its referenceHandle from list_entities, e.g. @ref_storyboard_char_alice_sheet for the character Alice. The server turns known handles into live references (they read back as @#<entityId>-story-element); unknown ones stay as plain text. Read-back @# tokens can be sent again unchanged."New value: +"What the frame shows and what happens in it, as a concrete visual description for the storyboard image. To show a Story element (character, place, object) write its referenceHandle from list_entities, e.g. @ref_storyboard_char_alice_sheet for the character Alice. The server turns known handles into live references (they read back as @#<entityId>-story-element); unknown ones stay as plain text. Read-back @# tokens can be sent again unchanged. Describe the shot in story terms only, with no instruction to the generator (not \"Redraw board panel 3: …\" or \"keep the board's framing\"): the action also feeds the production and video prompts. Instructions about boards go in the panel prompt (set_prompt)."
  3. First observed

TDQS

A4.9/5.0
Behavior5/5

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

Annotations already establish that this is a non-readOnly, non-destructive, non-idempotent mutation. The description adds important behavior beyond that: live collaborators see changes immediately, no images are regenerated, no credits are spent, and chain-head fields passed to a continuation shot are ignored and returned in `ignored`.

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 dense but well-organized and front-loaded around the core update action. Every sentence contributes operational context, and the later sentences address specific high-risk edge cases without padding.

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 nine-parameter mutation tool with no output schema, the description covers the missing operational context: return shape, chain-head restrictions, ignored fields, attachment behavior, and credit/image side effects. Nothing essential to calling it correctly appears to be 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 description coverage is 100%, so parameter details are already well documented. The description still adds semantic value by explaining the continuation chain behavior, the `ignored` response behavior, and the interaction between continuesFromShotId and framing/camera fields.

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?

Starts with a precise verb and resource: change one storyboard shot, then enumerates the editable fields. It clearly distinguishes an update operation from siblings such as create_shots, delete_shots, and set_shot_panel.

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?

It tells the agent where to get shotIds (list_shots), how to resolve continuation conflicts (change the chain head instead), and that attachments follow the create_shots model. The edge condition requiring at least one field besides shotId is stated explicitly.

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.