Give your AI agent a soundboard. Millions of meme sounds from myinstants.com.
an MCP server that connects AI agents to myinstants.com β the internet's largest soundboard. millions of meme sounds, vine booms, fart noises, anime clips, gaming sfx, whatever you need bestie.
your AI agent can now:
this is not a notification beep. this is the entire internet soundboard. your agent has rizz now.
npx myinstants-mcp
that's it. that's the setup. no cap.
Add to your VS Code MCP config (User or .vscode/mcp.json):
{
"servers": {
"myinstants": {
"command": "npx",
"args": ["-y", "myinstants-mcp@latest"]
}
}
}
~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"myinstants": {
"command": "npx",
"args": ["-y", "myinstants-mcp@latest"]
}
}
}
.cursor/mcp.json:
{
"mcpServers": {
"myinstants": {
"command": "npx",
"args": ["-y", "myinstants-mcp@latest"]
}
}
}
[!TIP] works on macOS out of the box (uses native
afplay) β no extra installs needed. on linux justsudo apt install ffmpeg. that's it bestie.
| Tool | What it does | It's giving |
|---|---|---|
search_sounds | search myinstants for sounds | "bruh" β 20 results with slugs |
browse_category | browse by category | "memes" "games" "reactions" |
play_sound | play a sound (by slug, url, or quick search) | { query: "sad trombone" } plays instantly |
get_sound_details* | get details about a sound (views, uploader, duration) | requires MYINSTANTS_DETAILS=true |
list_devices* | list available audio output devices | requires MYINSTANTS_DETAILS=true |
* requires MYINSTANTS_DETAILS=true environment variable
play_sound options| Parameter | Type | Default | The tea β |
|---|---|---|---|
query | string | β | quick search, plays first result. the goat option. |
slug | string | β | exact slug from search results |
url | string | β | direct MP3 URL if you're built different |
wait | boolean | false | false = plays in background while agent keeps cooking (default π¨). true = blocks until done (for dramatic effect π) |
| Resource | The vibe |
|---|---|
myinstants://trending | what's bussin rn in the US π₯ |
myinstants://categories | all 14 categories no cap |
myinstants://best | hall of fame. the GOATs. the legends. π |
anime & manga Β· games Β· memes Β· movies Β· music Β· politics Β· pranks Β· reactions Β· sound effects Β· sports Β· television Β· tiktok trends Β· viral Β· whatsapp audios
agent calls play_sound({ query: "vine boom", wait: false })
β searches myinstants.com
β finds the MP3 URL
β streams it through afplay/ffplay/mpv
β sound plays through your speakers
β agent keeps cooking while you hear the boom π³
sounds queue up automatically. no overlap. your agent can fire multiple sounds and they play one after another. sheesh.
drop a .instructions.md in your repo (with applyTo: "**" in the frontmatter) and your agent will play sounds while it works. imagine: vine boom when it finds a bug. sad trombone when your tests fail. rick roll mid-code-review for absolutely no reason.
---
name: "Soundboard"
description: "Sounds for all contexts"
applyTo: "**"
---
Play sounds using the myinstants MCP server while you work:
- Play `play_sound(query: "vine boom sound")` when you find cursed code
- Play `play_sound(query: "sad trombone")` when the user's code doesn't work
- Play `play_sound(query: "minecraft level up sound")` when you fix something
check our myinstants.instructions.md for the full unhinged setup. your agent will never be an NPC again. π
| Variable | Default | The tea β |
|---|---|---|
MYINSTANTS_VOLUME | 0.5 | how loud (0-1). crank it bestie. |
MYINSTANTS_WAIT | false | "true" = sounds block until finished. dramatic effect mode π |
MYINSTANTS_DEVICE | (system default) | route audio to a specific output device. platform-specific device name. |
MYINSTANTS_PLAYER | (auto) | force a specific player: ffplay, mpv, afplay, or paplay. |
MYINSTANTS_DETAILS | false | "true" = enables get_sound_details and list_devices tools. |
{
"servers": {
"myinstants": {
"command": "npx",
"args": ["-y", "myinstants-mcp@latest"],
"env": {
"MYINSTANTS_VOLUME": "0.8",
"MYINSTANTS_DEVICE": "Denon AVR-S760H",
"MYINSTANTS_DETAILS": "true"
}
}
}
}
route sounds to a specific output device instead of system default:
# set device name (platform-specific)
export MYINSTANTS_DEVICE="Denon AVR-S760H"
# force a specific player (optional)
export MYINSTANTS_PLAYER="ffplay"
# enable device listing tool
export MYINSTANTS_DETAILS="true"
discover available devices:
# macOS
ffmpeg -f avfoundation -list_devices true -i "" 2>&1
# Linux (PulseAudio)
pactl list short sinks
# mpv (cross-platform)
mpv --audio-device=help
or use the list_devices tool when MYINSTANTS_DETAILS=true β your agent can discover devices for you. π
player support:
| Player | Device Flag | Example |
|---|---|---|
ffplay | -audio_device | ffplay -audio_device "Denon AVR-S760H" |
mpv | --audio-device= | mpv --audio-device="pulse/alsa_output.usb" |
paplay | --device= | paplay --device=bluez_sink.XX |
afplay | β N/A | macOS system default only (no device selection) |
notes:
MYINSTANTS_DEVICE not setMYINSTANTS_PLAYER=ffplay or mpv if you need device control| Player | Platform | Install | Vibe |
|---|---|---|---|
afplay | macOS | pre-installed π | just works. zero effort. slay. |
ffplay | everywhere | brew install ffmpeg / apt install ffmpeg | the reliable bestie |
mpv | everywhere | brew install mpv / apt install mpv | also valid no cap |
auto-detects what you have. tries afplay first on mac, then ffplay, then mpv. fallback chain is bussin.
because your AI agent should be able to hit you with a vine boom when the code compiles. because sad trombone when tests fail is objectively correct. because the bruh button exists and your agent deserves to press it. this is not delulu β this is the future.
every other MCP sound server plays one notification beep. one beep. that's giving NPC energy. we have millions of sounds. the entire internet soundboard. main character behavior only.
made by @austenstone π·οΈ
powered by myinstants.com Β· built with MCP
no cap this might be the most unhinged MCP server ever and we're lowkey proud of it ππ₯
Source-derived launch command. Check the maintainerβs required arguments and credentials before running:
npx -y myinstants-mcpMerge this template into ~/Library/Application Support/Claude/claude_desktop_config.json. Keep existing servers. Add any arguments, credentials, and permissions required by the maintainer; this template has not been install-tested.
{
"mcpServers": {
"io-github-austenstone-myinstants-mcp": {
"command": "npx",
"args": [
"-y",
"myinstants-mcp"
]
}
}
}Restart Claude Desktop completely for changes to take effect. Confirm the server appears connected in the clientβs tool list, then try a read-only example from its documentation.
Claude Desktop setup referencemyinstants-mcpnpmio.github.austenstone/myinstants-mcp works with any MCP-compatible client. Copy the config snippet from the Configuration section above and add it to the file shown for your client, then restart the application.
~/Library/Application Support/Claude/claude_desktop_config.jsonRestart Claude Desktop completely for changes to take effect.~/.cursor/mcp.jsonRestart Cursor for changes to take effect..vscode/mcp.jsonReload VS Code window for changes to take effect.~/.codeium/windsurf/mcp_config.jsonRestart Windsurf for changes to take effect..mcp.jsonSave at the project root, then start Claude Code in that project and review the MCP server approval prompt. Keep real credentials out of shared files.