Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
OTOHIROI_HOMENoWhere packs and listening pages are kept.
FREESOUND_API_KEYNoYour own key from Freesound (https://freesound.org/apiv2/apply/). Never share it.

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

Otohiroi finds openly licensed sound effects and BGM for games, lets a human choose by ear, and puts the chosen files in the project with their license on record.

How to work:

  • Search in English, 1-3 keywords, the main noun last. Every word must match, so fewer is better. Translate other languages first, and describe the sound itself ("sword hit", not "the sound for when an enemy gets hurt"). Put other wordings and moods in alternatives ("calm chiptune", "relaxing 8bit").

  • To improve a game's beeps, start with open_sound_studio on its folder. It detects the sounds and opens a page where the user ticks sounds, picks synthesised replacements by ear and applies them to the game (with undo). After they apply, tell them to reload the game and judge by ear. You cannot confirm how it sounds.

  • find_replacements instead lists real recordings for each sound, to use or to learn from. scan_game gives just the list.

  • suggest_search turns a game event or Japanese sound word (シュッ, ぽよん) into searches that work.

  • You cannot hear audio. Do not pick by title alone: send the best candidates to audition_sounds and let the user tell you the numbers they like. Then call fetch_sound.

  • If fetch_sound returns manual_download_needed, pass the page link and the reason to the user.

  • Results with warning may be someone else's audio despite their license. Tell the user.

  • Licenses are declared by uploaders and are not legal advice. Say so when the user is about to ship.

  • find_elsewhere gives search links for libraries Otohiroi must not crawl, such as Niconi Commons and the YouTube Audio Library. Give the links and their check text to the user. Never scrape or download from those sites.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}

Tools

Functions exposed to the LLM to take actions

NameDescription
search_soundsA

Search sound effects and BGM by English keywords across online indexes and packs added with add_pack.

license: cc0 = no conditions (default); commercial = also CC BY / BY-SA, which need credit; any = everything, including non-commercial. natural_only leaves out sounds described as beeps, synths or 8-bit. Results are short; use audition_sounds to let the user listen.

get_soundC

The full record of one sound: tags, license address, page link, preview address.

audition_soundsB

Make a local listening page numbering up to 12 candidates and open it, so the user can choose by ear.

fetch_soundB

Save a sound into a project folder (absolute path) and record its license in CREDITS.md and sounds.license.json.

By default it trims silence from one-shot effects and matches loudness. Set FREESOUND_API_KEY to enable Freesound. May return status manual_download_needed with a page for the user to open.

add_packB

Register a folder, .zip or audio file the user already downloaded so it can be searched and fetched.

A CC0 license file is detected. Otherwise pass license (cc0, by, by-sa, or a label such as niconi-commons) and, for labels, commercial_use as stated by the source. Pass region='JP' for licenses limited to Japan.

open_sound_studioA

Detect a JavaScript or TypeScript game's oscillator sound effects and open a local page to improve them.

path is the absolute path of the game's folder. The user ticks sounds, picks replacements by ear and presses apply on the page, which writes them into the game. Undo is on the same page. Music is left alone.

scan_gameA

List the sounds a JavaScript or TypeScript game makes with oscillators, and where each one is triggered.

path is the absolute path of the game's folder. Nothing is changed.

suggest_searchB

Turn a game event, code name or Japanese sound word (シュッ, 被弾, ぽよん) into searches that work on sound libraries.

find_replacementsA

Scan a game for oscillator sound effects, search natural replacements for each, and open one page grouped by event.

Music is left out. events limits it to those names. Nothing in the game is changed. Events listed under needs_your_words had no dictionary entry: read their call sites and use search_sounds yourself.

list_packsB

Packs registered with add_pack, and whether Freesound downloads are enabled.

find_elsewhereC

Search links, with what to check, for libraries a person must browse themselves (Niconi Commons, YouTube Audio Library and others).

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A3.5/5.0

Scored across 11 tools

Disambiguation3/5

Three tools (scan_game, find_replacements, open_sound_studio) all begin by detecting a game's oscillator sounds, and open_sound_studio's 'improve them' workflow is fuzzy about whether it also searches external libraries the way find_replacements does. suggest_search versus search_sounds is reasonably clear (query-building versus actual search), and get_sound/audition_sounds/fetch_sound form a clean pipeline. The scanning trio is the main source of potential misselection.

Naming Consistency5/5

All 11 names use snake_case with a verb-first pattern: find_replacements, list_packs, get_sound, search_sounds, audition_sounds, fetch_sound, add_pack, open_sound_studio, scan_game, suggest_search, find_elsewhere. No mixed conventions or vague bare verbs anywhere.

Tool Count5/5

Eleven tools sits squarely in the well-scoped range, and each covers a distinct step of the search-to-install workflow (query building, search, inspect, audition, fetch, pack management, in-game scanning). No tool looks like filler.

Completeness4/5

The surface covers discovery (search_sounds, suggest_search, find_elsewhere), inspection (get_sound), previewing (audition_sounds), installation with license recording (fetch_sound), plus pack and game scanning, which is solid lifecycle coverage. Gaps remain around pack/asset management: there is no remove_pack, no tool to list what has already been fetched into a project, and no way to inspect or clean up an existing project's non-oscillator audio.