Skip to main content
Glama
newsbubbles

ismail: agent DAW (MCP server)

Live Midi Clock

live_midi_clock

Sends MIDI clock from a live set to a port so external DAWs or drum machines follow the set’s tempo and start on its bar line. Use it to sync playback with another app or hardware.

Instructions

Send MIDI clock from the live set to a port, so Ableton, FL Studio or a drum machine follows the set's tempo and starts on its bar line. Reach for it when another app or a hardware box should play in time with the set. 24 pulses per quarter note at the set's tempo (one tempo per set) start at once, so the receiver can lock to it; Start goes out right before the first pulse of the next bar line, which becomes the other app's bar 1. position=True sends that bar's Song Position Pointer first and Continue instead of Start, for a DAW that follows song position (it lands on the same bar number). on=False sends Stop; the set's end sends Stop too. offset_ms: as live_midi_out (shared by the port). The other app must take clock in from that port: in Ableton, the port's Sync on (Preferences, Link/Tempo/MIDI), then EXT; in FL Studio, the port enabled as an input in MIDI settings with its sync on, then external sync. With no port: what is sending (live_status says it too).

Input Schema

NameRequiredDescriptionDefault
onNo
portNo
projectYes
positionNo
offset_msNo

Output Schema

NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.4.0

TDQS

A4/5.0
Behavior5/5

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

With no annotations at all, the description carries the full behavioral burden and does so: 24 PPQN at one tempo per set, Start emitted just before the first pulse of the next bar line (which becomes the receiver's bar 1), position=True swapping Start for Song Position Pointer + Continue, on=False sending Stop, and automatic Stop at set end. It even covers the failure path (no port configured) and what 'live_status' reports in that case.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The core behavior is front-loaded in the opening sentence, which is good, but the block then sprawls through DAW-specific setup menus and a parenthetical about live_status, with no line or bullet structure to separate behavior from prerequisites. Every clause is relevant, yet the density and interleaving of operation and configuration make it slower to parse than it needs to be.

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?

An output schema exists, so return values need no explanation, and the description covers start/continue/stop semantics, timing alignment, and the no-port error case. The remaining gap is parameter-level: the meaning of 'port' and 'project' and the fact that offset_ms is defined only via another tool's docs is not resolved for an agent with no schema descriptions.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must compensate for five undocumented parameters. It explains on (Stop), position (SPP+Continue vs. Start), and offset_ms only by deferring to live_midi_out ('shared by the port'), while port (what a valid value looks like, how to enumerate ports) and the required project parameter are never explained.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The first sentence states a specific verb and resource: send MIDI clock from the live set to a port so an external DAW or drum machine follows tempo and starts on the bar line. It is clear to an agent what the tool does, though it never contrasts itself with the closely named siblings live_midi and live_midi_out, so disambiguation relies on the reader inferring from 'clock' vs. generic MIDI.

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?

'Reach for it when another app or a hardware box should play in time with the set' gives an explicit use condition, and the Ableton/FL Studio setup notes tell the agent what must be true on the receiving side. No exclusion or named alternative (e.g. 'for note/CC data use live_midi instead') is given, which keeps it from a 5.

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