Skip to main content
Glama

Snap cuts to the musical beat

beat_align_cuts

PROJECT-SCOPED: this call acts only on the explicit project_id and returns the project identity with its result. THE tool for 'cut to the beat'. Slides each INTERNAL cut (never the program's first start / last end) onto the nearest beat within tolerance_s (default 0.35s), skipping any move that would land inside a word. WHICH beat: when the edit has music it uses the SONG the viewer hears, in program time — that is what 'the beat' means; source='video' forces the footage's own audio instead. If the USER tells you the tempo ('there's a beat every second', 'it's 120 BPM'), pass every_s=1 or bpm=120 — their tempo is data and skips the confidence gate. With no music, no stated tempo and no clear pulse in the footage it refuses honestly rather than 'syncing' to noise — never invent a tempo yourself. Cuts must already exist: this MOVES boundaries, it does not create them (to cut ON every beat, build the spans with keep_segments from the beat times get_audio_analysis reports, then call this to tighten them). One EDL version; reports moved/skipped counts.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
bpmNo
sourceNo
every_sNo
project_idYesRequired immutable scope for this call. Copy the id from list_projects/open_project/project_state; the active-project pointer is never used to guess.
tolerance_sNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.9/5.0
Behavior5/5

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

Despite minimal annotations, the description fully discloses behavior: it moves boundaries, skips word-interior moves, refuses to sync to noise, never invents a tempo, returns project identity plus moved/skipped counts, and notes it operates on a single EDL version. No contradiction with annotations (destructiveHint=false aligns with 'moves boundaries, does not create').

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 every sentence carries necessary information. It is front-loaded with scope and core behavior, then covers edge cases and workflow. Slightly verbose in phrasing, but justified by the tool's complexity and the absence of an output schema.

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?

With no output schema, the description covers the return (project identity, moved/skipped counts) and behavior in edge cases. It also integrates with sibling tools (get_audio_analysis, keep_segments) to give a complete workflow. Nothing an agent needs to call it correctly is missing.

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?

Schema coverage is only 20% (only project_id described), but the description explains every parameter: tolerance_s default (0.35s), source enum meaning (video forces footage audio), every_s and bpm as tempo hints that skip the confidence gate, and project_id as immutable scope. This fully compensates for the sparse schema.

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 a specific verb ('slides each INTERNAL cut') and resource (cuts), and explicitly frames itself as 'THE tool for cut to the beat'. It distinguishes from siblings by noting it does not create cuts and skips moves that would land inside a word, making it clear vs. keep_segments and cut_silences.

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?

Provides explicit when-to-use guidance: describes when to pass tempo hints, when it refuses (no music/tempo/pulse), and gives a workflow with keep_segments and get_audio_analysis for cutting on every beat. It also states it only moves existing cuts, not creates them.

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.