Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
BFXR_OUTPUT_DIRNoDirectory 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

CapabilityDetails
tools
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
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 params:

  • coin/pickup/collect -> pickup_coin; laser/shoot/zap -> laser_shoot; explosion/boom -> explosion

  • powerup/level-up -> powerup; damage/hurt/impact -> hit_hurt; jump/hop -> jump; UI click/menu blip -> blip_select

  • anything else -> start from tone (a plain sine) or random and set params by hand. Useful shaping params: frequency_start (pitch), frequency_slide (up/down glide), sustainTime + decayTime (length), sustainPunch (attack pop), lpFilterCutoff (muffle), bitCrush (lo-fi crunch), vibratoDepth/Speed, overtones (thicker).

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 params.

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

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A4.4/5.0

Scored across 5 tools

Disambiguation5/5

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.

Naming Consistency5/5

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.

Tool Count5/5

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.

Completeness5/5

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.

Maintenance

ActivitySlowing
ResponsivenessNo issues