Free CC0 sound effects for apps and games: search, roles and sets, no key; make one, 1 free try.
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Change one take of a generation this account made, from the take itself: say what is off in the user's words (change, any language) or name the action. Three versions come back (a light, medium and strong change; for a loop, three seams) as CC0 WAV files. Free: no generation is used and no plan is needed. When the words ask for a different sound rather than a change to this one, it answers no_action with a description to pass to generate_sound. The user should listen and pick one.
Which of its takes (index, 1-4), finished
The generation, from generate_sound or get_generation
crisper: too muddy; heavier: too light; shorter_tail: rings on too long; longer_tail: stops too abruptly; room: too dry; far: too close; loop: make it loop
What is off, in the user's words: 'too muddy', 'make it loop', 'sounds too close'
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
Tool list last changed Oct 23, 2026.
Change one take of a generation this account made, from the take itself: say what is off in the user's words (change, any language) or name the action. Three versions come back (a light, medium and strong change; for a loop, three seams) as CC0 WAV files. Free: no generation is used and no plan is needed. When the words ask for a different sound rather than a change to this one, it answers no_action with a description to pass to generate_sound. The user should listen and pick one.
| Argument | Type | Description |
|---|---|---|
| take* | number | Which of its takes (index, 1-4), finished |
| action | string | crisper: too muddy; heavier: too light; shorter_tail: rings on too long; longer_tail: stops too abruptly; room: too dry; far: too close; loop: make it loop |
| change | string | What is off, in the user's words: 'too muddy', 'make it loop', 'sounds too close' |
| order_id* | string | The generation, from generate_sound or get_generation |
{
"type": "object",
"required": [
"order_id",
"take"
],
"properties": {
"take": {
"type": "number",
"description": "Which of its takes (index, 1-4), finished"
},
"action": {
"enum": [
"crisper",
"heavier",
"shorter_tail",
"longer_tail",
"room",
"far",
"loop"
],
"type": "string",
"description": "crisper: too muddy; heavier: too light; shorter_tail: rings on too long; longer_tail: stops too abruptly; room: too dry; far: too close; loop: make it loop"
},
"change": {
"type": "string",
"description": "What is off, in the user's words: 'too muddy', 'make it loop', 'sounds too close'"
},
"order_id": {
"type": "string",
"description": "The generation, from generate_sound or get_generation"
}
}
}Make a continuous environmental sound bed such as rain, waves, a forest or a crowd, not a musical track or an isolated event. Makes 30-second CC0 WAV takes and attempts seamless loops. Needs an SFXMint API key and credits or a plan; sound-effect free tries do not apply. Missing access returns website_url for Studio Ambience; payment_required also returns buy_url. Returns order_id, files and loop_url when available; if pending after about 25 seconds, poll get_generation. Listen in context before use.
| Argument | Type | Description |
|---|---|---|
| prompt* | string | With enhance=false, describe the audible environment in plain English, at most 400 characters. Name the place and continuous sound bed, its intensity, texture and pace; include occasional events, their spacing and distance only when requested or established by context. Keep it steady and repeatable. Example: 'Gentle ocean waves wash onto a sandy beach and recede at a steady pace, with soft foamy hiss and a low rolling wash.' Preserve the user's sources and spatial details; omit excluded sounds entirely rather than listing 'no music' or 'without voices'. Avoid metaphors that introduce other sources. The server adds the SFX tag and continuous-ambience instruction. With enhance=true, a brief in any language is enough. |
| enhance | boolean | Default false. Write final English using this tool's prompt guidance to skip server AI rewriting. True asks the corresponding ambience or music writer to adapt a brief in any language; enhanced_prompt reports the result. Non-Latin input may still require server translation with false. |
| duration_s | number | Take length, fixed at 30 seconds; omit or pass 30. A returned loop may be shorter. A loop is not guaranteed: inspect loop_cut and loop_url. |
| variations |
Make instrumental background music (BGM), including ambient music, for an app or game; for environmental sounds use generate_ambience. Makes 30-second CC0 WAV takes and attempts to extract repeating musical loops. Needs an SFXMint API key and credits or a plan; sound-effect free tries do not apply. Missing access returns website_url for Studio BGM; payment_required also returns buy_url. Returns order_id, files and loop_url when available; if pending after about 25 seconds, poll get_generation. Supports instrumental music, not intelligible vocals or lyrics; clarify a vocal request with the user instead of silently substituting. Listen in context before use.
| Argument | Type | Description |
|---|---|---|
| prompt* | string | With enhance=false, write a plain English instrumental music description, at most 400 characters, usually 1-3 sentences. State the genre, instruments and what they play, mood, energy and tempo (BPM if specified). Preserve named genres, instruments and pace; choose compatible instrumentation only when the brief leaves it open. Describe a repeating motif and steady accompaniment suitable for a background loop. Example: 'A calm fantasy instrumental loop at 80 BPM, with gentle harp arpeggios, warm sustained strings and a simple flute melody, keeping a steady, hopeful mood.' Use positive audible terms; omit unwanted sources instead of naming them in exclusions. Avoid artist, song or game names, lyrics and the 'TrackType: SFX' tag. With enhance=true, give the musical brief in any language and the music writer adapts it. |
| enhance | boolean | Default false. Write final English using this tool's prompt guidance to skip server AI rewriting. True asks the corresponding ambience or music writer to adapt a brief in any language; enhanced_prompt reports the result. Non-Latin input may still require server translation with false. |
| duration_s | number | Take length, fixed at 30 seconds; omit or pass 30. A returned loop may be shorter. A loop is not guaranteed: inspect loop_cut and loop_url. |
Make an individual sound effect from a description when the library has nothing suitable (search_sounds has no full match and its closest sounds do not suit; it then returns generate_available). For continuous environmental beds or instrumental background music, use generate_ambience or generate_music when offered. Needs an SFXMint API key and uses the account's 1 free try first, then credits or a plan on the account — a credit pack ($3.90, 10 credits), the 30-day plan ($9.90, 100 credits for 30 days) or the unlimited plan ($19.90 for 30 days, unlimited sounds) — each up to 4 CC0 WAV takes of up to 10 s (with an OGG of each when credits or a plan made it); one that makes no take does not count; with neither it answers payment_required with buy_url and website_url (the website's page where the user can make it and hear it first). Returns CC0 WAV files (signed links valid 15 minutes) with SHA-256 and seed, and ogg_url (Ogg Vorbis, made from the WAV on its first request) for takes made with credits or a plan; if they are not ready within about 25 seconds, it returns the order id for get_generation. AI-generated: the user should listen before use.
| Argument | Type | Description |
|---|---|---|
| prompt* | string | For enhance=false, write the final audible description in plain English, usually 1-3 sentences, at most 400 characters. Start with 'TrackType: SFX,'. Name the source, action and relevant material; preserve requested count, intensity, pace and how the sound starts, develops and ends. Translate a use such as 'success' into the intended audible event, e.g. 'TrackType: SFX, three bright electronic tones rise in pitch, each fading quickly.' Preserve an explicitly requested sound: a confirmation click stays a click. Mention only sounds to be heard; omit excluded sounds entirely instead of writing 'no music' or 'without speech'. Avoid brands, character names and metaphors that name unwanted sources. Add perspective, environment or timbre only when requested or established by context; do not invent extra events. Keep simple sounds short. Put total length in duration_s. For enhance=true, a plain-language brief in any language is enough; SFXMint writes the model description. |
Check a generation started with generate_sound, generate_ambience, generate_music or change_sound: status, kind and fresh download links for the finished takes, including loop_url when a loop was made.
| Argument | Type | Description |
|---|---|---|
| order_id* | string |
{
"type": "object",
"required": [
"order_id"
],
"properties": {
"order_id": {
"type": "string"
}
}
}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 for browsing more. Five core game roles include content_check (verified/unverified/rejected), scoped to scene, role, format and exact file SHA256; unverified previews are not certified suitable. Download selected files locally and retain originals. Task-permitted processing requires a recipe, output SHA256, renewed file checks and a listening check; changed bytes do not inherit content review. Other task-permitted sources or local synthesis may be mixed in. Optional style: crisp (short, bright, dry), soft (darker, gentler), spacious (reverb, longer tail), balanced (default: most typical). For multiple events consider get_sound_set; use search_sounds for a description or a gap. These are task branches, not a fixed sequence. Unknown roles return not_found with the full role list; GET https://sfxmint.com/api/v1/roles lists roles with aliases.
| Argument | Type | Description |
|---|---|---|
| loop | boolean | Require prepared loop metadata; seam evidence is returned separately. |
| role* | string | Role id or alias, e.g. 'click', 'button click', 'purchase-success', 'ka-ching', 'error beep', 'level-up', 'dialogue blip', 'notification' |
| style | string | Optional. balanced (default) = the family's most typical take; crisp = short, bright, dry; soft = darker, gentler; spacious = reverb, longer tail |
| format |
Get full metadata for one sound by slug, including download URLs, description and measured acoustics (attack/tail/brightness + character labels).
| Argument | Type | Description |
|---|---|---|
| slug* | string | Sound slug, e.g. 'impact-punch-01' |
{
"type": "object",
"required": [
"slug"
],
"properties": {
"slug": {
"type": "string",
"description": "Sound slug, e.g. 'impact-punch-01'"
}
}
}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 mechanisms).
| Argument | Type | Description |
|---|---|---|
| set | string | 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 | string | 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. |
{
"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."
}
}
}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 every hard constraint, best first, each with missing_terms: judge them from title and description and let the user listen. library_fit says how well the library covers the request (full, close, weak, none); anything short of full also returns generation options (generate_available; type ambience or bgm for looping environments or background music; use its mcp_tool when present and authorized, or its Studio page). Returns direct, hotlinkable MP3/WAV URLs and verified OGG (Vorbis) URLs where available — no API key, no attribution required — plus measured acoustics (attack_ms, tail_ms, centroid_hz), character labels like 'bright · punchy · tight', loop/file-QC status, and score/match as ranking evidence only (role = known role default, exact = all words hit, partial = some words hit, semantic = nearest by meaning).
| Argument | Type | Description |
|---|---|---|
| loop | boolean | Require (true) or exclude (false) a candidate marked with prepared loop metadata; seam evidence is returned separately. |
| limit | number | Max results (default 20, max 50) |
| query* | string | Use concise English search terms for the source or event, action and essential audible traits from the user's request or project context: 'door slam', 'soft UI confirmation chime', 'coin pickup'. A single clear source such as 'thunder' is valid; do not pad it. Translate other languages while preserving meaning. Avoid full generation prompts, app backstory, synonym lists and invented materials or environments: full matches must cover every query word. Put duration, loop and format requirements in their separate fields. If no full match exists, inspect closest and missing_terms; simplify only optional wording, never silently drop a required trait. |
| number |
| How many takes to make (default 4; one generation either way) |
{
"type": "object",
"required": [
"prompt"
],
"properties": {
"prompt": {
"type": "string",
"description": "With enhance=false, describe the audible environment in plain English, at most 400 characters. Name the place and continuous sound bed, its intensity, texture and pace; include occasional events, their spacing and distance only when requested or established by context. Keep it steady and repeatable. Example: 'Gentle ocean waves wash onto a sandy beach and recede at a steady pace, with soft foamy hiss and a low rolling wash.' Preserve the user's sources and spatial details; omit excluded sounds entirely rather than listing 'no music' or 'without voices'. Avoid metaphors that introduce other sources. The server adds the SFX tag and continuous-ambience instruction. With enhance=true, a brief in any language is enough."
},
"enhance": {
"type": "boolean",
"description": "Default false. Write final English using this tool's prompt guidance to skip server AI rewriting. True asks the corresponding ambience or music writer to adapt a brief in any language; enhanced_prompt reports the result. Non-Latin input may still require server translation with false."
},
"duration_s": {
"enum": [
30
],
"type": "number",
"description": "Take length, fixed at 30 seconds; omit or pass 30. A returned loop may be shorter. A loop is not guaranteed: inspect loop_cut and loop_url."
},
"variations": {
"enum": [
1,
2,
4
],
"type": "number",
"description": "How many takes to make (default 4; one generation either way)"
}
}
}| variations | number | How many takes to make (default 4; one generation either way) |
{
"type": "object",
"required": [
"prompt"
],
"properties": {
"prompt": {
"type": "string",
"description": "With enhance=false, write a plain English instrumental music description, at most 400 characters, usually 1-3 sentences. State the genre, instruments and what they play, mood, energy and tempo (BPM if specified). Preserve named genres, instruments and pace; choose compatible instrumentation only when the brief leaves it open. Describe a repeating motif and steady accompaniment suitable for a background loop. Example: 'A calm fantasy instrumental loop at 80 BPM, with gentle harp arpeggios, warm sustained strings and a simple flute melody, keeping a steady, hopeful mood.' Use positive audible terms; omit unwanted sources instead of naming them in exclusions. Avoid artist, song or game names, lyrics and the 'TrackType: SFX' tag. With enhance=true, give the musical brief in any language and the music writer adapts it."
},
"enhance": {
"type": "boolean",
"description": "Default false. Write final English using this tool's prompt guidance to skip server AI rewriting. True asks the corresponding ambience or music writer to adapt a brief in any language; enhanced_prompt reports the result. Non-Latin input may still require server translation with false."
},
"duration_s": {
"enum": [
30
],
"type": "number",
"description": "Take length, fixed at 30 seconds; omit or pass 30. A returned loop may be shorter. A loop is not guaranteed: inspect loop_cut and loop_url."
},
"variations": {
"enum": [
1,
2,
4
],
"type": "number",
"description": "How many takes to make (default 4; one generation either way)"
}
}
}| enhance | boolean | Default false. Prefer false when you can write the final English sound description using the prompt guidance: it skips the server AI rewrite. True asks SFXMint to expand or adapt a brief, as the website's AI Enhance does; the result includes enhanced_prompt. With false, non-Latin text may still trigger server translation, so write English to avoid that extra call. Neither setting guarantees audio quality; listen to the takes. |
| duration_s | number | Longest length in seconds. Leave it out and SFXMint chooses from the description; either way the silence before and after the sound is cut, so a take can be shorter |
| variations | number | How many takes to make (default 4; one generation either way) |
| variations_of | object | A variation set instead of a new sound: four takes started from one finished take of this account's generation, close to it, for a game to play at random so the sound does not repeat (footsteps, hits, shots). The result adds engine files (a Godot AudioStreamRandomizer .tres and a Unity script) to save beside the WAVs. Uses one generation; prompt then only names the set. |
{
"type": "object",
"required": [
"prompt"
],
"properties": {
"prompt": {
"type": "string",
"description": "For enhance=false, write the final audible description in plain English, usually 1-3 sentences, at most 400 characters. Start with 'TrackType: SFX,'. Name the source, action and relevant material; preserve requested count, intensity, pace and how the sound starts, develops and ends. Translate a use such as 'success' into the intended audible event, e.g. 'TrackType: SFX, three bright electronic tones rise in pitch, each fading quickly.' Preserve an explicitly requested sound: a confirmation click stays a click. Mention only sounds to be heard; omit excluded sounds entirely instead of writing 'no music' or 'without speech'. Avoid brands, character names and metaphors that name unwanted sources. Add perspective, environment or timbre only when requested or established by context; do not invent extra events. Keep simple sounds short. Put total length in duration_s. For enhance=true, a plain-language brief in any language is enough; SFXMint writes the model description."
},
"enhance": {
"type": "boolean",
"description": "Default false. Prefer false when you can write the final English sound description using the prompt guidance: it skips the server AI rewrite. True asks SFXMint to expand or adapt a brief, as the website's AI Enhance does; the result includes enhanced_prompt. With false, non-Latin text may still trigger server translation, so write English to avoid that extra call. Neither setting guarantees audio quality; listen to the takes."
},
"duration_s": {
"enum": [
0.2,
0.5,
1,
1.5,
2,
2.5,
3,
4,
5,
6,
7,
8,
9,
10
],
"type": "number",
"description": "Longest length in seconds. Leave it out and SFXMint chooses from the description; either way the silence before and after the sound is cut, so a take can be shorter"
},
"variations": {
"enum": [
1,
2,
4
],
"type": "number",
"description": "How many takes to make (default 4; one generation either way)"
},
"variations_of": {
"type": "object",
"required": [
"order_id",
"take"
],
"properties": {
"take": {
"type": "number",
"description": "Which of its takes (1-4)"
},
"order_id": {
"type": "string"
}
},
"description": "A variation set instead of a new sound: four takes started from one finished take of this account's generation, close to it, for a game to play at random so the sound does not repeat (footsteps, hits, shots). The result adds engine files (a Godot AudioStreamRandomizer .tres and a Unity script) to save beside the WAVs. Uses one generation; prompt then only names the set."
}
}
}| string |
| max_duration_ms | number | Hard maximum delivered duration in milliseconds. |
{
"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."
}
}
}| format | string | Delivery format (ogg = Ogg Vorbis, only sounds published before 2026-10-14 have it); loop=true defaults to WAV when omitted. |
| category | string | 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 | number | Hard maximum delivered duration in milliseconds; format-specific measurement is required. |
{
"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": "Use concise English search terms for the source or event, action and essential audible traits from the user's request or project context: 'door slam', 'soft UI confirmation chime', 'coin pickup'. A single clear source such as 'thunder' is valid; do not pad it. Translate other languages while preserving meaning. Avoid full generation prompts, app backstory, synonym lists and invented materials or environments: full matches must cover every query word. Put duration, loop and format requirements in their separate fields. If no full match exists, inspect closest and missing_terms; simplify only optional wording, never silently drop a required trait."
},
"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."
}
}
}