Permissions & tools

Which permissions an assistant can get, all Sonodex tools by area with the permission required, and examples to try out.

ProLast updated:

On this page

PermissionsLink to “Permissions”

PermissionOn the sign-in pageLocal (switch in Sonodex)Allowed
library:readRead libraryEnable local MCP serverAll read-only tools. Always part of the connection.
playlists:writeCreate and edit playlistsAllow creating and editing playlistsSuggestions for playlists, smartlists and sets, deleting, export and import
edit_tracksEdit tracks – changes only after your confirmation in SonodexAssistants may propose changesSuggestions for metadata, covers, tags, cues and beatgrids, duplicates, files and edited audio copies
library:read + switchRead libraryAssistants may control the playerControl the preview player; declined without the switch

Via the account, a tool call that changes something needs both: the permission on the sign-in page and the switch in Sonodex. Without Pro, the tools remain visible, but every call only returns a note about the plan. All tools that change something additionally accept dryRun (preview only) and, where they have a target, expectedVersion; see Confirm changes.

Connection & suggestionsLink to “Connection & suggestions”

ToolWhat it doesPermission
get_capabilitiesCall first: Sonodex version and connection, granted permissions and switches, available tool families with reasons, whether a tool needs your confirmation, editable fields per file format, export formats and limitslibrary:read
list_pending_changesYour own suggestions still awaiting confirmationlibrary:read
get_change_historyCompleted suggestions of your own with timestamps and whether they can still be undonelibrary:read
cancel_pending_changeWithdraws one of your own open suggestions; changes nothingplaylists:write or edit_tracks
undo_operationProposes undoing one of your own applied suggestions in one step, as long as it is the latest changeplaylists:write or edit_tracks

Read & searchLink to “Read & search”

ToolWhat it doesPermission
crateflow_get_statusChecks whether your Sonodex Desktop is online (only via the account)library:read
searchSearches by artist, title, album, genre or taglibrary:read
fetchAll details of a found tracklibrary:read
search_tracksFilters by text, BPM range, key (Camelot such as 8A or musical such as Am) and genre, up to 100 resultslibrary:read
advanced_search_tracksCombined filters: BPM (including half/double tempo), keys or harmonically matching, genres, energy, rating, tags, duration, formats, date, plays, playlist membership, missing fields; sorted and paginated (up to 200), with version per tracklibrary:read
library_overviewLibrary size, BPM range, most common genres and keyslibrary:read
list_playlistsAll playlists, smartlists and sets with track countlibrary:read
get_playlistA playlist’s tracks in their orderlibrary:read
suggest_nextTracks that fit well after a track (key, tempo, energy, genre)library:read

Metadata & coverLink to “Metadata & cover”

ToolWhat it doesPermission
get_track_metadataAll metadata of a track: library fields, the file’s tags, which fields the format can store, whether there is a cover (small preview if you wish)library:read
preview_track_editProposes changes to a track, optionally with a cover; returns the exact previewedit_tracks
update_track_metadataQueries the status of a suggestion and shows the dialogue again; does not apply anything itselfedit_tracks
upload_cover_artUploads a cover image (JPEG or PNG, up to 8 MB and 16 megapixels; via ChatGPT or the account about 700 KB); does not change any track yetedit_tracks
set_track_coverProposes an uploaded cover for up to 500 tracksedit_tracks
remove_track_coverProposes removing the cover of up to 500 tracksedit_tracks
batch_edit_tracksProposes metadata changes for up to 500 tracks as one suggestionedit_tracks
revert_track_editProposes undoing an applied suggestion; values changed again in the meantime remainedit_tracks
get_change_statusStatus of a suggestion: awaiting_confirmation, applied, cancelled, expired, stale or failedlibrary:read

Set builder & transitionsLink to “Set builder & transitions”

