MCP tool reference
Generated file. Do not edit this page by hand. Run
npm run docs:generateafter changing MCP tool registrations.
Generated from the runtime tool registry. Current tool count: 49.
add_tracks_by_search
Title: Add tracks by search
Type: Write / action
Resolve every search entry before writing; strict mode blocks all writes if any is ambiguous or unmatched.
Arguments:
playlist_idtracksstrictdry_runskip_existing
add_tracks_to_playlist
Title: Add tracks
Type: Write / action
Add tracks sequentially in chunks of at most 100 using /items.
Arguments:
playlist_idtrack_ids
bulk_add_tracks
Title: Bulk add tracks
Type: Write / action
Add mixed ID/URI/search track inputs in ordered chunks; supports strict, dry_run and skip_existing.
Arguments:
playlist_idtracksstrictdry_runskip_existing
cancel_job
Title: Cancel job
Type: Write / action
Cancel a durable job without deleting its history.
Arguments:
job_id
check_saved_tracks
Title: Check saved tracks
Type: Read
Return an exact input-to-saved mapping using current /me/library/contains.
Arguments:
track_ids
commit_job
Title: Commit job
Type: Write / action
Commit a ready durable job with ordered, chunked Spotify writes.
Arguments:
job_id
create_bulk_job
Title: Create bulk job
Type: Write / action
Persist a bulk track operation for later processing.
Arguments:
typepayloaditemsmax_attempts
create_playlist
Title: Create playlist
Type: Write / action
Create a playlist; collaborative playlists must be private.
Arguments:
namedescriptionpubliccollaborative
create_playlist_from_tracks
Title: Create playlist from tracks
Type: Write / action
Resolves all tracks before creation in strict mode, then creates and inserts sequential chunks.
Arguments:
namedescriptionpublictracksstrictskip_duplicates
deduplicate_playlist
Title: Deduplicate playlist
Type: Write / action Destructive hint: yes
Fetches all items, preserves first occurrence and order, and refuses lossless reconstruction when unsupported items exist.
Arguments:
playlist_iddry_run
find_playlist_by_name
Title: Find playlist by name
Type: Read
Find all current-user playlists matching a normalized name across all pages.
Arguments:
name
find_track_exact
Title: Find track exactly
Type: Read
Resolve a track by deterministic title/artist/album/year scoring; returns matched, ambiguous, or unmatched.
Arguments:
titleartistalbumyear
get_artist
Type: Read
Get a Spotify artist by ID, URI, or URL.
Arguments:
artist_id
get_artist_top_tracks
Title: Get artist top tracks
Type: Read
Spotify removed the official endpoint in February 2026; this tool returns a structured platform limitation.
Arguments:
artist_id
get_currently_playing
Title: Get currently playing
Type: Read
Get the currently playing track or episode; 204 is returned as inactive playback.
Arguments:
- None
get_devices
Title: Get devices
Type: Read
List Spotify Connect devices.
Arguments:
- None
get_job_status
Title: Get job status
Type: Read
Inspect a durable bulk job with bounded item pagination.
Arguments:
job_idoffsetlimit
get_my_playlists
Title: Get my playlists
Type: Read
List compact playlists; all=true fetches all pages up to the server safety cap.
Arguments:
limitoffsetall
get_playback_state
Title: Get playback state
Type: Read
Get playback state and normalize either a track or episode item.
Arguments:
- None
get_playlist
Title: Get playlist
Type: Read
Get playlist metadata.
Arguments:
playlist_id
get_playlist_stats
Title: Get playlist stats
Type: Read
Fetches all playlist items and computes local aggregates.
Arguments:
playlist_id
get_playlist_tracks
Title: Get playlist items
Type: Read
Read normalized playlist items using current /items; maximum page size is 50.
Arguments:
playlist_idlimitoffset
get_rate_limit_status
Title: Get rate limit status
Type: Read
Inspect persisted provider rate-limit scopes.
Arguments:
providerscope
get_recent_api_errors
Title: Get recent API errors
Type: Read
Inspect bounded, normalized API error history.
Arguments:
limitproviderstatus_codeunresolved_only
get_recently_played
Title: Get recently played
Type: Read
Read recent history; before and after cannot be combined.
Arguments:
limitbeforeafter
get_saved_tracks
Title: Get saved tracks
Type: Read
Read saved tracks with pagination.
Arguments:
limitoffset
get_state_diagnostics
Title: Get State DB diagnostics
Type: Read
Return authenticated, bounded State DB health counters.
Arguments:
- None
get_top_artists
Type: Read
Read personalized top Spotify items; Spotify maximum is 50.
Arguments:
time_rangelimitoffset
get_top_tracks
Type: Read
Read personalized top Spotify items; Spotify maximum is 50.
Arguments:
time_rangelimitoffset
get_track
Type: Read
Get a Spotify track by ID, URI, or URL.
Arguments:
track_id
list_jobs
Title: List jobs
Type: Read
List bounded durable job summaries.
Arguments:
offsetlimit
next_track
Type: Write / action
Control Spotify playback.
Arguments:
device_id
pause
Type: Write / action
Pause Spotify playback; verifies the resulting state after a 403 restriction response.
Arguments:
device_id
play
Title: Play
Type: Write / action
Start or resume playback; context_uri and uris are mutually exclusive. Verifies the resulting state after a 403 restriction response.
Arguments:
device_idcontext_uriurisoffsetposition_ms
previous_track
Type: Write / action
Control Spotify playback.
Arguments:
device_id
remember_track
Title: Remember track
Type: Read
Verify a known Spotify track ID, URI, or public URL and save its safe alias.
Arguments:
track_idtitleartistalbum
remove_saved_tracks
Type: Write / action Destructive hint: yes
Save or remove tracks using current /me/library endpoint in chunks of 40.
Arguments:
track_ids
remove_tracks_from_playlist
Title: Remove playlist items
Type: Write / action Destructive hint: yes
Remove requested URI occurrences using DELETE /items and return the final snapshot.
Arguments:
playlist_idtrack_ids
reorder_playlist_tracks
Title: Reorder playlist items
Type: Write / action
Reorder with current PUT /items payload.
Arguments:
playlist_idrange_startinsert_beforerange_lengthsnapshot_id
replace_playlist_tracks
Title: Replace playlist items
Type: Write / action Destructive hint: yes
Replace then append ordered chunks, max 100 per request; rolls back after later chunk failure.
Arguments:
playlist_idtrack_ids
resume_job
Title: Resume job
Type: Write / action
Make a durable job eligible for processing.
Arguments:
job_id
save_tracks
Type: Write / action
Save or remove tracks using current /me/library endpoint in chunks of 40.
Arguments:
track_ids
search_albums
Type: Read
Search Spotify catalog with current pagination.
Arguments:
querylimit
search_artists
Type: Read
Search Spotify catalog with current pagination.
Arguments:
querylimit
search_tracks
Type: Read
Search Spotify catalog with current pagination.
Arguments:
querylimit
seek
Title: Seek
Type: Write / action
Seek to a non-negative position.
Arguments:
position_msdevice_id
set_volume
Title: Set volume
Type: Write / action
Set volume from 0 to 100.
Arguments:
volume_percentdevice_id
transfer_playback
Title: Transfer playback
Type: Write / action
Transfer playback to a Spotify Connect device.
Arguments:
device_idplay
update_playlist_details
Title: Update playlist details
Type: Write / action
Update playlist metadata; collaborative playlists must be private.
Arguments:
playlist_idnamedescriptionpubliccollaborative