Library & Data
Library tools
Section titled “Library tools”read_library no params
Section titled “read_library ”Returns a library summary: track count, genre distribution, average BPM, key distribution, and rating breakdown.
search_tracks
Section titled “search_tracks”Search and filter tracks. All parameters are optional — combine any set of shared search filters with the local options below.
| Parameter | Type | Required | Description |
|---|---|---|---|
playlist |
string | Filter by playlist ID | |
include_samples |
boolean | Include Rekordbox factory samples (default: false) |
|
limit |
integer | Max results (default: 50, max: 200) |
|
offset |
integer | Skip first N results for pagination |
Factory sample tracks are excluded by default. Set include_samples: true to include them.
get_track
Section titled “get_track”Get full details for a single track by ID. Returns Rekordbox metadata only — use resolve_track_data for enrichment and audio analysis data.
| Parameter | Type | Required | Description |
|---|---|---|---|
track_id |
string | yes | Track ID |
get_playlists no params
Section titled “get_playlists ”List all playlists with track counts. Returns the full playlist tree including folders and smart playlists.
get_playlist_tracks
Section titled “get_playlist_tracks”List tracks in a specific playlist, in playlist order.
| Parameter | Type | Required | Description |
|---|---|---|---|
playlist_id |
string | yes | Playlist ID |
limit |
integer | Max results (default: 200) |
Play history tools
Section titled “Play history tools”get_sessions
Section titled “get_sessions”List recent DJ sessions from Rekordbox play history. Returns session ID, name, date, track count, and estimated wall-clock duration.
| Parameter | Type | Required | Description |
|---|---|---|---|
limit |
integer | Max sessions to return (default: 20, max: 100) |
|
after |
string | Only sessions on or after this ISO date (e.g., "2024-01-01") |
Duration is estimated from the timestamp span of tracks in the session plus the last track’s length. Returns null for single-track sessions.
get_session_tracks
Section titled “get_session_tracks”Get the ordered track list for a specific DJ session. Each track includes a played_at timestamp showing when it was loaded during the session.
| Parameter | Type | Required | Description |
|---|---|---|---|
session_id |
string | yes | Session ID from get_sessions |
get_play_stats
Section titled “get_play_stats”Get per-track play statistics scoped by shared search filters. Shows play counts, last played dates, and which sessions each track appeared in.
| Parameter | Type | Required | Description |
|---|---|---|---|
include_unplayed |
boolean | Also return tracks matching filters that have never been played (default: false) |
|
limit |
integer | Max results (default: 200, max: 500) |
Results are ordered by play count descending. When include_unplayed is true, unplayed tracks are appended after played tracks (ordered by title).
Data resolution tools
Section titled “Data resolution tools”Return locally-cached data without external API calls or analysis.
resolve_track_data
Section titled “resolve_track_data”Return Rekordbox metadata, cached Discogs and Beatport enrichment, current Stratum and optional current Essentia analysis, staged changes, and genre taxonomy mappings for one track. It does not include cached Bandcamp or MusicBrainz payloads.
| Parameter | Type | Required | Description |
|---|---|---|---|
track_id |
string | yes | Track ID |
resolve_tracks_data
Section titled “resolve_tracks_data”Batch version of resolve_track_data, with the same provider and freshness
boundaries. Accepts shared search filters
to scope which tracks to resolve.
| Parameter | Type | Required | Values | Description |
|---|---|---|---|---|
track_ids |
string[] | Specific track IDs (highest priority selector) | ||
playlist_id |
string | Resolve tracks in this playlist | ||
max_tracks |
integer | Max tracks to return (default: 50) |
||
format |
string | ["full", "classification"] |
"full" (default) or "classification" |
The "classification" format returns a compact payload (~400-500 bytes/track vs 2-4KB) with only genre classification fields: mapped Discogs genres/styles, Beatport genre, audio features, and completeness flags.
cache_coverage
Section titled “cache_coverage”Report cache completeness for a track scope. Accepts shared search filters.
| Parameter | Type | Required | Values | Description |
|---|---|---|---|---|
track_ids |
string[] | Specific track IDs | ||
playlist_id |
string | Check tracks in this playlist | ||
max_tracks |
integer | Max tracks to check (default: unbounded) |
Returns exactly four coverage entries for the selected scope:
| Entry | What coverage means |
|---|---|
stratum_dsp |
Fresh built-in audio-analysis cache rows |
essentia |
Fresh optional Essentia cache rows, plus whether Essentia is installed |
discogs |
searched and has_result counts for Discogs enrichment |
beatport |
searched and has_result counts for Beatport enrichment |
Bandcamp and MusicBrainz are targeted metadata paths and are not reported by this tool.
The gap counts use the same scope: no_audio_analysis means no fresh Stratum
row, no_enrichment means neither Discogs nor Beatport has an actual result,
and no_data_at_all means neither audio analyzer nor either metadata provider
has usable data.
