rekordbox-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Server capabilities have not been inspected yet.
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| search_tracksB | Search tracks in the rekordbox database. Args: query: General search query (searches across multiple fields) artist: Filter by artist name title: Filter by track title genre: Filter by genre key: Filter by musical key (e.g., "5A", "12B") bpm_min: Minimum BPM bpm_max: Maximum BPM rating_min: Minimum rating (0-5) limit: Maximum number of results to return Returns: List of matching tracks with metadata |
| get_track_detailsB | Get detailed information about a specific track. Args: track_id: The unique track identifier Returns: Detailed track information including metadata, cue points, and play history |
| get_tracks_by_keyC | Get all tracks in a specific musical key. Args: key: Musical key (e.g., "5A", "12B") Returns: List of tracks in the specified key |
| get_tracks_by_bpm_rangeB | Get tracks within a specific BPM range. Args: bpm_min: Minimum BPM bpm_max: Maximum BPM Returns: List of tracks within the BPM range |
| get_most_played_tracksC | Get the most played tracks in the library. Args: limit: Maximum number of tracks to return Returns: List of most played tracks |
| get_top_rated_tracksB | Get the highest rated tracks in the library. Args: limit: Maximum number of tracks to return Returns: List of top rated tracks |
| get_unplayed_tracksB | Get tracks that have never been played. Args: limit: Maximum number of tracks to return Returns: List of unplayed tracks |
| get_track_file_pathB | Get the file system path for a specific track. Args: track_id: The unique track identifier Returns: Dictionary containing file path information |
| search_tracks_by_filenameB | Search for tracks by filename. Args: filename: Filename to search for (partial match) Returns: List of tracks matching the filename |
| analyze_libraryB | Analyze library with grouping and aggregation. Args: group_by: Field to group by (genre, key, year, artist, rating) aggregate_by: Aggregation method (count, playCount, totalTime) top_n: Number of top results to return Returns: Analysis results |
| validate_track_idsC | Validate a list of track IDs and show which are valid/invalid. Args: track_ids: List of track IDs to validate Returns: Validation results with valid and invalid IDs |
| get_playlistsA | Get all playlists from the rekordbox database. Returns: List of playlists with metadata |
| get_playlist_tracksC | Get all tracks in a specific playlist. Args: playlist_id: The unique playlist identifier Returns: List of tracks in the playlist |
| get_library_statsC | Get comprehensive library statistics. Returns: Dictionary containing various library statistics |
| connect_databaseB | Connect to the rekordbox database. Args: database_path: Optional path to database directory. If not provided, auto-detection is used. Returns: Connection status message |
| get_history_sessionsB | Get DJ history sessions from rekordbox. Args: include_folders: Whether to include folder entries (years/months) limit: Maximum number of sessions to return Returns: List of history sessions with metadata |
| get_session_tracksB | Get all tracks from a specific DJ history session. Args: session_id: The session's unique identifier Returns: List of tracks in the session with performance context |
| get_recent_sessionsB | Get recent DJ history sessions within the specified number of days. Args: days: Number of days to look back (default: 30) Returns: List of recent history sessions |
| get_history_statsB | Get comprehensive statistics about DJ history sessions. Returns: Statistics about all history sessions including totals and trends |
| search_history_sessionsB | Search DJ history sessions with various filters. Args: query: Search query for session names year: Filter by year (e.g., "2025") month: Filter by month (e.g., "08" for August) min_tracks: Minimum number of tracks in session limit: Maximum number of results Returns: List of matching history sessions |
| create_playlistA | Create a new playlist in rekordbox. ⚠️ CAUTION: This modifies your rekordbox database! Args: name: Name for the new playlist parent_id: Optional parent folder ID (omit for root level) Returns: Information about the created playlist |
| add_tracks_to_playlistA | Add multiple tracks to an existing playlist in one operation. ⚠️ CAUTION: This modifies your rekordbox database! Args: playlist_id: ID of the playlist to modify track_ids: List of track IDs to add Returns: Detailed results of the batch operation |
| add_track_to_playlistA | Add a track to an existing playlist. ⚠️ CAUTION: This modifies your rekordbox database! Args: playlist_id: ID of the playlist to modify track_id: ID of the track to add Returns: Result of the operation |
| remove_track_from_playlistA | Remove a track from a playlist. ⚠️ CAUTION: This modifies your rekordbox database! Args: playlist_id: ID of the playlist to modify track_id: ID of the track to remove Returns: Result of the operation |
| delete_playlistA | Delete a playlist from rekordbox. ⚠️ DANGER: This permanently deletes a playlist and cannot be undone! Args: playlist_id: ID of the playlist to delete Returns: Result of the operation |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| database_status | Get the current database connection status. |
TDQS
Scored across 25 tools
Most tools have distinct purposes with clear boundaries, such as playlist management vs. track retrieval vs. analysis. However, some overlap exists between 'add_tracks_to_playlist' and 'add_track_to_playlist', which could cause confusion about when to use the batch vs. single operation, and between 'get_history_sessions' and 'get_recent_sessions', which differ only in time scope. Descriptions help clarify these distinctions, but the overlap is noticeable.
Tool names follow a highly consistent verb_noun pattern throughout, using snake_case uniformly. Examples include 'create_playlist', 'delete_playlist', 'get_track_details', and 'search_tracks'. This predictability makes it easy for agents to understand and navigate the toolset without confusion from mixed conventions.
With 25 tools, the count is borderline high for a rekordbox management server, potentially feeling heavy. While many tools are justified for comprehensive library and playlist operations, some could be consolidated (e.g., the two add-to-playlist tools) to reduce complexity. It's not extreme, but it approaches the upper limit of what's manageable.
The toolset provides complete coverage for rekordbox management, including CRUD for playlists (create, get, delete, add/remove tracks), extensive track retrieval (by BPM, key, rating, etc.), history session analysis, library statistics, and search capabilities. There are no obvious gaps; agents can perform all core workflows from database connection to detailed track manipulation and analysis.