Skip to main content
Glama

search_midi_sounds

Read-only

Search one instrument's sound catalog by name or category to find matching MIDI sounds and retrieve their program, bank, category, and engine details for use in code.

Instructions

Searches the sound catalog of one instrument: a list of the model's sounds kept in the user's data folder, built from a patch-name file or a sound list the user owns. It finds sounds by words in the name or the category, in any order, with case and spaces ignored. It returns at most 25 matches: the exact name first, then names that start with the words, then names that contain them, then matches in the category only. Each match gives the name as the sound option of .midi() takes it, the program as sent (0-127), the bank when there is one, the category and, for an instrument whose model declares engines, the engine of the sound or that it is in no engine. It says how many more matched. A drum kit is marked (drum kit) and gives its drum map, or says the map is unknown.

Input Schema

NameRequiredDescriptionDefault
queryNoWords to find in the sound name or its category, in any order; case and spaces do not matter
categoryNoOnly sounds of this category; case and spaces do not matter
instrumentYesAn instrument id from instruments.json whose model has a sound catalog

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4/5.0
Behavior5/5

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

Annotations only declare readOnlyHint, so the description carries the behavioral burden and does so thoroughly: a hard cap of 25 matches, an explicit ranking order (exact, prefix, contains, category-only), a note that remaining matches are counted, and special drum-kit handling including an "unknown map" state. This is far beyond what the annotation supplies.

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?

Purpose is front-loaded and no sentence is filler, but several sentences are dense run-ons that pack ranking, return fields, and drum-kit caveats into one breath. Slightly tighter phrasing would improve scannability without losing content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/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 must describe return values itself, and it does: name as .midi() takes it, program 0-127, bank when present, category, engine or no-engine, plus the drum-kit marker and map status. Nothing an agent needs to call or interpret the result is missing.

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% and the schema already states that query and category ignore case and spaces and that instrument must be an id from instruments.json with a sound catalog. The description largely restates those semantics rather than adding new meaning, and it does not clarify how query and category interact when both are supplied.

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?

Opens with a specific verb and resource: "Searches the sound catalog of one instrument," and clarifies the catalog's origin (patch-name file or user-owned sound list). It never names a sibling tool, so an agent must infer the boundary with get_midi_instruments and save_midi_catalog on its own.

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?

Use is implied — finding a sound by words in name or category for one instrument — but there is no explicit when-to-use statement, no exclusion, and no pointer to the sibling that lists instruments or builds the catalog. The one contextual clause about how the catalog is populated helps an agent understand prerequisites but does not route it among alternatives.

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