Skip to content

Classification & Staging


get_genre_taxonomy no params

Section titled “get_genre_taxonomy ”

Returns the canonical genre list and alias mappings. Use this tool as the authoritative current taxonomy rather than copying a genre count into clients.


Analyze genres in your library and suggest normalizations to the canonical taxonomy.

Parameter Type Required Description
min_count integer Only include genres with at least this many tracks (default: 1)
stage_aliases boolean When true, auto-stage all alias normalizations in one call

Returns three sections:

  • alias — known mappings from your genre strings to canonical genres (e.g., “Tech House” → “Tech House”)
  • unknown — genres that don’t match any alias or canonical entry
  • canonical — genres that already match the taxonomy exactly

Apply the genre decision tree to ungenred tracks using cached enrichment and audio evidence. Returns recommendations grouped by confidence level (high/medium/low/insufficient). Cache-only — never triggers external calls.

Parameter Type Required Values Item values Description
track_ids string[] Specific track IDs to classify
playlist_id string Classify tracks in this playlist
max_tracks integer Max tracks (default: 50, max: 200)
offset integer Skip first N tracks for pagination
genre_overrides array Remap genre strings before scoring (e.g., [{"from": "Melodic House & Techno", "to": "Deep Techno"}])
format string ["full", "compact", "summary", "dispatch"] Output format ("full" by default)
auto_stage string[] ["high", "medium", "low", "insufficient"] Auto-stage results at these confidence levels

Also accepts shared search filters. Enforces has_genre=false when using filters (bypassed when track_ids are provided explicitly).


Verify existing genre tags against enrichment and audio evidence. Returns only conflicts and manual-review tracks — confirmed tracks are counted in the summary but omitted. Cache-only.

Parameter Type Required Description
track_ids string[] Specific track IDs to audit
playlist_id string Audit tracks in this playlist
max_tracks integer Max tracks (default: 50, max: 200)
offset integer Skip first N tracks for pagination
include_confirmed boolean Include confirmed tracks in results (default: false)

Also accepts shared search filters. Enforces has_genre=true when using filters (bypassed when track_ids are provided explicitly).


Report per-genre readiness for audio-profile calibration from the verified playlist. Read-only — checks canonical genre counts, cached audio-feature availability, and stored prototype presence without recalibrating.

Parameter Type Required Description
playlist string Playlist containing ear-verified tracks (default: genre_verified)

Use this before calibrate_audio_profiles to see which genres are ready, which need more analyzed tracks, and which stored profiles no longer appear in the current verified playlist.


Build Fisher-weighted audio prototypes from a playlist of ear-verified tracks and store them in the internal SQLite cache. These prototypes provide supplementary votes during classification.

Parameter Type Required Description
playlist string Playlist containing ear-verified tracks (default: genre_verified)

Run calibration_coverage first. Calibration skips tracks with missing genre tags, unknown genres, or missing cached audio features, and only builds a prototype for genres with enough verified audio.


Auto-fill empty labels from enrichment caches (Discogs, MusicBrainz, Bandcamp, Beatport). Stages non-conflicting labels automatically; reports conflicts where the current label disagrees with enrichment.

Parameter Type Required Description
dry_run boolean Preview without staging (default: false)
auto_enrich boolean Automatically enrich uncached tracks via Bandcamp before backfilling (default: false)
max_conflicts integer Cap on conflict entries in the response (default: 50)
conflict_offset integer Offset into the stable ordered conflict list (default: 0)
Field Type Required Description
summary object yes Full scan and label-fill counts
staged integer yes Changes staged by this call
total_pending integer yes Total changes currently staged in memory
dry_run boolean yes Whether this call avoided staging
conflicts array yes Conflict entries returned on this page
conflict_page object yes Conflict continuation metadata
conflicts_truncated boolean Legacy alias present and true only when conflict_page.has_more is true
auto_enriched integer Bandcamp hits when auto_enrich=true
research_queue object Remaining unlabeled-track research summary
Field Type Required Description
total integer yes Total conflicts in the stable ordered list
returned integer yes Conflict entries emitted by this page
offset integer yes Requested conflict offset
next_offset integer | null yes Next conflict offset when more remain; null at the end
has_more boolean yes Whether another conflict page remains

Run the intended mutating or auto-enriching pass once. Retrieve later conflict pages with dry_run=true, auto_enrich=false, and conflict_offset=conflict_page.next_offset; this avoids repeating staging or provider side effects. A zero page size and an offset beyond the end are terminal no-ops.


Auto-fill missing years (year=0) from file tags, folder paths, and enrichment cache (Discogs/Beatport/MusicBrainz/Bandcamp). Stages non-conflicting years automatically; reports conflicts where the current year disagrees with enrichment.

Parameter Type Required Description
dry_run boolean Preview without staging (default: false)
auto_enrich boolean Automatically enrich remaining year-zero tracks via Bandcamp and MusicBrainz before re-scanning (default: false)

Auto-fill empty album names from file tags, folder paths, and enrichment cache (Bandcamp/Discogs). Only fills tracks with no album set. Skips noise entries where the album matches the track title or artist name.

Parameter Type Required Description
dry_run boolean Preview without staging (default: false)
auto_enrich boolean Automatically enrich uncached tracks via Bandcamp before backfilling (default: false)

update_tracks ──> preview_changes ──> write_xml ──> verify in XML view ──> import
clear_changes (undo)

Stage changes to track metadata. Held in memory until exported or cleared.

Parameter Type Required Description
changes array yes Array of track change objects

Each change object:

Field Type Required Description
track_id string yes Track ID
genre string New genre
comments string New comments
rating integer Star rating (1-5)
color string Color name
label string Record label
year integer Release year
album string Album name

You can stage changes for multiple tracks in one call. Calling update_tracks again for the same track merges fields — only the specified fields are overwritten, existing staged fields are preserved.


Preview all staged changes, showing a diff from the current Rekordbox state.

Parameter Type Required Values Description
track_ids string[] Filter to specific track IDs (omit to show all staged; an empty array matches nothing)
format string ["full", "summary"] "full" (default) or "summary" (aggregate counts by field and genre)

Export staged changes to Rekordbox-compatible XML. Optionally includes playlists.

Parameter Type Required Description
output_path string Output path (default: ~/reklawdbox-exports/reklawdbox-{timestamp}.xml)
playlists array Optional playlist exports
skip_label_gate boolean Set to true to acknowledge that label research is complete and bypass the label gate

Each playlist object:

Field Type Required Description
name string yes Playlist name
track_ids string[] yes Track IDs in playlist order

Clear staged changes, either entirely or selectively by track or field.

Parameter Type Required Description
track_ids string[] Track IDs to clear (omit to clear all; an empty array clears nothing)
fields string[] Fields to unstage: "genre", "comments", "rating", "color", "label", "year", "album" (omit to clear all fields on matched tracks)