ToolWhat it doesPermission
build_setBuilds a set for a target length (5 to 720 minutes): tempo progression from start to end BPM, energy curve, harmonic by default (Camelot), optionally genres, source playlist, exclusions and required tracks; with roles, start times and notes for each transition. Saves nothing.library:read
analyze_transitionRates a transition from 0 to 100 by BPM (including half/double), key, energy and genre, with a mixing tiplibrary:read
analyze_set_transitionsRates every transition in a playlist or track list, names the weakest ones and replacement or bridge trackslibrary:read
optimize_track_orderProposes an order with better transitions, with the score before and after; opener and closer can be fixed. Saves nothing.library:read
analyze_dj_setAnalyses a set (playlist or up to 500 tracks) as played: real length with transitions (default 16 bars), start time per track, BPM, key and energy curve, difficult transitions, repeats, missing metadata and recommendationslibrary:read
save_set_as_playlistProposes saving a set (2 to 500 tracks) in Sonodex, with total duration and transition scoresplaylists:write

PlaylistsLink to “Playlists”

ToolWhat it doesPermission
create_playlistProposes a new playlist from track IDsplaylists:write
add_tracks_to_playlistProposes inserting tracks at a position (default: at the end); existing ones are skippedplaylists:write
remove_tracks_from_playlistProposes removing tracks from a playlist; they stay in the libraryplaylists:write
reorder_playlistProposes a new, complete orderplaylists:write
rename_playlistProposes a new name for a playlist, smartlist or setplaylists:write
duplicate_playlistProposes a copy in the same folder (default name “<Name> (Copy)”)playlists:write
optimize_playlistProposes the order with the best transitions for a playlist with 3 to 250 tracksplaylists:write
delete_playlistProposes deleting a playlist, smartlist or set; in the dialogue the extra tick “Confirm playlist deletion” is also required. Tracks stay in the library; one undo stepplaylists:write

Smart playlistsLink to “Smart playlists”

ToolWhat it doesPermission
get_smart_playlist_rulesA smartlist’s rules in words and in the rule format, with match count and the first 20 trackslibrary:read
create_smart_playlistProposes a new smartlist from rules; the preview shows how many tracks matchplaylists:write
update_smart_playlistProposes new rules and/or a new name; the new rules replace all previous onesplaylists:write

The rule format: match “all” (default, all criteria) or “any” (one is enough), plus bpm, energy (1–10) and year as a range with min/max, genres (exact names), keys (Camelot, Open Key or musical notation), compatibleWith (a key and its harmonic Camelot neighbours), tags with any, all or none and ratingMin (1–5). With “all”, at most five values per list.

Example of smartlist rules
{"bpm": {"min": 124, "max": 128}, "genres": ["House", "Tech House"], "energy": {"min": 6}, "tags": {"none": ["Warmup"]}}

Library checkLink to “Library check”

ToolWhat it doesPermission
audit_libraryHealth check with figures and first findings per category: duplicates, missing metadata and covers, suspicious BPM, inconsistent genres, missing files, formats DJ devices may not load, missing key, broken text; each with a suggested fixlibrary:read
find_duplicate_tracksDuplicate groups by audio, fingerprint or artist/title/version with the same length, with a recommendation on which copy to keeplibrary:read
find_missing_metadataTracks with empty fields and a count per fieldlibrary:read
validate_track_filesChecks files now: present, readable, not empty, size changed, content matches the extension; changes nothinglibrary:read

Statistics & historyLink to “Statistics & history”

ToolWhat it doesPermission
get_track_statsEverything stored about a track’s use: play count, appearances in saved sets, playlists, frequent neighbourslibrary:read
get_play_historyStored plays from set snapshots and imported Rekordbox histories, newest firstlibrary:read
analyze_library_usageMost and least played tracks, unused tracks, frequent pairs and distributions by genre, BPM, key and energylibrary:read
get_set_historySaved sets and gigs with date, venue, rating, notes and track listlibrary:read

TagsLink to “Tags”

