Critical-risk tools in Spotify
29 of the 538 tools in Spotify are classified as critical risk. This page profiles those tools specifically, with recommended policy actions and the attack patterns that target them.
Every operation listed below is an action PolicyLayer recommends controlling at the transport layer. Open any tool to see the full profile, risk score, and YAML policy snippet.
Tools at critical risk
-
archive_played_episodesDestructiveRemove fully-played episodes from your episode library in bulk (checks resume_point.fully_played). Batch DELETE /me/library; archives over 50 episodes require elicitation confir...
-
cancel_wind_downDestructiveCancel the in-process wind-down ramp, if one is running
-
clean_backup_artifactsDestructiveDelete the NON-library files sharing SPOTIFY_MCP_BACKUP_DIR with your library backups: closed listening sessions
-
delete_backupDestructiveDelete one library backup file (and its metadata sidecar) from SPOTIFY_MCP_BACKUP_DIR. Irreversible — the library rows in the file cannot be recovered from anywhere else. Destru...
-
delete_playback_bookmarkDestructiveDelete one saved playback position — a capture_playback_position bookmark, an exhaust2 checkpoint or a playback-ext state, whichever it came from. Commits by default — pass dry_...
-
delete_playlist_snapshotDestructiveDelete one local playlist snapshot file; dry_run=true (default) only reports what would be removed Snapshot guide: take_playlist_snapshot (create), list_saved_snapshots (list), ...
-
delete_sceneDestructiveDelete a saved playback scene from the local sidecar
-
playlist_dedupe_advancedDestructiveRemove duplicate items from a playlist under the
-
playlist_exclude_artistsDestructiveRemove every track by one or more artists from a playlist — the
-
playlist_keep_artistDestructiveInverse filter: keep ONLY tracks by one artist in a playlist and drop everything else. The
-
playlist_keep_onlyDestructiveInverse removal: keep only matching items (by uri / artist / type / query) and drop
-
playlist_remove_artistDestructiveRemove every track by one artist from a playlist. The reference is matched against every credited
-
playlist_strip_episodesDestructivePurify a playlist after collab drift: strip every podcast EPISODE (or every TRACK) with one
-
playlist_subtractDestructiveRemove tracks of B..N from A by REWRITING A: one PUT replaces every row with the ones that survive, so any row of A absent from the union is DELETED, and the rows that remain ar...
-
playlist_trimDestructiveTrim playlist to N items (keep first/last/random) by OVERWRITING the playlist: every row outside the kept set is DELETED, and the kept rows are re-written in the new order. An o...
-
prune_old_snapshotsDestructiveDelete old local snapshots, keeping the newest N per playlist and optionally dropping those older than a cutoff; dry_run=true (default) only reports what would go Snapshot guide...
-
remove_duplicate_playlist_itemsDestructiveRemove duplicate items from a playlist: keeps the first occurrence of each track and removes
-
remove_from_libraryDestructivePreferred. Accepts the widest URI mix (track, album, episode, show, audiobook, user, playlist) in one request. Remove one or more items from the user
-
remove_from_library_by_playlistDestructiveRemove from Liked Songs any tracks that also appear in a given playlist. Quota: 2 GETs + DELETE (chunked). PREVIEWS BY DEFAULT — pass dry_run=false to commit. Removing 10+ saved...
-
remove_from_playlistDestructiveRemove tracks or episodes from a playlist. Max 100 entries per call.
-
remove_playlist_rangeDestructiveDelete a positional range of a playlist (0-based start, EXCLUSIVE end; negative values
-
remove_saved_episodeDestructiveRemove episodes from your library via DELETE /me/library (the Feb 2026 replacement for the removed DELETE /me/episodes) — removal verb: also see remove_saved_shows (shows), dele...
-
remove_saved_showsDestructiveBulk-remove shows from your library via DELETE /me/library (the Feb 2026 replacement for the removed DELETE /me/shows) — removal verb family: also see unsubscribe_from_show (sin...
-
remove_unavailable_playlist_itemsDestructiveRemove unavailable (null track) rows from a playlist — actionable companion to playlist_health_check. Targets only unavailable occurrences by validated position, highest first, ...
-
undo_last_mutationDestructiveUndo the most recent reversible mutation (receipt FIFO). Same inversion semantics as undo_mutation: add/save → remove, removal → re-add. Executing needs confirmation and is refu...
-
unfollow_playlistDestructiveUnfollow a playlist — remove it from your Spotify library — via DELETE /me/library. Always asks before writing unless SPOTIFY_MCP_CONFIRM=never.
-
unpin_playlistDestructiveDEPRECATED, use unfollow_playlist. This tool never unpinned anything; it has always removed the playlist from your Spotify library via DELETE /me/library.
-
unsave_orphan_tracksDestructiveFind saved tracks that appear in no playlist (orphans) and optionally unsave them. Quota: walks library + all playlists (capped). PREVIEWS BY DEFAULT — pass dry_run=false to com...
-
unsubscribe_from_showDestructiveRemove ONE saved show from your library via DELETE /me/library (the Feb 2026 replacement for the removed DELETE /me/shows) — removal verb: also see remove_saved_shows (bulk), de...
Attacks that target this class
Critical-risk tools in any server share these documented attack patterns. Each links to the full case and the defensive policy.