Skip to main content
Glama
newsbubbles

ismail: agent DAW (MCP server)

Midi Play

midi_play

Plays a project's notes to a MIDI output in real time so you can audition parts on hardware synths or DAWs, with optional bars, tracks, channel, clock sync, and duration limits.

Instructions

Play the song's notes to a MIDI output in real time, from here, with no live set: to hear a part on a hardware synth, or through a loopMIDI / IAC port on an instrument in Ableton or FL Studio, or to check a port and a channel before a set. Blocks until the last note ends (Ctrl+C stops it; every note gets its note-off). port: an output's name or a unique part of it (midi_ports). tracks: names (default every unmuted track with notes); bars: [a, b] plays those bars, bar a first (default the whole song). Channels as midi_write: kits on 10, other tracks 1 to 16 in order; channel=<1-16> puts every track on that one (one synth). Notes land where they sound, nudges included, at the project's tempo. clock=True also sends MIDI clock (24 per beat, one beat of pulses before Start, Stop at the end) so a drum machine or a DAW on external sync plays along. max_s: refuses a longer span (choose bars). The reply says how late the messages went out.

Input Schema

NameRequiredDescriptionDefault
barsNo
portYes
clockNo
max_sNo
tracksNo
channelNo
projectYes

Output Schema

NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.4.0

TDQS

A4.5/5.0
Behavior5/5

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

With no annotations provided, the description carries the full behavioral burden and does so well: it discloses that the call blocks until the last note ends, that Ctrl+C stops playback, that every note receives a note-off, and that the reply reports message lateness. It also explains clock output, default track/bar selection, and max_s behavior, which are exactly the operational traits an agent needs before invoking a real-time MIDI tool.

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 front-loaded with the core action and use cases, then moves into blocking behavior and parameter semantics without filler. It is dense and somewhat run-on for seven parameters, but every sentence carries operational meaning, so the length is largely justified.

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?

For a real-time, seven-parameter MIDI playback tool with no annotations, the description is substantially complete: it covers blocking behavior, port selection, track/bar defaults, channel assignment, clock output, max_s limits, and reply lateness. The main missing piece is an explicit definition of the required 'project' parameter, though the presence of an output schema reduces the need to describe returned values.

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 description coverage is 0%, so the description must compensate, and it does for port, tracks, bars, channel, clock, and max_s with concrete semantics and defaults. The notable gap is the required 'project' parameter, which is never explicitly defined beyond phrases like 'the song's notes' and 'the project's tempo'.

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 and resource: playing the song's notes to a MIDI output in real time. It immediately contrasts with live-set workflows ('with no live set') and references related tools like midi_ports for port names and midi_write for channel conventions, making it distinguishable from siblings such as midi_write and live_midi_out.

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?

It gives clear use cases: hearing a part on hardware, routing through loopMIDI/IAC into Ableton or FL Studio, or checking a port and channel before a set. It implies that this is for playback without a live set, but it does not explicitly state when to choose midi_write, live_midi_out, or other MIDI-related siblings instead.

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