{"serverId":"mcp-registry/com.sfxmint/sounds","tools":[{"name":"add_kit_sounds","fixed":{"name":"add_kit_sounds","description":"Add the user's own list of sounds to a kit (an app's or a game's events: names, optional moments and lengths), or a ready set's events with its library sounds already in use. Names, keys, order and lengths stay the user's; SFXMint writes how each sounds. Without kit_id it starts a new kit for the list. Free (no generation). Then call fill_kit_from_library to use free library sounds first, and make only the gaps.","inputSchema":{"type":"object","properties":{"set":{"type":"string","description":"Instead of sounds: a ready set's id from get_sound_set (its events, with its library sounds in use)."},"name":{"type":"string","description":"A new kit's name (optional)."},"kit_id":{"type":"string","description":"Add to this kit (kit_…); leave out to start a new kit."},"sounds":{"type":"array","items":{"type":"object","required":["name"],"properties":{"key":{"type":"string","description":"The user's own event key or file name, e.g. '01-lab-air' (optional)."},"loop":{"type":"boolean","description":"Make the steady part repeat seamlessly. Actual loop length can be shorter than requested; use WAV for looping."},"name":{"type":"string","description":"The event, e.g. 'Ride request' or 'Coin pickup'."},"when":{"type":"string","description":"When it plays (optional)."},"scene":{"type":"string","description":"The scene heading from the user's list or approved proposal (optional); matching existing scene names are reused."},"seconds":{"type":"number","description":"Length in seconds, 0.2 to 30 (optional; rounded to the nearest a kit offers)."}}},"maxItems":60,"description":"The sounds, in the user's order."}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":462,"tokensAfter":462},{"name":"export_game_kit","fixed":{"name":"export_game_kit","description":"What to put in the project: every included sound's event key and the take in use (file link valid 15 minutes, SHA-256), the sounds not ready yet, and zip_url for one ZIP (download it with the same Authorization header) holding the files in the chosen format, sounds.json (event key → file) and a README. Wire the game's events to sounds.json and let the user check the sounds in the game.","inputSchema":{"type":"object","required":["kit_id"],"properties":{"format":{"enum":["wav","mp3"],"type":"string","description":"File type in the ZIP (default wav)."},"kit_id":{"type":"string","description":"The kit id from start_game_kit or add_kit_sounds (kit_…)."}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":195,"tokensAfter":195},{"name":"find_kit_sound_candidates","fixed":{"name":"find_kit_sound_candidates","description":"Up to five free library sounds for one kit sound, by its name or your own words, with their length, character and a listening URL. Nothing changes until use_library_sound.","inputSchema":{"type":"object","required":["kit_id","sound_id"],"properties":{"query":{"type":"string","description":"Other words to search with (optional)."},"kit_id":{"type":"string","description":"The kit id from start_game_kit or add_kit_sounds (kit_…)."},"sound_id":{"type":"string","description":"A sound id from get_game_kit (ks_…)."}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":158,"tokensAfter":158},{"name":"get_game_kit","fixed":{"name":"get_game_kit","description":"A Game kit's state: its scenes, its sounds (event key, when it plays, status, the takes made with short-lived file links, SHA-256 and length, and the take in use), how its makes are paid (the account's plan's generations of the day, or the plan it needs) and next_step. Needs the API key that started the kit.","inputSchema":{"type":"object","required":["kit_id"],"properties":{"kit_id":{"type":"string","description":"The kit id from start_game_kit or add_kit_sounds (kit_…)."}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":145,"tokensAfter":145},{"name":"get_generation","fixed":{"name":"get_generation","description":"Check a generation started with generate_sound or change_sound: status, and fresh download links for the finished takes.","inputSchema":{"type":"object","required":["order_id"],"properties":{"order_id":{"type":"string"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":73,"tokensAfter":73},{"name":"get_role_sound","fixed":{"name":"get_role_sound","description":"Choose this when the task calls for a sound for a named event or interaction — a button click, purchase success, error beep, level-up, dialogue blip, notification. Pass the role as plain words: role ids (click, success, purchase-success, dialogue-blip, notification…) and common aliases (button click, ka-ching, jump scare, text blip…) are all accepted. Returns a qualified candidate for that role when one satisfies the requested constraints, with MP3/WAV URLs, 2-3 alternates and the family page fo","inputSchema":{"type":"object","required":["role"],"properties":{"loop":{"type":"boolean","description":"Require prepared loop metadata; seam evidence is returned separately."},"role":{"type":"string","description":"Role id or alias, e.g. 'click', 'button click', 'purchase-success', 'ka-ching', 'error beep', 'level-up', 'dialogue blip', 'notification'"},"style":{"enum":["balanced","crisp","soft","spacious"],"type":"string","description":"Optional. balanced (default) = the family's most typical take; crisp = short, bright, dry; soft = darker, gentler; spacious = reverb, longer tail"},"format":{"enum":["wav","mp3","ogg"],"type":"string"},"max_duration_ms":{"type":"number","description":"Hard maximum delivered duration in milliseconds."}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":359,"tokensAfter":359},{"name":"get_sound","fixed":{"name":"get_sound","description":"Get full metadata for one sound by slug, including download URLs, description and measured acoustics (attack/tail/brightness + character labels).","inputSchema":{"type":"object","required":["slug"],"properties":{"slug":{"type":"string","description":"Sound slug, e.g. 'impact-punch-01'"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":91,"tokensAfter":91},{"name":"get_sound_set","fixed":{"name":"get_sound_set","description":"Get a coherent set of sounds for an app or game in one call — one sound per role, with format metadata, hashes and stable download URLs. Use it when the task needs a whole kit; use get_role_sound for one event. Check content_check: verified/unverified/rejected is bound to the exact role, format and file SHA256; unverified files still require listening in context. Sets include UI styles, game and app scenarios, acoustic-drum-kit, animal-calls (15 isolated calls), and dungeon-traps (6 isolated mec","inputSchema":{"type":"object","properties":{"set":{"enum":["ui-crisp","ui-soft","ui-spacious","retro-game","chat-app","saas-app","checkout","learning","puzzle-game","platformer","horror-game","video-editing","smart-device","wellness","ai-coding-tool","acoustic-drum-kit","animal-calls","dungeon-traps"],"type":"string","description":"Set id (default ui-crisp). Includes acoustic-drum-kit, animal-calls and dungeon-traps alongside the UI and scenario sets listed in the enum."},"format":{"enum":["wav","mp3","ogg"],"type":"string","description":"File format for selection and checks (default WAV; OGG only among sounds published before 2026-10-14). Legacy urls remains MP3; download_urls follows this format."}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":349,"tokensAfter":349},{"name":"list_kit_sounds","fixed":{"name":"list_kit_sounds","description":"List the sounds of a Game kit's scenes, free: after start_game_kit planned the scenes, show them to the user, then call this with the scenes to keep (all by default; the others are switched off). Call get_game_kit after about 15 seconds.","inputSchema":{"type":"object","required":["kit_id"],"properties":{"kit_id":{"type":"string","description":"The kit id from start_game_kit or add_kit_sounds (kit_…)."},"scene_ids":{"type":"array","items":{"type":"string"},"description":"Scene ids to list (default: every scene)."}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":157,"tokensAfter":157},{"name":"search_sounds","fixed":{"name":"search_sounds","description":"Free-text search over the SFXMint library of free CC0 sound effects. Use it for sound descriptions, additional constraints or gaps left by another tool. Choose get_role_sound for a named event or get_sound_set for multiple events when that fits the task; these are task branches, not a fixed sequence. Hard constraints (duration, loop, format, excluded words) always apply. results hold sounds whose text has every word of the query. When there are none, closest lists the nearest sounds that meet ev","inputSchema":{"type":"object","required":["query"],"properties":{"loop":{"type":"boolean","description":"Require (true) or exclude (false) a candidate marked with prepared loop metadata; seam evidence is returned separately."},"limit":{"type":"number","description":"Max results (default 20, max 50)"},"query":{"type":"string","description":"Keywords or a natural-language description, e.g. 'door slam', 'soft UI confirmation chime', 'coin pickup'"},"format":{"enum":["wav","mp3","ogg"],"type":"string","description":"Delivery format (ogg = Ogg Vorbis, only sounds published before 2026-10-14 have it); loop=true defaults to WAV when omitted."},"category":{"type":"string","description":"Optional category slug: ui, retro-game, transition, impact, ambience, water, fire-electric, footsteps, door, mechanical, paper-fabric, glass, animal, crowd, cartoon, magic-scifi, horror, feedback, instrument, office, human, vehicle, household"},"max_duration_ms":{"type":"number","description":"Hard maximum delivered duration in milliseconds; format-specific measurement is required."}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":450,"tokensAfter":450},{"name":"start_game_kit","fixed":{"name":"start_game_kit","description":"Start a Game kit: SFXMint plans the sounds one game needs and makes them as CC0 takes to pick from — the same project the user sees on the website. Use it when the user wants sounds for a whole game or scene and the library (get_sound_set, get_role_sound) does not cover them. Needs an SFXMint API key. Planning and listing are free; each sound made uses one of the account's plan generations of the day (a 24-hour pass for $3.90 (50 sounds), or a plan from $9.90 for 30 days: 50 to 200 generations a","inputSchema":{"type":"object","required":["game"],"properties":{"feel":{"type":"array","items":{"enum":["8-bit","Punchy","Cartoony","Cozy","Realistic","Sci-fi","Dark"],"type":"string"},"description":"How the sounds should feel (optional)."},"game":{"type":"string","description":"What the game is and what the player does, in a few sentences (genre, setting, main actions). For one scene, what happens in it."},"avoid":{"type":"string","description":"What the sounds should leave out, e.g. 'voices, music' (optional)."},"feel_text":{"type":"string","description":"More words on the feel, e.g. 'soft, warm' (optional)."},"one_scene":{"type":"boolean","description":"true: list 3–6 sounds for one scene at once; making them needs a plan, like generate_sound. Default false: plan the whole game's scenes first."}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":377,"tokensAfter":377}],"toolsChanged":11,"tokensSaved":0,"todo":[{"tool":"get_generation","params":["order_id"]},{"tool":"get_role_sound","params":["format"]},{"tool":"pick_kit_take","params":["take_id","sound_id"]}],"note":"Deterministic fixes. Changes marked verify need a human look before shipping (renames, inferred annotations, inferred types, removed text). Parameter descriptions in `todo` need to be written by someone who knows the API."}