Skip to main content
Glama

save_midi_catalog

Saves a sound catalog drafted from a user-provided list into the user's Moontide data folder, extending the specified model without writing into Moontide itself.

Instructions

Saves a sound catalog that you drafted from a sound list the user gave you (for example the maker's PDF list), into the user's Moontide data folder (catalogs/.json), never into Moontide itself. The catalog extends the model named by model. Send the sounds grouped as the list prints them, at most 500 per call: the first call starts the draft (source, programNumbering, and overwrite when it replaces a catalog), later calls add parts with append: true, with more: true while parts remain. The last part checks the whole draft and returns a summary that shows three sounds with their program as sent and as numbered from 1, and saves nothing. Show that summary to the user, then call again with model and confirmed: true, and nothing else, only after they say yes. The draft lives only in this session; a restart of the server loses it. For a model whose rhythm channels take a bank, a group of drum kits takes role: rhythm and may give noteMap; its kits are saved in the catalog's kits list.

Input Schema

NameRequiredDescriptionDefault
moreNotrue while more parts remain; absent or false on the last part
banksNoThe sounds of this part, grouped by bank and category; at most 500 sounds in the call
modelYesThe id of the model the catalog extends: a model Moontide ships or one saved with save_midi_model
appendNotrue to add this part to the draft of the model; absent or false starts a new draft
sourceNoThe document title and version the list comes from; required when a draft starts
confirmedNotrue only after the user said yes to the summary; send it with model and nothing else
overwriteNotrue to replace an existing catalog of the model; read when a draft starts
programNumberingNoHow the list numbers programs: from-1 when the first program is printed as 1; required when a draft starts

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.5/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and discloses the key traits: the draft is session-scoped and lost on a server restart, the summary call saves nothing, and overwrite replaces an existing catalog. It does not say what happens on invalid or rejected input (e.g., whether the check reports errors or how failures surface), leaving a modest gap for a mutation 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?

Front-loaded with purpose and then sequenced in call order, and nearly every sentence carries workflow information with little repetition. It is one dense paragraph, though, and the final sentence about rhythm channels and noteMap reads awkwardly, making the multi-step protocol harder to scan than a stepwise layout would.

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?

Complete for a complex 8-parameter, multi-call tool with no output schema: it explains the session-limited draft, the confirmation gate, overwrite behavior, and the shape of the returned summary (three sounds with program as sent and as numbered from 1). Error/validation behavior and what 'extends the model' implies in the saved file are the remaining unstated details.

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 coverage is 100%, so per-parameter meanings are already documented; the description adds cross-parameter workflow semantics instead — source/programNumbering/overwrite are read when a draft starts, append continues it, more marks remaining parts, and confirmed must be sent with model and nothing else. It adds little on the bank/role/noteMap nested structure beyond what the schema states.

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 and resource: it saves a sound catalog drafted from a user-supplied sound list into catalogs/<model id>.json, explicitly 'never into Moontide itself'. The resource specificity (catalog file vs. model) lets an agent separate it from save_midi_model and the search/list siblings 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 Guidelines5/5

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

Gives an explicit multi-call protocol: first call starts the draft (source, programNumbering, overwrite), later calls use append: true with more: true while parts remain, the last part only checks and returns a summary, and a final call with model plus confirmed: true is made 'only after they say yes'. It also states the grouping constraint (as the list prints them, at most 500 per call) and the rhythm/noteMap case for drum-kit groups.

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