Skip to main content
Glama
boraswim
by boraswim

export_song

Destructive

Exports songs to WAV, MIDI, MML, or XM files for playback, editing, or sharing; for long WAV renders, check rendering status and inspect duration, peak, and RMS to catch silent or clipped audio.

Instructions

Exports the song as audio or music data: wav (rendered audio), mid (MIDI), mml (SiON MML) or xm (FastTracker). A WAV renders at about playback speed or slower, so a long one returns state "rendering"; follow it up with export_status. A finished WAV reports its duration, peak and RMS, to help catch silent or clipped results.

Input Schema

NameRequiredDescriptionDefault
pathYesWhere to write it. The extension must match the format.
formatYes
to_barNoBar after the last one to export. By default, the end of the song.
from_barNoFirst bar to export, 0 by default.
overwriteNoMust be true to replace an existing file.
wait_secondsNoHow long to wait for a WAV before returning, 40 by default.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.2/5.0
Behavior4/5

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

Annotations declare destructiveHint=true and the description sensibly adds behavior beyond them: render latency roughly proportional to playback length, the possibility of a non-final "rendering" state, and the duration/peak/RMS metrics a finished WAV reports for catching silent or clipped output. It doesn't explicitly restate the overwrite hazard, but the schema already carries that and there is no contradiction.

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

Conciseness5/5

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

Three tight sentences, front-loaded with what is exported and the format enum, followed by the async caveat and the verification signal. No filler and no repetition of the schema.

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?

With no output schema, the description usefully discloses the "rendering" state and the WAV result metrics, which is the key return-value knowledge. It does not describe what a completed mid/mml/xm export returns, but the essential call-time and follow-up behavior is covered.

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 83% and every parameter is described there, so the baseline is 3. The description only implicitly touches wait_seconds (via the render-speed caveat) and says nothing about from_bar/to_bar range semantics, adding little beyond 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 (exports) and resource (the song) and enumerates the four output formats with one-line glosses (wav rendered audio, mid MIDI, mml SiON MML, xm FastTracker). An agent can immediately tell this apart from export_status or save_song without opening the schema.

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?

Gives clear context for the asynchronous path: a WAV renders at about playback speed or slower, so a long one returns state "rendering" and must be followed up with export_status. It does not state when to prefer save_song or when a non-WAV format is the right choice, so differentiation from siblings is only partially covered.

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