Rekordbox Smart MCP
Integrates with Pioneer Rekordbox, providing tools for library management, smart playlists, DJ analytics, and safe mutations with full undo capability.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Rekordbox Smart MCP show my top played tracks"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Rekordbox Smart MCP
MCP server for DJs using Pioneer Rekordbox — 33 tools for library management, smart playlists, DJ analytics, and safe mutations with full undo capability.
This server implements the UDMS (Unified DJ Metadata Schema) principles described in the DJ Metadata Quality paper: BPM cache layers, Camelot key normalization, and cross-platform field mapping.
See also: Bonk! — Electron+React DJ metadata editor (desktop companion app using aubio/keyfinder-cli for audio analysis).
Key advantages:
✅ No Python required – works with XML exports; optional DB integration
✅ Complete undo system – all mutations create timestamped backups
✅ Smart setlist tools – harmonic analysis, transition suggestions, energy curves
✅ Privacy-focused – no external APIs, no telemetry
✅ 33 tools – comprehensive error handling, audit logging
Prerequisites
Node.js 18+
Rekordbox 6 or 7 (for DJ analytics and DB import)
Rekordbox XML export (File → Export → Export as XML)
Optional: Python 3 + pyrekordbox for direct database import
Related MCP server: Spotify Overload - More Tools (18) | More Functions | More Rocking Out
Safety First
⚠️ All mutation operations create automatic XML backups before making changes. Backups are timestamped and can be used to restore your library via mutation_rollback.
We recommend testing with a copy of your XML export before using on your main library.
Quickstart
1. Install
npm install
npm run build2. Configure
Add to your MCP client configuration:
Claude Desktop (~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"rekordbox-smart-mcp": {
"command": "node",
"args": ["/absolute/path/to/dist/index.js"]
}
}
}Cursor (.cursor/mcp.json):
{
"mcpServers": {
"rekordbox-smart-mcp": {
"command": "node",
"args": ["/absolute/path/to/dist/index.js"]
}
}
}3. Load Your Library
{
"name": "library_load",
"arguments": {
"xmlPath": "/path/to/your/rekordbox_export.xml"
}
}Or set a default path in rekordbox-smart-mcp.toml and call without arguments.
4. Try It
{ "name": "library_stats", "arguments": {} }
{ "name": "library_search", "arguments": { "query": "house", "limit": 5 } }Features
Library Management
Full-text search with filters (genre, BPM, key, artist, album, year, rating)
Statistics, duplicate detection, missing file finder
Fuzzy search, harmonic key search
JSON export
Track Operations
Get detailed metadata
Single or batch updates (with automatic backups)
Playlist membership queries
Playlist Management
Create, rename, delete playlists
Add/remove tracks (add or replace modes)
Smart Setlist Tools
playlist_buildSmart– build playlists using energy curves, BPM ranges, key progression smoothing, artist diversitysetlist_analyze– comprehensive analysis (harmonic compatibility, BPM gaps, genre/artist diversity, recommendations)setlist_suggestTransitions– AI-driven transition suggestions with mix tips and compatibility scoring
Rekordbox Integration
Import/export via XML
Direct database sync (requires
pyrekordbox)
DJ Analytics
Recent sessions, session tracks
History stats, play count rankings
Listening patterns (BPM, genres, keys)
Safety & Undo
mutation_history– query audit log with filtersmutation_rollback– restore from any backup (creates pre-rollback backup)All mutations logged to
audit/bonk-mutations.jsonl
Configuration
Create rekordbox-smart-mcp.toml in your working directory, ~/.config/, or ~:
[library]
xml_path = "~/rekordbox/export.xml"
[rekordbox]
db_path = "~/Library/Pioneer/rekordbox/master.db"
auto_detect = true
[cache]
db_path = "~/.bonk/media-cache.db"If rekordbox.db_path is not set, the server auto-detects the platform-specific location (macOS, Windows, Linux).
Safety and Undo
All mutations create automatic XML backups in the working directory. Backup pattern: bonk-backup-YYYY-MM-DDTHH-MM-SS-ffffff.xml.
Undo workflow:
List recent mutations:
{ "name": "mutation_history", "arguments": { "limit": 10 } }Preview rollback (dry run):
{
"name": "mutation_rollback",
"arguments": { "mutationId": "2026-04-07T09-03-07-724Z", "dryRun": true }
}Execute rollback:
{
"name": "mutation_rollback",
"arguments": { "mutationId": "2026-04-07T09-03-07-724Z", "dryRun": false }
}Rollback creates a pre-rollback backup and logs itself as a new mutation, providing an undo chain.
Tool Reference
Library (9 tools)
library_search, library_stats, library_listPlaylists, library_load,
library_findMissing, library_findDuplicates, library_fuzzySearch,
search_keyCompatible, library_exportJSON
Track (4 tools)
track_get, track_update, track_playlists, track_updateBatch
Playlist (5 tools)
playlist_create, playlist_addTracks, playlist_removeTracks,
playlist_delete, playlist_rename
Smart Setlist (3 tools)
playlist_buildSmart, setlist_analyze, setlist_suggestTransitions
Rekordbox (3 tools)
rekordbox_sync, rekordbox_importXml, rekordbox_exportXml
DJ Analytics (5 tools)
dj_getRecentSessions, dj_getSessionTracks, dj_getHistoryStats,
dj_getPlayCountAnalytics, dj_getListeningPatterns
Audio (2 tools)
audio_bpmGetCached, audio_bpmCacheSet
Safety (2 tools)
mutation_history, mutation_rollback
Total: 33 canonical tools
Requirements
Node.js 18+
better-sqlite3(native module – rebuilt automatically on install)Optional: Python 3 +
pyrekordboxfor Rekordbox DB import
Limitations
Library is in-memory; must load XML or import DB on each server start
Cache persists via
~/.bonk/library-state.jsonDJ analytics require Rekordbox database access
Rollback only works if backup file still exists
Setlist tools operate on in-memory state (export to persist)
Disclaimer
rekordbox-smart-mcp is not affiliated with, endorsed by, or connected to Pioneer DJ, AlphaTheta Corporation, or Rekordbox in any way. This is an independent, unofficial tool that works with Rekordbox XML exports and database files. Use at your own risk. Always keep backups of your original library data.
License
MIT
Available Tools
33 toolsaudio_bpmCacheSetC
Store BPM analysis in cache for an audio file.
Inputs: bpm (required), source (required), filePath (required), confidence, +1 more.
audio_bpmGetCachedC
Get cached BPM analysis for an audio file.
Inputs: filePath (required).
dj_getHistoryStatsB
Get DJ performance statistics. Requires rekordbox.db_path configured.
Inputs: no named parameters.
dj_getListeningPatternsA
Get listening pattern analysis: average BPM, dominant genres, dominant keys.
Inputs: no named parameters.
dj_getPlayCountAnalyticsB
Get play count analytics for tracks from Rekordbox history.
Inputs: no named parameters.
dj_getRecentSessionsA
Get recent DJ sessions from Rekordbox history. Requires rekordbox.db_path configured.
Inputs: days.
dj_getSessionTracksB
Get tracks played in a specific DJ session.
Inputs: sessionId (required).
library_exportJSONC
Export loaded library tracks and playlists to JSON.
Inputs: outputPath.
library_findDuplicatesA
Find potential duplicate tracks by file location and by artist+title.
Inputs: no named parameters.
library_findMissingB
Find tracks whose file paths are missing on disk.
Inputs: no named parameters.
library_fuzzySearchC
Fuzzy-search tracks by title/artist/album/genre.
Inputs: query (required), limit.
library_listPlaylistsA
List all playlists in the library with their track counts.
Inputs: no named parameters.
library_loadA
Load a Rekordbox XML file into the library. If xmlPath is omitted, uses the default path set via library_setDefaultPath. Creates a backup before loading.
Inputs: xmlPath.
library_searchC
Search the music library with optional filters for genre, BPM, key, artist, album, year, rating, comments, hasComments, hasGenre. Returns matching tracks.
Inputs: sort, limit, query, offset, +1 more.
library_statsB
Get statistics about the loaded library: track count, genre distribution, BPM range, key distribution.
Inputs: no named parameters.
mutation_historyA
List recent mutations from the audit log. Optional filters: limit (default 50), tool, since (ISO timestamp).
Inputs: tool, limit, since.
mutation_rollbackA
Rollback a mutation by its timestamp ID. Creates a pre-rollback backup. Set dryRun=true to preview without applying.
Inputs: mutationId (required), dryRun.
playlist_addTracksC
Add tracks to a playlist. Creates automatic backup.
Inputs: trackIds (required), playlistName (required), mode.
playlist_buildSmartB
Create a playlist using smart composition rules (energy curve, key progression, BPM range, artist diversity). Creates backup.
Inputs: rules (required), playlistName (required).
playlist_createB
Create a new playlist. Creates automatic backup.
Inputs: name (required), parentName.
playlist_deleteA
Delete a playlist. DESTRUCTIVE - Creates automatic backup. Set force=true to confirm.
Inputs: playlistName (required), force.
playlist_removeTracksA
Remove tracks from a playlist. Creates automatic backup.
Inputs: trackIds (required), playlistName (required).
playlist_renameA
Rename a playlist. Creates automatic backup.
Inputs: newName (required), oldName (required).
rekordbox_exportXmlC
Export library to Rekordbox XML file. Creates automatic backup.
Inputs: outputPath (required).
rekordbox_importXmlB
Import library from Rekordbox XML file. Creates backup before loading.
Inputs: xmlPath (required).
rekordbox_syncC
Import from or export to Rekordbox. Action: "import" (from XML or DB) or "export" (to XML). Creates backup for import operations.
Inputs: action (required), source, destination.
search_keyCompatibleA
Find tracks compatible with a source key using Camelot harmonic mixing rules.
Inputs: key (required), limit, offset.
setlist_analyzeC
Analyze a playlist or list of tracks for energy, harmonic compatibility, gaps, and diversity.
Inputs: track_ids, playlist_name.
setlist_suggestTransitionsB
For each track in a playlist, suggest 2-3 possible next tracks with transition tips and compatibility scores.
Inputs: track_ids, playlist_name, limit_per_track.
track_getB
Get detailed information about a specific track by its ID.
Inputs: trackId (required), include.
track_playlistsB
Get all playlists that contain a specific track.
Inputs: trackId (required).
track_updateA
Update metadata for a single track. Creates automatic backup.
Inputs: trackId (required), updates (required).
track_updateBatchA
Update metadata for multiple tracks in one request. Creates automatic backup.
Inputs: updates (required).
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 33 tools
Several tools overlap significantly: rekordbox_importXml, library_load, and rekordbox_sync's 'import' action all load Rekordbox XML files, while library_search, library_fuzzySearch, and search_keyCompatible all provide search functionality with unclear boundaries. This will likely cause an agent to select the wrong tool.
Naming follows a mixed pattern: some tools use verb_noun (playlist_create, library_search), others use noun_verb (track_get, library_load), and camelCase appears inconsistently (buildSmart, keyCompatible, bpmCacheSet). The arbitrary prefixes (dj_, rekordbox_, library_, track_, setlist_) further break predictability.
At 33 tools, the server is over-granular, exceeding the typical recommended range. Many tools could be consolidated (e.g., rekordbox_importXml and library_load are nearly identical), suggesting the count is bloated rather than well-scoped.
The server covers most core workflows: library loading and search, playlist CRUD, track updates, history analytics, and setlist suggestions. However, notable gaps exist—no track deletion, and the import/export paths are redundant and confusing, which may cause dead ends for agents.
Related MCP Connectors
MCP server for progressive tool usage at any scale (see https://klavis.ai)
One MCP server for all your MCP servers: code mode, per-tool permissions, approvals and audit.
1MCP server for querying and analyzing data from ad platforms, analytics tools, and spreadsheets
MCP server for Producer/Riffusion AI music generation
Related MCP Servers
- AlicenseAqualityDmaintenanceMCP server for rekordbox DJ database access. Provides read-only querying of tracks, playlists, and DJ session history from encrypted rekordbox SQLite databases using pyrekordbox.25130PythonMIT
- AlicenseNot gradedqualityDmaintenanceMCP server for Spotify playlist curation and management. 18 tools for song analysis, smart playlist creation, top tracks analysis, and automated recommendations.1MIT
- AlicenseAqualityCmaintenanceAn MCP server for bulk Spotify operations enabling batch playlist creation, library exports, and large-scale library management with confidence scoring and human-in-the-loop for uncertain matches.332MIT
- AlicenseAqualityDmaintenanceA comprehensive MCP server for rekordbox database management with real-time database access, enabling track search, playlist operations, library analytics, and DJ history retrieval.31MIT