Skip to main content
Glama

take_sound

Idempotent

Take the sound the user's synth is playing — or one of its stored programs — straight from the synth through a relay, with its name. The synth is found among those SynthHub's librarian can talk to (the KnobKraft Orm adaptations, about 90 synths) by the identity and detect messages, then asked for its sound. The person accepts each step at the relay (finding the synth, asking it): tell them first. To share it: ask the user whether they made this sound themselves (never a factory preset, nor one bought or downloaded), then call share_preset with the device, name, hex, librarian and firmware returned here, and own_sound: true. When several synths answer, or none did, call again with port.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "code": "<code>"
    },
    "name": "take_sound"
  }
}

Input Schema

NameRequiredDescriptionDefault
codeYesThe pairing code the relay page or program shows.
portNoOutput port name (or part of it): look on that port only, for every synth the librarian knows.
programNoA stored program (from 1) instead of the sound being played.
user_idNoYour anonymous SynthHub id, if you kept it from an earlier session (see the server instructions). Optional.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.8/5.0
Behavior5/5

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

Adds critical context beyond annotations: the relay requires per-step user acceptance for finding and asking the synth, and the tool operates against about 90 SynthHub-librarian-compatible synths. It also clarifies the open-world/relay-human-approval behavior without contradicting readOnlyHint=false, idempotentHint=true, or openWorldHint=true.

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 critical user-consent warning is front-loaded and the fallback/share instructions follow logically. It is somewhat dense and the sentence about how the synth is found is convoluted, but every sentence carries useful workflow information.

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?

For a complex, human-in-the-loop relay tool with no output schema, the description covers the required consent, the detection mechanism, the sharing follow-up, and the returned fields needed for share_preset (device, name, hex, librarian, firmware). Nothing essential for correct invocation is missing.

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 baseline is 3. The description adds meaningful usage semantics for port (use when multiple or no synths respond) and program (a stored program rather than the currently played sound), though code is left entirely to the schema.

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: take the sound the user's synth is playing (or a stored program) through a relay, returning its name. This is clearly distinguishable from sibling tools like relay_detect, relay_send, and share_preset.

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?

Explicitly says to tell the user first because they must accept each relay step. It also gives a fallback: when several synths answer or none did, call again with port, and it instructs the agent to route sharing to share_preset after confirming the sound is user-made.

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.