Skip to main content
Glama

Build a timecode show from timed cue events (never plays or records)

gma3_build_timecode

Create, replace, or append grandMA3 timecode tracks and cue events with validated timings, actions, and loop settings.

Instructions

mode (required): create (refuses an existing show), replace (removes its track groups, keeps the show) or append (adds a track group). tracks: [{sequence, events: [{at, action, cue?}]}]: at is seconds, "H:MM:SS.sss", "H:MM:SS:FF" (with fps 24, 25, 30 or 60) or {frames, fps}, rounded to the console's 1/16777216 s; action is go (Go+), go_back, goto (needs cue), on, off, toggle, top, pause, kill, flash_press / flash_release, temp_press / temp_release (pairs are checked: allow_unpaired to override). Events are stored in time order; events at the same time keep the order given (the console runs them in storage order). settings: loop_mode (loop, pause, off), loop_count, tc_slot ("internal" or 1-16: configures the source only), switch_off (keep, off), assert_previous_events. Sequences and cues are checked before anything is sent; a playing or locked show is refused. Every event is read back and compared exactly. Never sends Go, Record or anything that plays. Needs bridge 0.25.0.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
fpsNo
modeYes
nameNo
tracksYes
verifyNo
previewNo
settingsNo
timecodeYes
allow_unpairedNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.5/5.0
Behavior5/5

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

With no annotations, the description carries the full burden and does so thoroughly: exact readback comparison of every event, pre-send validation of sequences/cues, refusal of playing or locked shows, same-time events executed in storage order, and an explicit 'never sends Go, Record or anything that plays'. The bridge 0.25.0 requirement is also disclosed.

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?

Sized appropriately for a complex nested-payload tool: nearly every clause carries load-bearing detail (rounding, ordering, pair checking, refusals). It is a single dense paragraph rather than a front-loaded structure, which makes scanning harder, but there is little genuine filler.

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 9-parameter, nested-object, no-output-schema, no-annotation tool, this is unusually complete — it covers validation, failure modes, post-condition verification, and side-effect limits. It is missing semantics for the required top-level timecode, plus name, preview, and the top-level fps, which matter given the 0% schema coverage.

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 0% across 9 parameters and nested objects, and the description compensates for most of it: mode, tracks.at formats (seconds, H:MM:SS.sss, H:MM:SS:FF with fps, {frames,fps}, 1/16777216 s rounding), the action enum's semantics including the gotcha that goto needs a cue and the press/release pair checking with allow_unpaired, and every settings field. Gaps remain for top-level timecode, name, fps, preview, and verify (the readback sentence only implies verify).

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 specific verb and resource (build a timecode show) plus the scope (timed cue events), and the title's 'never plays or records' cleanly separates it from transport/playback siblings such as gma3_timecode_transport. An agent can tell what this does and what it deliberately does not do without opening the schema.

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 three modes are given operational meaning (create refuses an existing show, replace removes its track groups but keeps the show, append adds a track group), which is real when-to-use guidance. It also states the precondition that sequences and cues are checked before anything is sent and that a playing or locked show is refused. It never names the sibling tool to use instead when you actually want playback, so it stops short of explicit alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.