Skip to main content
Glama

set_groove

Idempotent

Edit a groove pool entry by index or name to adjust quantize, timing, random, and velocity amounts and set the grid base for MIDI timing feel.

Instructions

Edit a groove of the groove pool (index or name). base is the grid: "1/4", "1/8", "1/8T", "1/16", "1/16T" or "1/32". Amounts are percent: quantize, timing and random 0..100, velocity -100..100. The global amount is set_song(groove_amount=...).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
baseNo
nameNo
grooveYes
randomNo
timingNo
quantizeNo
velocityNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv2.0.0

TDQS

A3.5/5.0
Behavior3/5

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

Annotations cover the safety profile (readOnlyHint=false, idempotentHint=true, destructiveHint=false), so the agent knows this is a non-destructive, idempotent write. The description adds useful context about the value ranges for base and the amount parameters, but does not describe what happens on an out-of-range or invalid groove, nor the return behavior. Given the annotation coverage, a 3 is appropriate.

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?

Efficient and front-loaded: purpose first, then base, then amount ranges, then the pointer to the global amount tool. Slightly dense but no wasted sentences.

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

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 7-parameter mutation tool with no output schema and no annotation-based parameter details, the description covers the core fields but leaves gaps: it does not clarify how 'name' relates to selecting the groove, nor what happens when a groove is not found. Adequate but not complete.

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 carry the burden. It documents the base grid options, the percent ranges for quantize/timing/random (0..100) and velocity (-100..100), and that groove can be index or name. It does not name what the 'name' parameter does versus 'groove' when a string is passed, leaving some ambiguity.

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?

States a specific verb+resource ('Edit a groove of the groove pool') and clarifies that the groove can be selected by index or name. It is distinguishable from the sibling get_grooves, though it doesn't mention get_grooves explicitly as the read counterpart.

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 description implies you use this to modify an existing groove and points to set_song(groove_amount=...) for the global amount, but gives no explicit when/when-not guidance or prerequisites (e.g., that the groove must already exist). Usage is only implied.

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