ToolWhat it doesPermission
suggest_track_tagsProposes tags from the DJ vocabulary, each with confidence and reason; does not repeat existing tagslibrary:read
analyze_track_moodMood sketch of a track from metadata: energy, major/minor, intensity, vocals, energy curve, drops; not a listening testlibrary:read
list_untagged_tracksTracks without tags or without a tag from the DJ vocabularylibrary:read
batch_tag_tracksProposes adding or removing tags for up to 500 tracks; other tags remainedit_tracks

The DJ vocabulary has 12 tags: Warmup, Buildup, Peak Time, Closing, Euphoric, Dark, Bouncy, Vocal, Driving, Melodic, Aggressive, High Energy. You can add these or tags your library already uses.

DJ preparationLink to “DJ preparation”

ToolWhat it doesPermission
analyze_track_audioStored analysis with origin and confidence: BPM, key, energy, quality values, beats, sections, energy curve, waveform; loudness (LUFS, loudness range, true peak) is measured in the background when neededlibrary:read
get_analysis_jobStatus of a background measurement (loudness, beatgrid check); waits up to 20 seconds if you wishlibrary:read
get_track_cue_pointsAll cues of a track: hot cues A–P, memory cues and loops with position, bar, label, colour and originlibrary:read
generate_cue_point_suggestionsCue suggestions for up to 20 tracks with reasons, at section starts and bars of the beatgrid or via cue template and cue profilelibrary:read
get_track_beatgridThe stored beatgrid: tempo, first beat and downbeat, tempo sections, protected or not, originlibrary:read
analyze_beatgridMeasures how well the grid fits: offset, drift, half or double tempo, hints about bar 1library:read
analyze_transition_detailPlans a transition: mix-out and mix-in ranges with phrases, overlap, tempo adjustment and transition type with reasonslibrary:read
prepare_track_for_djingPreparation report as a checklist for a track; read-onlylibrary:read
propose_track_preparationProposes the cues and the measured grid correction from the report as a single shared suggestionedit_tracks
add_cue_pointProposes a new hot cue, memory cue or loop, at a time or a baredit_tracks
update_cue_pointProposes moving or changing a cueedit_tracks
delete_cue_pointProposes deleting a cueedit_tracks
apply_cue_suggestionsTurns cue suggestions (all or some) into a suggestion; existing cues are keptedit_tracks
update_track_beatgridProposes a beatgrid change (tempo, first beat, downbeat, beat count, tempo sections); protected grids are declinededit_tracks

The workflow is described in Preparing tracks with ChatGPT.

Library maintenance & filesLink to “Library maintenance & files”

ToolWhat it doesPermission
compare_duplicate_tracksCompares 2 to 10 tracks side by side with a verdict per pair and a recommendation on which copy to keep; other versions never count as duplicateslibrary:read
check_missing_filesChecks which audio files are missing or unreadable, up to 500 tracks per calllibrary:read
locate_track_fileWhere a track’s file is (relative to the library), whether it exists, size and formatlibrary:read
resolve_duplicate_tracksProposes merging duplicates: playlists point to the kept track, the copies are archived, never deletededit_tracks
relink_missing_trackSearches for a missing file in library and watched folders and proposes relinking itedit_tracks
rename_track_fileProposes renaming audio files using a templateedit_tracks
move_track_fileProposes moving audio files to a folder inside the library folderedit_tracks
export_playlistProposes exporting playlists as M3U8, CSV, JSON or HTML to the remembered export folderplaylists:write
export_track_metadataProposes exporting the metadata of tracks or a playlist as CSV or JSONplaylists:write
import_playlistProposes a new playlist from M3U/M3U8, CSV or text, matched via the Track Matcherplaylists:write

The workflow is described in Maintaining your library with ChatGPT.

PlayerLink to “Player”

