Skip to main content
Glama
ismail: agent DAW (MCP server)

ismail: agent DAW (MCP server)

Live Midi Timecode

live_midi_timecode

Sends MIDI Time Code from the live set to a MIDI port so external DAWs, editors, or tape machines chasing timecode follow the set's position.

Instructions

Send MIDI Time Code (MTC) from the live set to a port: the set's time from its start, so a DAW, an editor or a tape machine that chases timecode follows the set's position. Reach for it when the set leads and another app takes its time from it: send timecode to my DAW or my video editor (for tempo and beats, live_midi_clock). rate: 24, 25 (default), 29.97 (drop-frame; '30df' says the same) or 30 frames per second, as the receiver is set ('29.97' is drop-frame, MTC's own code for it; 29.97 non-drop is not yet). offset: the timecode the set's start reads as, 'hh:mm:ss:ff' (e.g. '01:00:00:00') or seconds (default 0). Quarter frames go out four a frame, each when its time reaches the speakers (as live_midi_out's notes), after a full-frame message of the first frame, so the receiver locates there first. The time is the set's seconds: a tempo change does not move it. Call again with another offset or rate to locate there. on=False stops the quarter frames, which a receiver takes as a stop; the set's end does the same, and after it the call is refused (nothing would go out). Another port: the old one stops, and the reply says so. offset_ms: as live_midi_out (shared by the port). Timecode out and timecode in on one port is refused. With no port: what is sending (live_status says it too).

Input Schema

NameRequiredDescriptionDefault
onNo
portNo
rateNo
offsetNo
projectYes
offset_msNo

Output Schema

NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.4.5

TDQS

A4.8/5.0
Behavior5/5

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

With no annotations supplied, the description carries the full burden and does so: quarter frames go out four per frame gated on what reaches the speakers, a full-frame message precedes them so the receiver locates, time is wall-clock set seconds unaffected by tempo changes, and on=False or the set's end is interpreted by the receiver as a stop. It also discloses the port-switching side effect (the old port stops, the reply says so) and the refusal on a duplicate in/out port.

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 before parameter and behavior detail, and nearly every clause adds a distinct operational fact rather than restating the name. It is a single dense run-on with semicolon-chained clauses and no formatting, which hurts scannability despite the high signal density.

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?

An output schema exists, so return values need not be described, and the description instead covers the state interactions that matter for a live timecode tool: re-locating via a new offset or rate, port switching, stop semantics, and refusal cases. For a six-parameter mutation tool with zero annotation and zero schema-description coverage, this is close to complete.

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 0%, so the description is doing the work: rate enumerates 24/25/29.97-drop/30 and flags 29.97 non-drop as unsupported, offset is given a format and example ('hh:mm:ss:ff' or seconds, default 0), on=False is explained behaviorally, and offset_ms is cross-referenced as port-shared. It leaves 'port' and the required 'project' parameter without explicit semantics, which keeps it below a 5.

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 — sending MIDI Time Code from the live set to a port — and immediately names the tracking scenario (a DAW, editor or tape machine chasing the set's position). It explicitly separates itself from live_midi_clock ('for tempo and beats'), so an agent can pick the right sibling without opening either schema.

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 an explicit trigger ('Reach for it when the set leads and another app takes its time from it'), names an alternative tool for the competing case, and adds concrete negative conditions: timecode out plus timecode in on one port is refused, and calls are refused after the set's end. When-to-use, when-not, and the sibling alternative are all present.

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

Deploy Server

Other Tools