Skip to main content
Glama
boraswim
by boraswim

update_pattern

Edits a pattern's notes, key, scale, instrument, or filter automation as one undo step; key changes transpose notes, and scale changes remove notes that do not fit.

Instructions

Edits a pattern's notes, key, scale, instrument or filter automation, as one undo step. Changing the key transposes its notes, like the app does. Changing the scale removes notes that don't fit it.

Input Schema

NameRequiredDescriptionDefault
keyNoKey, like "C", "F#" or "Bb". Ignored for drumkits.
notesNoUp to 128 notes.
scaleNoScale. Notes must fit it. Ignored for drumkits. One of: normal (all notes), major, minor (melodic, with a raised 6th and 7th; for natural minor, use the relative major's key with scale major), blues, harmonic minor, pentatonic major, pentatonic minor, pentatonic blues, pentatonic neutral, romanian folk, spanish gypsy, arabic magam, chinese, hungarian, chord: major, chord: minor, chord: 5th, chord: dom 7th, chord: major 7th, chord: minor 7th, chord: minor major 7th, chord: sus4, chord: sus2.
patternYesIndex of the pattern.
instrumentNoIndex of the song's instrument, 0 by default.
notes_modeNoHow to use notes: replace all of them (the default), add to them, or remove these. For remove, only note and pos matter.
filter_stepsNoAutomation values per step. Only the first 16 steps are kept when the song is saved, a limit of the file format.
record_filterNoTurns per-step volume and filter automation on or off for this pattern.
transpose_with_keyNoSet to false to relabel the key without moving the notes.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4/5.0
Behavior4/5

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

Annotations only declare the generic readOnly=false/destructive=false profile; the description meaningfully adds that all edits land as "one undo step" (atomicity) and, critically, that changing the scale removes notes that don't fit — a data-loss behavior the destructiveHint=false flag alone would not prepare an agent for. It stops short of covering how notes_mode replace interacts with existing notes or what happens to notes when the instrument changes.

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 short sentences, zero padding, with the operation and its scope front-loaded and the two surprising side effects immediately following. Every sentence carries distinct information.

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 nine-parameter mutation tool with no output schema, the description plus the fully-covered schema gives an agent enough to call it correctly, including the undo atomicity and the lossy scale behavior. It is slightly thin on how the parameters combine (e.g. notes plus instrument change, or notes_mode interaction with transpose_with_key).

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 100%, so the schema already documents all nine parameters in detail, including key formats, scale list, and notes_mode defaults — that sets the baseline at 3. The description adds real semantic value for two of them (key causes transposition, scale prunes non-conforming notes) but says nothing beyond the schema for pattern, instrument, filter_steps, or record_filter.

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 ("Edits") and resource (a pattern), then enumerates exactly which facets are mutable: notes, key, scale, instrument, filter automation. That enumeration cleanly separates it from siblings like update_song, update_instrument, add_pattern, and clone_pattern without needing to name them.

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?

Usage is only implied — an agent infers this is for modifying an existing pattern, but the description never says when to prefer it over clone_pattern + edit, nor does it state prerequisites like recording being stopped. What it does give is consequence guidance (key transposes, scale prunes notes), which is useful but is effect-of-use rather than when-to-use.

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