olivelb/local-music-mcp-server
3.2
If you are the rightful owner of local-music-mcp-server and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
The Music MCP Server is a Model Context Protocol server designed for managing music libraries and controlling Chromecast playback, optimized for integration with LM Studio.
Tools
21
Resources
0
Prompts
0
šµ Music MCP Server
A Model Context Protocol (MCP) Server for music library management and Chromecast playbook control, optimized for LM Studio integration.
⨠Key Features
- šÆ 21 Music Tools - Complete control over music playback and library
- š” Chromecast Integration - Native Google Cast queue support
- ā” Ultra-Fast Responses - No timeout issues with LM Studio (~20ms)
- š Persistent Operation - Background server survives disconnections
- š Large Library Support - Tested with 13,294+ tracks
š Quick Start
1. Installation
git clone <repository>
cd music-mcp-server
npm install
2. Configure LM Studio
Add to your LM Studio MCP configuration:
{
"mcpServers": {
"music": {
"command": "C:\\Program Files\\nodejs\\node.exe",
"args": ["lm-studio.js"],
"cwd": "D:/mcp-server/music-mcp-server",
"env": {
"NODE_ENV": "production",
"LOG_LEVEL": "error"
},
"timeout": 30000
}
}
}
3. Start Using
- Start server:
start_music_server()
- Find devices:
list_chromecasts()
- Search music:
search_music({"query": "artist name"})
- Play tracks:
play_multiple_tracks({"tracks": [1,2,3], "device_name": "device"})
š Alternative: NPM Scripts
You can also run the interface using npm scripts:
# Start LM Studio interface
npm run lm-studio
# Start persistent server
npm run server
# Start server in background
npm run server:background
# Development mode
npm run dev
š ļø Available Tools
Server Management (3)
start_music_server
- Start background serverstop_music_server
- Stop background serverserver_status
- Check server health
Chromecast Control (3)
list_chromecasts
- Discover devicesconnect_chromecast
- Connect to deviceget_chromecast_status
- Get connection status
Music Library (2)
search_music
- Search tracks (supports fuzzy, exact matching)get_library_stats
- Library statistics
Playback (6)
play_track
- Play single trackplay_multiple_tracks
- Play queue with native Cast supportpause_playback
/resume_playbook
/stop_playbook
- Playbook controlget_playlist_status
- Current playbook info
Navigation (4)
skip_to_next
/skip_to_previous
- Skip tracksskip_to_track
- Jump to specific track numberseek_to_position
- Seek within track
Queue & Volume (3)
manage_queue
- Add/remove/shuffle/repeat queueset_volume
- Volume control (0.0-1.0)manage_playlist
- Create/manage playlists
š Project Structure
music-mcp-server/
āāā lm-studio.js # Main LM Studio interface (renamed)
āāā persistent-music-server.js # Background music server
āāā lm_studio_config_node.json # LM Studio configuration
āāā src/ # Core application code
ā āāā controllers/ # Music & Chromecast controllers
ā āāā services/ # Database & Chromecast services
ā āāā utils/ # Utilities & validation
āāā data/ # Database & state files
āāā docs/ # API documentation
āāā scripts/ # Utility scripts
š§ Architecture
Two-Component Design
- lm-studio.js - Ultra-fast MCP interface for LM Studio (renamed for simplicity)
- persistent-music-server.js - Background server for music operations
Why This Works
- No Timeouts: Protocol methods respond instantly
- Persistent State: Music server runs independently
- Automatic Management: Server starts/stops as needed
- Error Recovery: Robust error handling and reconnection
šµ Supported Audio Formats
- MP3, FLAC, WAV, AAC, M4A, OGG, WMA
- Full ID3 metadata support
- Automatic content-type detection
š Performance
- Library Size: 13,294+ tracks tested
- Response Time: ~20ms for protocol methods
- Memory Usage: Optimized for large libraries
- Network: Efficient Chromecast streaming
š Troubleshooting
Common Issues
- Tools not loading: Restart LM Studio after config changes
- Server not starting: Check port 8765 availability
- Chromecast not found: Ensure devices on same network
- Playback stops: Check Chromecast connection stability
Logs
- Server logs:
data/music-server.log
- Check server status:
server_status()
tool
š License
MIT License - See LICENSE file for details
Ready for production use with LM Studio! šµ