Skip to main content
Glama

Change a song’s key

shift_song_key
Read-onlyIdempotent

Move a song the person has up or down by up to 6 semitones, keeping its speed, so it fits their voice, and play it back. Opens a small Tera Studio tool where they choose the file; the change happens in their browser and nothing is uploaded. Use it when a song is too high or too low for someone. Pass semitones if they said how far (negative is lower); otherwise they choose in the tool.

Input Schema

NameRequiredDescriptionDefault
semitonesNoHow far to move the song, from -6 to 6 semitones; negative is lower. Leave it out to let the person choose.

Output Schema

NameRequiredDescriptionDefault
viewYes
audioYes
web_toolYes
semitonesNo
start_songYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.3/5.0
Behavior5/5

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

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world), yet the description adds real context the agent could not otherwise know: a Tera Studio UI opens for file selection, processing happens in the browser, and nothing is uploaded. That interaction and privacy model is exactly the kind of disclosure annotations cannot carry.

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 core action is front-loaded and every clause contributes (direction, limit, speed preservation, playback, local processing, parameter routing). The first sentence is dense and packs several distinct facts, but there is no filler to cut.

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 an output schema handling return values, one optional parameter, and rich annotations, the description covers everything an agent needs: when to invoke, how to treat the parameter, and what the user experience will be. No material gaps remain.

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 the range and negative-is-lower semantics are already documented; the description nonetheless adds a decision rule — only pass semitones when the person stated a distance, otherwise defer to the in-tool choice. The rest is largely restatement of the schema, so it sits just above baseline.

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 and resource — move a song up/down by up to 6 semitones, preserve speed, and play it back — which clearly separates it from the find_* siblings that only analyze. It never names those siblings, so differentiation is inferred from the verb rather than stated.

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

Usage Guidelines4/5

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

"Use it when a song is too high or too low for someone" gives a concrete triggering condition, and the semitones rule ("Pass semitones if they said how far... otherwise they choose in the tool") tells the agent exactly when to supply the parameter. No explicit exclusions or named alternatives, which keeps it below a 5.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources