High-risk tools in Spotify
26 of the 538 tools in Spotify are classified as high 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 high risk
-
apply_sceneExecuteApply a saved scene: resolve its device hint, transfer playback, then set volume/shuffle/repeat and start the saved context (in that order; missing targets are skipped)
-
continue_lastExecuteResume the most recent saved playback position without knowing its name (newest by saved_at across the shared position store — a checkpoint_playback, a capture_playback_position...
-
episode_resumeExecuteJump straight back to the newest (or a named) episode bookmark: transfer + play with position + seek (2-3 writes). Pairs with episode_bookmark. Quota: 2-3 writes.
-
jump_to_chapterExecuteStart playing a specific audiobook chapter (1-based number) by resuming the audiobook context at that chapter. Use dry_run to preview without touching playback.
-
pauseExecutePause playback on the active device
-
pause_everywhereExecutePause every live Connect device (attempts PUT /me/player/pause per non-restricted device) — kills the
-
playExecuteStart or resume playback. Optionally target specific content.
-
play_atExecuteStart playback at a specific position — accepts H:MM:SS / MM:SS / seconds string or position_ms. Wraps PUT /me/player/play with offset/position_ms. Quota: 1 write.
-
play_from_searchExecuteSearch Spotify by name and immediately play the best match. Works for songs and podcast episodes — no URI needed.
-
play_onExecutePlay a context/uris/search query on a named device (resolves device name → id via GET /me/player/devices, then PUT /me/player/play). Quota: 1 read + 1 write (+1 if volume/shuffl...
-
queue_playlistExecuteQueue all tracks from a playlist/album/artist URI in order (cap 200). mode=append adds to end; mode=replace is not supported — Spotify has no queue-clear endpoint.
-
queue_replace_via_playlistExecuteHonest no-clear-endpoint workaround to replace the live queue: snapshot it, optionally filter (drop dupes / keep only given artists), build a playlist, and start it as the playb...
-
restore_playback_stateExecuteRestore a saved playback state snapshot: replays the saved item at its offset inside the saved context (album/playlist) when one was captured, then shuffle/repeat, then verifies...
-
resume_playback_positionExecuteResume a captured playback bookmark: transfer playback to the bookmarked device and seek to the bookmarked position. Commits by default — pass dry_run=true to preview.
-
schedule_wind_downExecutePreview or start a volume wind-down: absolute-minute volume steps, then pause. Set dry_run to preview without replacing or cancelling an active timer.
-
search_rerunExecuteRe-execute a stored search, clamping stale limits.
-
seekExecuteSeek to a position in the current track
-
seek_relativeExecuteRelative seek — forward/back by delta_ms from current progress (GET /me/player then PUT /me/player/seek, clamped to [0, duration]). Quota: 1 read + 1 write.
-
set_volumeExecuteSet playback volume on one device, on a selection of devices, or across every live device.
-
skip_nExecuteAdvance N tracks at once via N sequential POST /me/player/next calls. Quota: N writes (1-20, one call per skip — Spotify has no batch-skip endpoint).
-
skip_nextExecuteSkip to the next track in the queue or context.
-
skip_previousExecuteSkip to the previous track. If more than 3 seconds in, restarts the current track first.
-
sleep_timerExecuteKeep music playing and auto-pause after N minutes: registers an in-process timer (cancel-safe; calling again replaces it) that fires PUT /me/player/pause on expiry. No fade — di...
-
start_podcast_sessionExecutePlan a podcast session (see plan_podcast_session) and start it on a device. Limitation: Spotify cannot apply resume offsets when queueing — only the first episode can start at i...
-
transfer_playbackExecuteMove playback to a different Spotify Connect device, named by exact id, by the label you gave it, or by a case-insensitive name substring. A plain transfer restarts the track at...
-
volume_rampExecuteGeneric volume ramp to a target percent over N minutes (up OR down, step-controlled, optional end-state pause/play) — a superset of schedule_wind_down (which is down-only with f...
Attacks that target this class
High-risk tools in any server share these documented attack patterns. Each links to the full case and the defensive policy.