| Crates.io | mcp-muse |
| lib.rs | mcp-muse |
| version | 2025.11.1 |
| created_at | 2025-11-14 19:50:14.117049+00 |
| updated_at | 2025-11-16 05:18:20.587547+00 |
| description | MCP server providing authentic 16-bit SNES gaming sounds, R2D2 expressive emotions, and professional music synthesis for AI agents |
| homepage | https://github.com/alextrzyna/mcp-muse |
| repository | https://github.com/alextrzyna/mcp-muse |
| max_upload_size | |
| id | 1933344 |
| size | 1,745,154 |
MCP Muse Intro |
MCP Muse Makes Grunge and Metal |
MCP Muse Makes RPG Music In Realtime |
๐ฌ Click the images above to watch the demo videos! ๐ฌ
Nostalgic retro voice for AI agents - transport users back to the golden age of video games
MCP-MUSE brings comprehensive audio capabilities to your AI conversations - from nostalgic retro gaming sounds to expressive robotic vocalizations to professional music synthesis!
play_notes tool for all audio capabilitiesThe easiest way to install MCP-Muse:
cargo install mcp-muse
This will download and install the latest stable release. Then proceed to Quick Start below.
Download the latest binary for your platform from GitHub Releases:
mcp-muse-linux-x86_64.tar.gzmcp-muse-macos-x86_64.tar.gzmcp-muse-macos-aarch64.tar.gzmcp-muse-windows-x86_64.zipExtract the archive and add the binary to your PATH, or specify the full path in your MCP configuration.
For development or latest features:
git clone https://github.com/alextrzyna/mcp-muse.git
cd mcp-muse
cargo build --release
The binary will be available at ./target/release/mcp-muse.
For Cursor (choose based on your installation method):
# If installed via cargo:
mcp-muse --setup
# If built from source:
./target/release/mcp-muse --setup
# If using downloaded binary:
/path/to/mcp-muse --setup
This interactively guides you through:
NEW: Custom SoundFont Support
~/.local/share/mcp-muse/config.json~/Library/Application Support/mcp-muse/config.json%APPDATA%\mcp-muse\config.jsonClose and reopen Cursor for the MCP server to be available.
Ask your AI agent to enhance conversations with comprehensive audio:
"Play a celebration sound when I solve this problem"
"Add a Zelda-style discovery sound for important moments"
"Create some atmospheric dungeon music while I work"
"Play a Mario power-up sound when I get the right answer"
"Use R2D2 excited sounds for breakthroughs"
"Play vintage Minimoog bass for that classic synth feel"
"Add professional drum sounds for rhythm"
"Create custom sound effects for unique moments"
The system has been thoroughly validated through a comprehensive 10-scenario test suite covering all audio capabilities:
โ All Audio Systems Confirmed Working:
{
"notes": [
{"note": 67, "velocity": 90, "start_time": 0, "duration": 0.3, "channel": 0, "instrument": 73},
{"note": 72, "velocity": 100, "start_time": 0.3, "duration": 0.3, "channel": 0, "instrument": 73},
{"note": 76, "velocity": 110, "start_time": 0.6, "duration": 0.3, "channel": 0, "instrument": 73},
{"note": 79, "velocity": 120, "start_time": 0.9, "duration": 0.6, "channel": 0, "instrument": 73, "reverb": 40}
]
}
Perfect for: Important discoveries, successful completions, "aha!" moments
{
"notes": [
{"note": 64, "velocity": 100, "start_time": 0, "duration": 0.1, "channel": 0, "instrument": 80},
{"note": 67, "velocity": 100, "start_time": 0.1, "duration": 0.1, "channel": 0, "instrument": 80},
{"note": 72, "velocity": 100, "start_time": 0.2, "duration": 0.1, "channel": 0, "instrument": 80},
{"note": 76, "velocity": 100, "start_time": 0.3, "duration": 0.1, "channel": 0, "instrument": 80},
{"note": 79, "velocity": 110, "start_time": 0.4, "duration": 0.3, "channel": 0, "instrument": 80}
]
}
Perfect for: Leveling up, gaining new abilities, getting correct answers
{
"notes": [
{"note": 60, "velocity": 100, "start_time": 0, "duration": 0.5, "channel": 0, "instrument": 56},
{"note": 64, "velocity": 100, "start_time": 0.5, "duration": 0.5, "channel": 0, "instrument": 56},
{"note": 67, "velocity": 110, "start_time": 1, "duration": 0.5, "channel": 0, "instrument": 56},
{"note": 72, "velocity": 120, "start_time": 1.5, "duration": 1, "channel": 0, "instrument": 56},
{"note": 36, "velocity": 90, "start_time": 0, "duration": 0.25, "channel": 9},
{"note": 36, "velocity": 90, "start_time": 1, "duration": 0.25, "channel": 9}
]
}
Perfect for: Major accomplishments, completing difficult tasks, celebrating victories
{
"notes": [
{"preset_name": "Minimoog Bass", "note": 36, "velocity": 120, "start_time": 0, "duration": 1},
{"preset_name": "Minimoog Bass", "note": 36, "velocity": 100, "start_time": 1.5, "duration": 1},
{"preset_name": "Minimoog Bass", "note": 38, "velocity": 110, "start_time": 3, "duration": 1}
]
}
{
"notes": [
{"preset_name": "TB-303 Acid", "preset_variation": "squelchy", "note": 43, "velocity": 120, "start_time": 0, "duration": 0.5},
{"preset_name": "TB-303 Acid", "note": 40, "velocity": 100, "start_time": 0.5, "duration": 0.5},
{"preset_name": "TB-303 Acid", "note": 43, "velocity": 110, "start_time": 1, "duration": 1}
]
}
{
"notes": [
{"preset_name": "JP-8 Strings", "note": 60, "velocity": 80, "start_time": 0, "duration": 4},
{"preset_name": "JP-8 Strings", "note": 64, "velocity": 80, "start_time": 0, "duration": 4},
{"preset_name": "JP-8 Strings", "note": 67, "velocity": 80, "start_time": 0, "duration": 4}
]
}
{
"notes": [
{"preset_name": "TR-808 Kick", "note": 36, "velocity": 127, "start_time": 0, "duration": 0.5},
{"preset_name": "TR-909 Snare", "note": 38, "velocity": 110, "start_time": 0.5, "duration": 0.3},
{"preset_name": "TR-808 Kick", "note": 36, "velocity": 100, "start_time": 1, "duration": 0.5}
]
}
{
"notes": [
{"synth_type": "zap", "synth_frequency": 800, "synth_energy": 0.9, "start_time": 0, "duration": 0.3}
]
}
{
"notes": [
{"synth_type": "fm", "synth_frequency": 110, "synth_modulator_freq": 220, "synth_modulation_index": 2, "start_time": 0, "duration": 2}
]
}
{
"notes": [
{"synth_type": "kick", "synth_frequency": 60, "synth_punch": 0.8, "synth_sustain": 0.3, "start_time": 0, "duration": 1}
]
}
{
"notes": [
{"preset_name": "JP-8 Strings", "note": 60, "velocity": 70, "start_time": 0, "duration": 4},
{"note": 72, "velocity": 100, "start_time": 1, "duration": 1, "instrument": 56, "reverb": 60},
{"note_type": "r2d2", "r2d2_emotion": "Excited", "r2d2_intensity": 0.9, "start_time": 2.5, "duration": 1},
{"synth_type": "chime", "synth_frequency": 880, "start_time": 3.5, "duration": 0.5}
]
}
{
"notes": [
{"note": 60, "velocity": 100, "start_time": 0, "duration": 0.5, "instrument": 56, "note_type": "midi"},
{"note": 64, "velocity": 100, "start_time": 0.5, "duration": 0.5, "instrument": 56, "note_type": "midi"},
{"note": 67, "velocity": 110, "start_time": 1, "duration": 0.5, "instrument": 56, "note_type": "midi"},
{"note_type": "r2d2", "start_time": 1.2, "duration": 1.0, "r2d2_emotion": "Excited", "r2d2_intensity": 0.9, "r2d2_complexity": 4, "r2d2_pitch_range": [400, 1000]},
{"note": 72, "velocity": 120, "start_time": 1.5, "duration": 1.5, "instrument": 56, "note_type": "midi"}
]
}
Perfect for: User accomplishments with AI celebrating alongside
{
"notes": [
{"note": 36, "velocity": 60, "start_time": 0, "duration": 3, "instrument": 89, "reverb": 80, "note_type": "midi"},
{"note_type": "r2d2", "start_time": 1.0, "duration": 0.8, "r2d2_emotion": "Curious", "r2d2_intensity": 0.6, "r2d2_complexity": 2, "r2d2_pitch_range": [250, 600]},
{"note": 67, "velocity": 90, "start_time": 2.5, "duration": 0.3, "instrument": 73, "note_type": "midi"}
]
}
Perfect for: Exploring ideas with inquisitive AI companion
{
"notes": [
{"note_type": "r2d2", "start_time": 0, "duration": 1.5, "r2d2_emotion": "Thoughtful", "r2d2_intensity": 0.5, "r2d2_complexity": 3, "r2d2_pitch_range": [150, 400]},
{"note": 60, "velocity": 70, "start_time": 0.5, "duration": 1.0, "instrument": 0, "note_type": "midi"},
{"note_type": "r2d2", "start_time": 2.0, "duration": 0.6, "r2d2_emotion": "Surprised", "r2d2_intensity": 0.8, "r2d2_complexity": 1, "r2d2_pitch_range": [300, 800]}
]
}
Perfect for: AI thinking through problems and having breakthroughs
"r2d2_emotion": "Happy""r2d2_emotion": "Excited""r2d2_emotion": "Affirmative""r2d2_emotion": "Curious""r2d2_emotion": "Surprised""r2d2_emotion": "Thoughtful""r2d2_emotion": "Sad""r2d2_emotion": "Worried""r2d2_emotion": "Negative"r2d2_emotion: Choose from 9 distinct emotions (required for R2D2 notes)r2d2_intensity: 0.0-1.0 emotional strength (0.5=moderate, 0.9=dramatic)r2d2_complexity: 1-5 syllables (1=simple beep, 5=complex phrase)r2d2_pitch_range: [min_hz, max_hz] frequency range ([200,600]=low, [400,1000]=high)note_type: Set to "r2d2" for robotic expressions, "midi" for musical notesnote: 60=C4 (middle C), 72=C5 (high), 48=C3 (low)velocity: 80=normal, 100=strong, 127=maximum impactstart_time: 0=immediate, 0.5=half second delayduration: 0.1=quick blip, 0.5=short, 1.0=sustainedchannel: 0-8=melody instruments, 9=drums, 10-15=effectsinstrument: 80=Square Lead (classic 8-bit), 73=Flute (Zelda), 56=Trumpet (fanfares)volume: 90-127=prominent effects, 60-80=background ambiencereverb: 40=dungeon echo, 80=magical sparkle, 127=cathedral (MIDI CC 91)chorus: 0=clean retro, 60=lush SNES sound, 100=dreamy (MIDI CC 93)The system includes a comprehensive effects processor with per-channel processing and intelligent limiting:
{
"notes": [{
"note": 60,
"instrument": 1,
"effects": [{
"effect": {
"Reverb": {
"room_size": 0.7,
"dampening": 0.5,
"wet_level": 0.3,
"pre_delay": 0.02
}
},
"intensity": 0.8,
"enabled": true
}]
}]
}
Use effects_preset for quick professional-quality effects:
"concert_hall" - Large space reverb"small_room" - Intimate ambience"cathedral" - Epic reverb with long decay"studio" - Clean, controlled sound"vintage_analog" - Warm tape-style effectsplay_notes tool - no separate playback methods needed| Range | SNES Style | Gaming Use Cases |
|---|---|---|
| 0-7 | Classic Piano | 0=Soft melodies, menu music |
| 56-63 | Epic Brass | 56=Victory fanfares, boss themes |
| 68-79 | Magical Winds | 73=Zelda discoveries, fairy sounds |
| 80-87 | 8-Bit Leads | 80=Mario melodies, chiptune leads |
| 88-95 | Atmospheric | 89=Dungeon ambience, mysterious pads |
| 9 | Sound Effects | 9=Glockenspiel coins, magical chimes |
| Channel 9 | Retro Drums | 36=Kick, 38=Snare, 42=Hi-hat |
play_notes: Universal JSON interface supporting all 4 audio systems in single sequences (โ
Fully Tested){
"name": "play_notes",
"description": "๐ฎ 16-bit SNES gaming sound for AI conversation enhancement...",
"parameters": {
"notes": [{
"note": "๐ต Sound pitch (60=middle, 72=high, 48=low)",
"velocity": "๐ Impact strength (80=normal, 127=maximum)",
"start_time": "โฐ When to play (0=immediate)",
"duration": "โณ How long (0.1=blip, 0.5=short, 1.0=sustained)",
"channel": "๐ฎ Sound type (0-8=melody, 9=drums)",
"instrument": "๐น Gaming instrument (80=8-bit, 73=magical, 56=fanfare)",
"volume": "๐ How loud (90-127=effects, 60-80=background)",
"reverb": "๐ฐ Echo effect (40=dungeon, 80=magical)",
"chorus": "โจ SNES shimmer (60=classic, 100=dreamy)"
}]
}
}
cargo test
cargo build --release
cargo run -- --setup # Setup with SoundFont download
cargo run # Run MCP server
This project uses CalVer versioning in the format YYYY.MM.PATCH (e.g., 2025.11.0). Releases are automatically created when changes are merged to the main branch. See VERSIONING.md for details.
No sound output:
Poor audio quality:
Agent can't find tools:
Setup issues:
# Re-run setup to re-download SoundFont (adjust command based on installation method)
mcp-muse --setup # If installed via cargo
./target/release/mcp-muse --setup # If built from source
# Check SoundFont exists and size
ls -la assets/FluidR3_GM.sf2 # Should be ~142MB
# Manual download if needed
curl -L https://keymusician01.s3.amazonaws.com/FluidR3_GM.zip -o FluidR3_GM.zip
unzip FluidR3_GM.zip -d assets/
Custom SoundFont issues:
# Check configuration file
# Linux:
cat ~/.local/share/mcp-muse/config.json
# macOS:
cat ~/Library/Application\ Support/mcp-muse/config.json
# Windows (Command Prompt):
type %APPDATA%\mcp-muse\config.json
# Windows (PowerShell):
Get-Content $env:APPDATA\mcp-muse\config.json
# Verify custom SoundFont exists and is valid
ls -la /path/to/your/soundfont.sf2
# Reset to default SoundFont (removes config file)
# Linux:
rm ~/.local/share/mcp-muse/config.json
# macOS:
rm ~/Library/Application\ Support/mcp-muse/config.json
# Windows:
del %APPDATA%\mcp-muse\config.json
./target/release/mcp-muse --setup
MIT License - See LICENSE file for details.
Transform conversations with nostalgic 16-bit sounds that instantly transport users back to the golden age of gaming.