Directory / Media & generation
SFXMint
Find CC0 app and game sound effects by event, set or description and retrieve download URLs without a key; optional custom generation requires a key and paid pass or plan. Docs
Live Answered an MCP handshake without credentials and listed 10 tools.
- Category
- Media & generation
- Transport
http- Source
- https://github.com/flreey/sfxmint-mcp
- Endpoint
https://sfxmint.com/mcp- MCP Registry
com.sfxmint/sounds- Reports itself as
- sfxmint 1.12.1
- Protocol
- 2025-06-18
- Tools
- 10
- Context cost
- about 4,321 tokens for the tool definitions (estimated at four characters per token)
- Tool definitions last changed
- 2026-11-03
- Handshake time
- 246 ms
- Repository
- 7 stars · last push 2026-11-03 · CC0-1.0
- Last checked
- 2026-11-03 10:54:48 UTC
- Listed since
- 2026-10-18
Health and compatibility
| Endpoint reachable | Verified | Responded in 246 ms |
|---|---|---|
| MCP handshake (initialize) | Verified | Completed without credentials |
| Tool discovery (tools/list) | Verified | 10 tools listed |
| Authentication | Verified | None needed to connect |
| Protocol version | Verified | 2025-06-18 |
| Transport | Verified | Streamable HTTP |
| Capabilities declared | Verified | tools |
Last checked . Verified means the check saw it happen; it says nothing about whether the server is safe.
Recent history
100% of the last 12 daily checks reachable; median response 226 ms. Green answered, violet asked for auth, red did not answer.
Set up in your client
Claude Code
Run this in a terminal:
claude mcp add --transport http sfxmint https://sfxmint.com/mcpClaude Desktop
Open Settings → Connectors → Add custom connector and paste this URL:
https://sfxmint.com/mcpOr bridge it through mcp-remote in claude_desktop_config.json (needs Node.js):
{
"mcpServers": {
"sfxmint": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://sfxmint.com/mcp"
]
}
}
}Cursor
Or add it to ~/.cursor/mcp.json (or .cursor/mcp.json in a project):
{
"mcpServers": {
"sfxmint": {
"url": "https://sfxmint.com/mcp"
}
}
}VS Code
Or add it to .vscode/mcp.json:
{
"servers": {
"sfxmint": {
"type": "http",
"url": "https://sfxmint.com/mcp"
}
}
}Or from a terminal:
code --add-mcp '{"name": "sfxmint", "type": "http", "url": "https://sfxmint.com/mcp"}'Windsurf
Add it to ~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"sfxmint": {
"serverUrl": "https://sfxmint.com/mcp"
}
}
}Other clients
Most clients accept this shape. The endpoint is:
https://sfxmint.com/mcp{
"mcpServers": {
"sfxmint": {
"type": "http",
"url": "https://sfxmint.com/mcp"
}
}
}If it does not connect
- Restart the client after editing a config file, and keep keys out of files you commit.
- If the tools do not appear, open the client's MCP log: a 401 means the credentials were not accepted, and a timeout means the server did not answer.
Tools 10
Names, descriptions and input schemas exactly as the server returned them on 2026-11-03. This is the server author's own text. Nothing is run from this page. Labels such as read-only are declared by the server and are not verified. Raw JSON
change_soundcan modifyChange one take of a generation this account made, from the take itself: say what is off in the user's words …
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.
| Parameter | Type | Description | |
|---|---|---|---|
order_id | string | required | The generation, from generate_sound or get_generation |
take | number | required | Which of its takes (index, 1-4), finished |
change | string | optional | What is off, in the user's words: 'too muddy', 'make it loop', 'sounds too close' |
action | string | optional | 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 One of: crisper, heavier, shorter_tail, longer_tail, room, far, loop |
Example call (required arguments only, placeholder values):
{
"method": "tools/call",
"params": {
"name": "change_sound",
"arguments": {
"order_id": "...",
"take": 0
}
}
}generate_ambiencecan modifyMake a continuous environmental sound bed such as rain, waves, a forest or a crowd, not a musical track or an …
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.
| Parameter | Type | Description | |
|---|---|---|---|
prompt | string | required | 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 … |
duration_s | number | optional | 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. One of: 30 |
variations | number | optional | How many takes to make (default 4; one generation either way) One of: 1, 2, 4 |
enhance | boolean | optional | 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 … |
Example call (required arguments only, placeholder values):
{
"method": "tools/call",
"params": {
"name": "generate_ambience",
"arguments": {
"prompt": "..."
}
}
}generate_musiccan modifyMake instrumental background music (BGM), including ambient music, for an app or game; for environmental …
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.
| Parameter | Type | Description | |
|---|---|---|---|
prompt | string | required | 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; … |
duration_s | number | optional | 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. One of: 30 |
variations | number | optional | How many takes to make (default 4; one generation either way) One of: 1, 2, 4 |
enhance | boolean | optional | 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 … |
Example call (required arguments only, placeholder values):
{
"method": "tools/call",
"params": {
"name": "generate_music",
"arguments": {
"prompt": "..."
}
}
}generate_soundcan modifyMake an individual sound effect from a description when the library has nothing suitable (search_sounds has …
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 credits on the account — a generation pack ($9.90 for 50 credits or $19.90 for 150, valid a year from the latest purchase) — each up to 4 CC0 WAV takes of up to 10 s (with an OGG of each); 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 with a generation pack and hear it before a credit is spent). 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); 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.
| Parameter | Type | Description | |
|---|---|---|---|
prompt | string | required | 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 … |
duration_s | number | optional | 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 One of: 0.2, 0.5, 1, 1.5, 2, 2.5, 3, 4 … |
variations | number | optional | How many takes to make (default 4; one generation either way) One of: 1, 2, 4 |
enhance | boolean | optional | 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. … |
variations_of | object | optional | 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 … |
Example call (required arguments only, placeholder values):
{
"method": "tools/call",
"params": {
"name": "generate_sound",
"arguments": {
"prompt": "..."
}
}
}get_generationread-onlyCheck a generation started with generate_sound, generate_ambience, generate_music or change_sound: status, …
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.
| Parameter | Type | Description | |
|---|---|---|---|
order_id | string | required | The order_id returned by generate_sound, generate_ambience, generate_music or change_sound |
Example call (required arguments only, placeholder values):
{
"method": "tools/call",
"params": {
"name": "get_generation",
"arguments": {
"order_id": "..."
}
}
}get_role_soundread-onlyChoose this when the task calls for a sound for a named event or interaction — a button click, purchase …
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. Download selected files locally and retain originals. Task-permitted processing requires a recipe, output SHA256, renewed file checks and a listening check. 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.
| Parameter | Type | Description | |
|---|---|---|---|
role | string | required | Role id or alias, e.g. 'click', 'button click', 'purchase-success', 'ka-ching', 'error beep', 'level-up', 'dialogue blip', 'notification' |
style | string | optional | Optional. balanced (default) = the family's most typical take; crisp = short, bright, dry; soft = darker, gentler; spacious = reverb, longer tail One of: balanced, crisp, soft, spacious |
max_duration_ms | number | optional | Hard maximum length of the sound in milliseconds: a file may run longer with near-silence after the sound (audible_ms is the sound, duration_ms the file; checks say which was met). |
loop | boolean | optional | Require prepared loop metadata; seam evidence is returned separately. |
format | string | optional | Delivery format the candidate must have (ogg = Ogg Vorbis, only sounds published before 2026-10-14 have it); default MP3 and WAV URLs. One of: wav, mp3, ogg |
Example call (required arguments only, placeholder values):
{
"method": "tools/call",
"params": {
"name": "get_role_sound",
"arguments": {
"role": "..."
}
}
}get_soundread-onlyGet full metadata for one sound by slug, including download URLs, description and acoustics measured from the …
Get full metadata for one sound by slug, including download URLs, description and acoustics measured from the WAV (silence before the sound, where it peaks, audible length, attack, tail, brightness, levels, character labels).
| Parameter | Type | Description | |
|---|---|---|---|
slug | string | required | Sound slug, e.g. 'impact-punch-01' |
Example call (required arguments only, placeholder values):
{
"method": "tools/call",
"params": {
"name": "get_sound",
"arguments": {
"slug": "..."
}
}
}get_sound_setread-onlyGet a coherent set of sounds for an app or game in one call — one sound per role, with format metadata, …
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. Listen to the files in context. Sets include UI styles, game and app scenarios, acoustic-drum-kit, animal-calls (15 isolated calls), and dungeon-traps (6 isolated mechanisms).
| Parameter | Type | Description | |
|---|---|---|---|
format | string | optional | 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. One of: wav, mp3, ogg |
set | string | optional | Set id (default ui-crisp). Includes acoustic-drum-kit, animal-calls and dungeon-traps alongside the UI and scenario sets listed in the enum. One of: ui-crisp, ui-soft, ui-spacious, retro-game, chat-app, saas-app, checkout, learning … |
Example call (required arguments only, placeholder values):
{
"method": "tools/call",
"params": {
"name": "get_sound_set",
"arguments": {}
}
}search_soundsread-onlyFree-text search over the SFXMint library of free CC0 sound effects. Use it for sound descriptions, …
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 acoustics measured from the WAV (onset_ms, peak_ms, audible_ms, attack_ms, tail_ms, centroid_hz, peak_dbfs, rms_dbfs), 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).
| Parameter | Type | Description | |
|---|---|---|---|
query | string | required | 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 … |
category | string | optional | 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 |
limit | number | optional | Max results (default 10, max 50) |
max_duration_ms | number | optional | Hard maximum length of the sound in milliseconds: a file may run longer with near-silence after the sound (audible_ms is the sound, duration_ms the file; checks say which was met). |
loop | boolean | optional | Require (true) or exclude (false) a candidate marked with prepared loop metadata; seam evidence is returned separately. |
format | string | optional | Delivery format (ogg = Ogg Vorbis, only sounds published before 2026-10-14 have it); loop=true defaults to WAV when omitted. One of: wav, mp3, ogg |
Example call (required arguments only, placeholder values):
{
"method": "tools/call",
"params": {
"name": "search_sounds",
"arguments": {
"query": "..."
}
}
}studio_list_linkread-onlyOne link to SFXMint Studio for every sound the library lacks in this task: pass each missing sound as a short …
One link to SFXMint Studio for every sound the library lacks in this task: pass each missing sound as a short description and give the user the returned user_message once, instead of one link per sound. The page lists them ready to make one by one with a generation pack, each heard before a credit is spent; nothing is made or charged here, and no API key is needed.
| Parameter | Type | Description | |
|---|---|---|---|
sounds | string[] | required | Each missing sound as a short description of what is heard, e.g. 'alien shotgun blast', 'slime monster death gurgle'. |
Example call (required arguments only, placeholder values):
{
"method": "tools/call",
"params": {
"name": "studio_list_link",
"arguments": {
"sounds": []
}
}
}Badge
Maintain this server? Put its live status in your README:
[](https://mcp.aianytime.net/s/sfxmint/)Edit this entry · Report a problem
More in Media & generation
Checks record what a server answered, not whether it is safe. A listing is not a security audit; read a server's source and permissions before you connect it. Add a server · JSON · llms.txt · llms-full.txt
Browse: Agents, IDEs & developer tools · Search & discovery · Knowledge, memory & context · Media & generation · Security · Finance & markets · Marketing, content & social · Cloud, ops & data · Commerce, travel & logistics · Work & productivity · No account needed · Local servers