bfxr-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| BFXR_OUTPUT_DIR | No | Directory where generated sound files are written. Defaults to ~/Downloads/bfxr-sounds. | ~/Downloads/bfxr-sounds |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| generate_soundA | Synthesize a retro/8-bit game sound effect with the Bfxr engine and save it as a .wav file. Presets: pickup_coin, laser_shoot, explosion, powerup, hit_hurt, jump, blip_select, random, tone.
Pick the preset closest to what was asked for, then shape it with
Never set play or embed_audio, and never call play_sound — the user always plays sounds in the library UI. Prefer count=3..5, then report file paths. After writing, refresh the library in Cursor at http://localhost:4747. Each sound comes back with a bfxr.net permalink the user can open to tweak it by ear. |
| mutate_soundA | Nudge every parameter of an existing sound by a small random amount to produce close variations — the 'Mutate' button in Bfxr. Use this when the user likes a sound but wants it 'a bit different'. Give the source as a bfxr.net permalink, a path to a .wav generated by this server's sibling .bfxr file, a path to a .bfxr file, or a raw params object. Never set play or embed_audio, and never call play_sound — the user plays sounds in the library UI. After writing, refresh the library in Cursor at http://localhost:4747. |
| load_soundA | Decode a bfxr.net permalink or a .bfxr file into its parameters, optionally re-rendering it to a .wav. Use this to inspect or edit a sound the user shares. |
| list_parametersA | Every Bfxr parameter with its range, default and what it does, plus the available presets and waveforms. Read this before hand-crafting a sound with |
| play_soundA | Do not call this. The user always plays sounds in the library web app. Only use if they explicitly ask you to play through the machine speakers. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 5 tools
Each tool has a clearly distinct role: generate_sound creates new sounds, mutate_sound creates variations of existing ones, load_sound inspects existing sounds, list_parameters provides reference data, and play_sound is explicitly marked as not to be called. No two tools overlap in purpose.
All tools follow the same verb_noun snake_case pattern (play_sound, generate_sound, mutate_sound, load_sound, list_parameters), making the naming perfectly consistent and predictable.
5 tools is well-scoped for a sound synthesis server. Each tool covers a distinct part of the workflow (create, vary, inspect, reference, and playback), and none feel redundant or unnecessary.
The toolset covers the core domain of generating and manipulating retro sound effects: generation, mutation, loading existing sounds, and parameter reference. The only potential gap (playback) is explicitly handled by the external library UI, and play_sound is provided as a fallback, so there are no dead ends.