Skip to main content
Glama

Doseedo Film Score: spot a video, play your score on AI instruments, mix it to picture

Spot a video → cue sheet

doseedo_spot_video

SPOT A FILM: a video in, the music editor's cue sheet out — the first step of scoring to picture. Scene detection on EVERY frame, and it listens to the soundtrack (CPU, no credits): hard cuts frame-exact (dark, low-contrast footage included), fades, flashes and visual impacts; each shot's brightness, colour, warmth, contrast, motion and mood, with a keyframe JPEG per shot so you can SEE what it shows; where dialogue is (Silero VAD) and loud audio hits; then cues placed where the picture wants music and the dialogue lets it (1M1, 1M2 …: start/end SMPTE timecode, emotion, energy, tension arc, hit points ranked by strength, a suggested bpm that lands them, and tempo_map_input — pass it to doseedo_tempo_map as is). It sees light, movement and editing, not meaning: read the keyframes for what each scene is about. Input: video_key (doseedo_get_upload_url accepts mp4/mov/m4v/webm/mkv) or video_url (public https), ≤ 2 GB and ≤ 3 h. Optional start_timecode (the first frame's, e.g. 01:00:00:00; default the file's own), coverage (0.05–0.98, default 0.55: how much of the film gets music), reel (cue ids M), keyframes (0–60). Async: job_id → doseedo_wait_task (~1 min for a 10-min 1080p reel). Next: doseedo_tempo_map per cue → write the notes → doseedo_render_score → doseedo_mix → doseedo_score_to_picture. Cancel: the plane has no stop for a running spotting pass — it runs to completion (credits spent), the job ends as canceled and its output is discarded. Only a job still queued at the plane is refunded by the plane's own failure refund.

Input Schema

NameRequiredDescriptionDefault
reelNoReel number for the cue ids (default 1 → 1M1, 1M2 …).
coverageNoHow much of the film gets music (default 0.55). Raise it for wall-to-wall scoring (a trailer, an animation), lower it for a dialogue drama.
keyframesNoHow many shots get a keyframe JPEG (default 24; the longest shots first).
video_keyNoR2 ingest key of the uploaded video (doseedo_get_upload_url with the file name, e.g. reel1.mp4; starts with "ingest/").
video_urlNohttps URL of the video, as an alternative to video_key (a public file URL, fetched directly; ≤ 2 GB).
cut_thresholdNoScene-change threshold at full contrast (default 0.3). Lower finds softer cuts, higher only the hardest.
start_timecodeNoSMPTE timecode of the first frame, HH:MM:SS:FF (";" before the frames = drop-frame at 29.97/59.94). Default: the file's embedded timecode, else 00:00:00:00.
idempotency_keyNoOptional. Any unique string for THIS request (e.g. a UUID). Re-sending the same call with the same key after a timeout returns the same job instead of starting a second one.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.6/5.0
Behavior5/5

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

Goes well beyond the annotations: async job_id → doseedo_wait_task with an expected runtime, CPU/no-credit cost, hard input limits (≤2 GB, ≤3 h), and a precise disclosure that a running spotting pass cannot be stopped and credits are spent even though the job ends canceled. The annotations (readOnlyHint=false, destructiveHint=false) don't cover any of this, so the description carries real weight.

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 the verb and output, and nearly every clause carries operational information. It is dense and longer than typical, with input limits and pipeline steps packed into a long run-on, which costs a point but not much value is wasted.

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 still documents the return shape thoroughly (cue ids, SMPTE start/end, emotion, energy, tension arc, ranked hit points, suggested bpm, tempo_map_input handoff). Combined with the async flow and cost caveats, an agent has everything needed to call and follow up correctly.

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 baseline is 3; the description still adds file-size/duration constraints and explains coverage's intent ('raise for wall-to-wall scoring, lower for a dialogue drama') plus how video_key/video_url relate. Most other params (reel, keyframes, cut_threshold) are only restated, keeping it at 4.

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 concrete verb+resource+output: 'a video in, the music editor's cue sheet out — the first step of scoring to picture'. An agent can immediately distinguish this from doseedo_analyze_song or doseedo_score_to_picture, and the description enumerates what the output cue sheet contains.

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?

Strong routing context: it positions itself as the first step and chains 'Next: doseedo_tempo_map per cue → ... → doseedo_score_to_picture'. It also warns on cancellation semantics. It stops short of explicitly saying when NOT to use it (e.g. audio-only, MIDI sources), so 4 rather than 5.

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