Skip to main content
Glama

Detect scene changes

detect_scenes

Find where the shots change in a ready video: hard cuts and gradual transitions (dissolves, fades), each with its time, frame and confidence, and the list of scenes between them. Use it on footage that is already edited (vlogs, compilations, screen recordings with cuts) before cutting to the beat or trimming or reframing shot by shot. It analyzes the source asset, not the timeline: times are seconds into the asset. Pass startTime and endTime with the source range the shots you build use: only that range is read and charged, and its times stay seconds into the asset. null for both reads the whole video. It costs credits for each second of video it reads. A long video answers with a Job ID; call wait_for_jobs with it. Read the boundaries with read_analysis_range kind scenes: it reads the latest run on the asset, whole or ranged.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
assetIdYesAsset id of a ready video from search_assets.
endTimeYesSource second to stop reading at, or null for the asset's end. null for both reads the whole asset.
projectIdYesThe project this call runs on without changing the open project. null (or leaving it out) uses the open project. wait_for_jobs takes the projectId of the calls that started the jobs.
startTimeYesSource second to start reading at, or null for the asset's start. Pass the range of the shot you build.
thresholdYesTransition probability a frame needs to count, 0.1 to 0.9. null for the standard 0.5; lower finds softer transitions, higher only clear ones.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.8/5.0
Behavior5/5

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

Annotations only declare non-destructive write semantics (readOnlyHint=false, destructiveHint=false, idempotentHint=false); the description adds the operation targets the source asset not the timeline, that times are seconds into the asset, that credits are charged per second read, and that long videos return a Job ID requiring wait_for_jobs. It also discloses that read_analysis_range returns the latest run, whole or ranged. This is substantive behavior beyond the annotation set.

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?

Front-loaded with purpose, then usage, then cost/job semantics, then the read path — a logical order with no filler sentences. It is dense and slightly long, and the parenthetical examples could be trimmed, but nothing is redundant.

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?

There is no output schema, so the description carries the return-value burden and does: it names the fields returned (time, frame, confidence, scene list), the async Job ID path plus the rendezvous tool, and the read tool for boundaries. Nothing an agent needs to call and consume this tool is 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 coverage is 100%, so the baseline is 3, but the description adds meaning the schema does not: startTime/endTime clip what is read and billed, and null/null reads the whole asset. It does not, however, explain threshold (documented only in the schema), so it does not fully surpass the 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?

States a specific verb and resource ('Find where the shots change') and enumerates outputs (hard cuts, dissolves, fades, each with time, frame, confidence, plus the scene list). It is clearly separable from siblings like detect_beats, which it is explicitly sequenced against.

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?

Gives explicit when-to-use ('footage that is already edited (vlogs, compilations, screen recordings with cuts)') and a workflow position ('before cutting to the beat or trimming or reframing shot by shot'). It also names the downstream tool for retrieving results (read_analysis_range kind scenes), so the agent knows both entry and follow-up.

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.