Otohiroi MCP
Uses Openverse as the search and audition layer for free sound effects and BGM from sources such as Freesound, Jamendo, and Wikimedia Commons, with license filtering and download support where permitted.
Provides link-only support for Pixabay: builds search links for manual browsing and download, after which files can be registered as local packs.
Automatically retrieves and downloads sounds from Wikimedia Commons through Openverse.
Provides link-only support for YouTube Audio Library: builds search links for manual browsing and download, without automated access or downloading.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Otohiroi MCP find a short metal sword hit sound and add it to my game project"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Otohiroi MCP
English | 日本語
Otohiroi (音拾い, "picking up sounds") gives Claude Code, Cursor, Claude Desktop and other MCP clients a way to find free sound effects and BGM for your game. Ask for "a short metal sword hit" or "a calm chiptune loop". The agent searches, you choose by ear, and the file lands in your project with its license on record.
Otohiroi is an index and a helper. It hosts no audio. Files come from their original sources to your machine.
"a short metal sword hit"
└─ search_sounds keywords, length, loop, license
└─ audition_sounds a numbered listening page, because the agent cannot hear
└─ fetch_sound trim, match loudness, convert, write CREDITS.md and sounds.license.jsonInstall
Needs uv. ffmpeg is optional and enables conversion and loudness matching.
claude mcp add otohiroi -- uvx --from git+https://github.com/koyomivanp/otohiroi-mcp otohiroiOther clients:
{"mcpServers": {"otohiroi": {"command": "uvx", "args": ["--from", "git+https://github.com/koyomivanp/otohiroi-mcp", "otohiroi"]}}}Related MCP server: strongerfx
Tools
Tool | What it does |
| Detects a JavaScript or TypeScript game's beeps and opens a local page: tick sounds, pick replacements by ear, apply them to the game, undo at any time. Replacements are synthesised, so they need no audio files or keys. |
| Finds the sounds a JavaScript or TypeScript game makes with oscillators, then opens one listening page of natural replacements, grouped by event. Changes nothing in the game. |
| Lists those oscillator sounds and where each one is triggered. |
| Turns a game event or a Japanese sound word (シュッ, ぽよん) into searches that work. |
| Searches online indexes and your packs. Filters by kind, length, loop and license. CC0 only by default. |
| Returns the full record of one sound. |
| Opens a local page with up to 12 numbered players. |
| Saves a sound to your project and records its license. |
| Registers a folder, zip or file you downloaded, so it can be searched and fetched. |
| Lists your packs and shows whether Freesound downloads are on. |
| Builds search links for libraries you browse yourself. |
Sources
Source | Search | Listen | Download |
Freesound (through Openverse) | No key | Yes | With your own free |
Jamendo (through Openverse) | No key | Yes | Page link |
Wikimedia Commons (through Openverse) | No key | Yes | Automatic |
Your packs, such as Kenney | Local | Yes | Automatic |
Niconi Commons, YouTube Audio Library, OpenGameArt, Pixabay | Link only | On their sites | By hand, then |
Why some libraries are links only
Otohiroi follows each library's rules, even when that makes it less convenient.
YouTube Audio Library: YouTube's terms forbid automated access and downloading outside what the service provides, and its help pages only cover use in YouTube videos.
Niconi Commons: there is no public API and conditions differ per item. Its terms also limit the licensed territory to Japan, so a game sold abroad needs extra care. Use
add_packwithregion="JP"to keep that on record.OpenGameArt and Kenney: their robots.txt files turn away AI agents. Download in your browser, then use
add_pack.
Using the sounds responsibly
Licenses come from what uploaders declared. Otohiroi flags names that suggest borrowed audio, but it cannot prove that a sound is clean, and this is not legal advice. Check anything important before you ship.
Freesound's API is free for non-commercial use, and its terms say commercial use is negotiated separately. Whether fetching sounds for a game you sell counts is not stated, so ask Freesound if that matters to you.
Settings
Variable | Effect |
| Your own key from Freesound. Never share it. |
| Where packs and listening pages are kept. |
Development
uv sync
uv run pytestLicense
Code: MIT. Each sound keeps its own license.
Inspired by Sozai Search MCP. Otohiroi is independent and is not affiliated with or endorsed by any library named here.
Available Tools
11 toolsadd_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.
Inputs: path (required), name, note, author, +4 more.
audition_soundsB
Make a local listening page numbering up to 12 candidates and open it, so the user can choose by ear.
Inputs: sound_ids (required), label, open_browser.
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.
Inputs: dest (required), sound_id (required), format, normalize, +3 more.
find_elsewhereC
Search links, with what to check, for libraries a person must browse themselves (Niconi Commons, YouTube Audio Library and others).
Inputs: query (required), kind.
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.
Inputs: path (required), events, license, per_event, +1 more.
get_soundC
The full record of one sound: tags, license address, page link, preview address.
Inputs: sound_id (required).
list_packsB
Packs registered with add_pack, and whether Freesound downloads are enabled.
Inputs: no named parameters.
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.
Inputs: path (required), open_browser.
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.
Inputs: path (required).
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.
Inputs: query (required), kind, page, limit, +7 more.
suggest_searchB
Turn a game event, code name or Japanese sound word (シュッ, 被弾, ぽよん) into searches that work on sound libraries.
Inputs: text (required).
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 11 tools
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.
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.
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.
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.
Related MCP Connectors
CC0 sound effects API for AI agents — search, preview, and download via MCP.
Create, inspect, and manage Wubble music, speech, voice, and sound-effect requests through MCP.
Generate game-ready 3D models, textures, and audio from natural language, over MCP.
MCP server for Producer/Riffusion AI music generation
Related MCP Servers
- AlicenseAqualityBmaintenanceLicense-aware game development resource discovery MCP server. Helps AI coding agents find reusable game assets with commercial-use filtering, license classification, and attribution generation.91MIT
- AlicenseNot gradedqualityCmaintenanceProvides local MCP tools to search and retrieve CC0 sound effects by keyword, category, duration, or ID, along with metadata, previews, and WAV/MP3 download URLs.MIT
- AlicenseNot gradedqualityBmaintenanceEnables AI agents to search, rank, and retrieve 330 synthesized sound effects, themes, and spoken lines, and to generate ready-to-paste playback code or whole-app sound kits through a zero-dependency stdio MCP interface.227 npmMIT
- AlicenseNot gradedqualityCmaintenanceThis MCP server enables MCP clients to generate background music, instrument loops, and sound effects from plain-language prompts, then edit them (variation, inpainting, extension) and finish them into seamless loops, fades, loudness-normalized WAV/OGG/FLAC files. All generation runs locally on your own machine without cloud services or API keys, with reproducible prompt/seed metadata saved alongside each output.1MIT