ToolWhat it doesPermission
get_playback_statusStatus of the preview player and whether assistants are currently allowed to control it; works without the switchlibrary:read
load_trackLoads a track paused into the playerlibrary:read + switch
play_trackStarts playback, with a different track if you wishlibrary:read + switch
pause_trackPauses playbacklibrary:read + switch
seek_trackJumps to a position in the loaded tracklibrary:read + switch
set_preview_volumePlayer volume (0 to 1)library:read + switch
audition_transitionPlays the end of one track and then the start of the next, without a crossfadelibrary:read + switch

“Switch” means: “Allow assistants to control the player” (off by default). Locked while a dialogue is open; at most 30 control commands per minute.

Audio editing & stemsLink to “Audio editing & stems”

ToolWhat it doesPermission
trim_audioRenders a shortened copy with optional fades, cut on beatsedit_tracks
adjust_audio_tempoRenders a copy at the new tempo (factor 0.8 to 1.25), pitch is keptedit_tracks
transpose_audioRenders a copy shifted by −6 to +6 semitones, tempo is keptedit_tracks
normalize_audioRenders a copy normalised to −14 to −6 LUFSedit_tracks
render_audio_editRenders several of these steps in one copyedit_tracks
get_render_jobStatus of a render; when finished, with the ID of the suggestionlibrary:read
cancel_render_jobCancels your own running render without asking; the partial file is deletededit_tracks
get_available_stemsLists stem files already on disk (file names only)library:read
separate_audio_stemsNot available: always responds with unsupported_operation (reason stem_engine_missing)edit_tracks
export_audio_stemsNot available: always responds with unsupported_operation (reason stem_engine_missing)edit_tracks

Every render ends in a suggestion with a preview; on confirmation, a new file is added as a new track and the original stays unchanged. More under Player & audio editing.

Cue workflows (local only)Link to “Cue workflows (local only)”

workflow_start, workflow_status, workflow_propose and workflow_preview plan cues for up to 200 tracks with a template and change nothing; workflow_apply and workflow_undo apply or undo a checked cue suggestion, only with “Allow applying cue suggestions”. See Local MCP server.

ExamplesLink to “Examples”

Read & search
“Which tracks between 124 and 128 BPM in 8A do I have?”
Set builder
“Build me a 60-minute hard trance set from 145 to 160 BPM, harmonic, and save it as a playlist.” The assistant builds the set, checks the transitions, shows it to you and, once you give the OK, proposes saving it; you confirm in Sonodex.
Transitions
“Check the transitions in my playlist ‘Saturday’ and suggest a better order.”
Playlists
“Insert these five tracks at position 3 of the playlist ‘Warm-up’.”
Smart playlists
“Create a smartlist: 124 to 128 BPM, House or Tech House, energy 6 or higher, without the tag Warmup.”
Metadata & cover
“Set the label to ‘Night Drive Records’ for all tracks in the playlist ‘Promo October’.” or “Use this image as the cover for the three versions of ‘Glue’.”
Library check
“Check my library for duplicates, missing covers and suspicious BPM.”
Statistics
“Which tracks have I played most often in the last three months?”
Tags
“Suggest tags for my untagged tracks and assign them if I agree.”
DJ preparation
“Check the beatgrid of ‘Coastline’ and set hot cues on the intro, drop and outro.” or “How do I mix from ‘Warehouse Jack’ into ‘Coastline’?”
Set analysis
“How long does my playlist ‘Saturday’ really run, and where are the hardest transitions?”
Library maintenance
“Merge the duplicates of ‘Glue’.” or “Which files are missing, and can you find them again?”
Export & import
“Export the playlist ‘Saturday’ as M3U8.” or “Create a playlist from this track list.”
Player
“Play me the transition from ‘Velvet Room’ into ‘Coastline’.”
Audio editing
“Make an intro edit of ‘Glasshouse’ and normalise it to −9 LUFS.”
Proposals
“Which changes are still waiting for me? Withdraw the last suggestion.”

Something missing or wrong? Let us know. The app interface is available in English and German.

Original Sonodex app · Demo library