Skip to main content
Glama

Generate sound effect WAV files

generate_sfx

Synthesizes game sound effects locally from a preset into 16-bit mono WAV files, returning file paths, seeds for exact reproduction, and editable patch JSON.

Instructions

Synthesize game sound effects locally from a preset and write 16-bit mono 44.1 kHz WAV files. Free for commercial use, no attribution. Returns file paths, the seed of each variant (reuse it to get the exact same sound) and the patch JSON (edit it and call render_patch to fine-tune). Presets: swordQi, guqin, bell, gong, spell, thunder, lightning, breakthrough, talisman, alchemy, chime, flute, qiGather, pipa, erhu, woodfish, drum, coin, pickup, click, confirm, error, jump, hit, explosion, laser, powerUp, levelUp, whoosh, arrow, swordClash, footstepStone, rain, notify, footstepGrass, land, shieldBlock, wind, campfire, stream, caveDrip, pageTurn, typing, chestOpen, monsterGrowl.

Input Schema

NameRequiredDescriptionDefault
seedNoSeed for a reproducible result; variant i uses seed + i
countNoNumber of variants to write (default 1). Useful to let the user pick, or for randomized playback.
mutateNoExtra random tweak amount on top of the seeded result, 0-1 (e.g. 0.15)
presetYesPreset id, see list_presets
js_pathNoAlso write a dependency-free .js file with play functions for these sounds (Web Audio, no audio files needed)
out_pathYesWAV file to write, e.g. "assets/sfx/coin.wav". Relative paths resolve against the server working directory. With count > 1, files get -01, -02 ... suffixes.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4/5.0
Behavior4/5

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

Annotations only declare destructiveHint=false, so the description carries most of the burden and does add real context: synthesis happens locally, files are written to disk, output is free for commercial use with no attribution, and the return payload includes file paths, per-variant seeds and patch JSON. It is consistent with the non-destructive annotation (new files, not overwrites). Minor gaps: no statement about overwrite behavior when out_path already exists.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The first three sentences are front-loaded and information-dense with no waste. However, the trailing enumeration of 44 preset ids duplicates the enum already present in the schema, adding significant length without new meaning and diluting the useful content.

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?

With six parameters, full schema coverage and no output schema, the description does the necessary work of explaining what comes back (paths, seeds, patch JSON) and how variants are named. An agent has enough to call it correctly; only overwrite/collision behavior for existing out_path is unaddressed.

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 description coverage is 100%, so the schema already documents every parameter including seed arithmetic, count suffixes and mutate range. The description adds only the seed-reuse framing and the patch-to-render_patch workflow, and leaves js_path entirely to the schema. Baseline 3 is appropriate.

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 ('Synthesize game sound effects locally from a preset') plus the concrete output format (16-bit mono 44.1 kHz WAV). It also distinguishes itself from the render_patch sibling by naming that tool as the fine-tuning path once you have the patch JSON.

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?

Gives clear routing: use this tool to generate from a preset, then edit the returned patch JSON and call render_patch to fine-tune. It also explains the seed-reuse workflow for exact reproduction. It does not explicitly say when to prefer list_presets or get_js_code, though the schema references list_presets.

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

Deploy Server

Other Tools