Skip to main content
Glama

Notes Write

notes_write

Add musical notes to a project track at a chosen bar, with chords, timing offsets, add/replace modes, and repeats for text-driven composition.

Instructions

Write notes starting at bar. notes: one per line or ';'-separated: ' [vel] [@offset]' with beat relative to the bar's beat 1 (0, 0.5, 1/3 ...). Chords: 'C4,E4,G4'. @offset nudges the sound off its beat in milliseconds ('@-40ms' = 40 ms early, so a late attack lands on the beat); the note still belongs to its beat. mode='replace' first clears the written span (length bars, default = bars the notes cover); mode='add' merges. repeat=N tiles the block N times.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
barYes
barsNo
modeNoreplace
notesYes
trackYes
repeatNo
projectYes

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.3.0

TDQS

A3.8/5.0
Behavior4/5

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

With no annotations at all, the description carries the full burden and does well: it discloses that mode='replace' destructively clears the written span, that 'add' merges, that length defaults to the span the notes cover, and that @offset shifts audio without moving beat ownership. It stops short of covering undo-ability, error behavior, or what happens to pre-existing notes outside the cleared span.

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 primary purpose is front-loaded in the first clause, and nearly every sentence carries necessary grammar or mode detail that the schema does not supply. It is a dense single paragraph rather than a structured breakdown, which makes the note-format spec harder to scan 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?

For a 4-required/7-total-parameter mutation tool with zero schema descriptions and no annotations, the description supplies the critical missing layer — the note DSL, offset semantics, and mode behavior — while the existing output schema covers return values. Remaining gaps are project/track identification and failure/undo behavior.

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 document all 7 parameters, and it effectively documents bar, notes (full DSL grammar with chord and velocity syntax), bars (default derived from notes), mode, and repeat. Only `project` and `track` are left undefined — presumably name strings — so the compensation is strong but not total.

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 description opens with a precise verb and resource ('Write notes starting at `bar`') and pins the scope to project/track/bar, which is unambiguous. It never contrasts itself with adjacent siblings such as notes_transform, notes_clear, or pattern_write, so an agent must infer the boundary from behavior alone.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The mode semantics ('replace' clears the written span, 'add' merges) and the repeat tiling give real usage context for how to call the tool. However, there is no explicit when-to-use-this-vs-alternative guidance, no statement of prerequisites, and nothing telling the agent when to prefer notes_transform or notes_clear instead.

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