Connection check
local install
spotify-mcp-server
The most complete Spotify MCP: playback, library, playlists, search, podcasts and audiobooks.
Tools
36
GitHub stars
1
Installs / wk
—
Licence
MIT
Transport
stdio
Last checked
never
Tools & capabilities
36 toolsRead from the published package source — this server runs locally, so there is no endpoint to query. Names are taken from the code, not observed at runtime, and descriptions are often absent.
add_to_playlist
from source
Add tracks or episodes to a playlist. Max 100 URIs per call. Add tracks or episodes to a playlist. Max 100 URIs per call.
batch_add_to_playlist
from source
check_playlist_following
from source
Check if you follow 1–50 playlists (fans out one call per playlist, concurrency 5). Quota: 🟢 1–50 GETs. Check if you follow 1–50 playlists (fans out one call per playlist, concurrency 5). Quota: 🟢 1–50 GETs.
clean_all_playlists
from source
Scan every playlist in your library for duplicate items (repeated URIs, and on opt-in Scan every playlist in your library for duplicate items (repeated URIs, and on opt-in
clone_playlist_cover
from source
Copy cover image from source playlist to target. Quota: 🟢 GET images + PUT images (plus image fetch). Copy cover image from source playlist to target. Quota: 🟢 GET images + PUT images (plus image fetch).
compare_playlist_covers
from source
Compare two playlists covers: URL equality, dimensions. Quota: 🟢 2 GETs. Compare two playlists covers: URL equality, dimensions. Quota: 🟢 2 GETs.
copy_playlist
from source
create_playlist
from source
diff_playlists
from source
Compare two playlists fully paged: tracks only in A, only in B (by track ID), and tracks present in both but at different positions. Rendered rows are capped by max_results; totals… Compare two playlists fully paged: tracks only in A, only in B (by track ID), and tracks present in both but at different positions. Rendered rows are capped by max_results; totals are always accurate. Also covers: playlist_diff (snapshot diff), playlist_difference_plan (A minus B plan) — See also: playlist_diff, playlist_difference_plan.
find_duplicates_in_playlist
from source
Find duplicate tracks in a playlist: repeated URIs plus relinked copies of the same song appearing under different URIs. Also covers: find_duplicate_tracks_across_playlists (cross-… Find duplicate tracks in a playlist: repeated URIs plus relinked copies of the same song appearing under different URIs. Also covers: find_duplicate_tracks_across_playlists (cross-playlist), find_duplicate_playlists (playlist-level), remove_duplicate_playlist_items — See also: find_duplicate_tracks_across_playlists, find_duplicate_playlists, remove_duplicate_playlist_items.
find_tool
from source
Search the live tool registry by name or description substring — the fastest way to discover which of the 500+ tools handles a job. Discovery set: find_tool/inspect_tool/toolset_re… Search the live tool registry by name or description substring — the fastest way to discover which of the 500+ tools handles a job. Discovery set: find_tool/inspect_tool/toolset_report are always available (also via catalog). Use this first when unsure which verb to use (e.g., playlist vs snapshot vs search).
get_playlist
from source
Get a playlist Get a playlist
get_playlist_cover
from source
Get a playlist Get a playlist
get_playlist_items
from source
List a playlist List a playlist
get_playlist_snapshot
from source
Expose snapshot_id + item count for optimistic concurrency. Quota: 🟢 2 GETs. Expose snapshot_id + item count for optimistic concurrency. Quota: 🟢 2 GETs.
get_user_playlists
from source
List the current user List the current user
inspect_tool
from source
Show one tool\ Show one tool\
merge_playlists
from source
move_items_between_playlists
from source
overlap_playlists
from source
Find tracks shared across playlists: reports how many playlists each track appears in and lists tracks present in at least min_overlap playlists (default: all of them), most-shared… Find tracks shared across playlists: reports how many playlists each track appears in and lists tracks present in at least min_overlap playlists (default: all of them), most-shared first.
playlist_collab_toggle
from source
Toggle collaborative/public flags (guards public=true && collaborative=true 400). Quota: 🟢 GET + PUT. Toggle collaborative/public flags (guards public=true && collaborative=true 400). Quota: 🟢 GET + PUT.
playlist_reverse
from source
Reverse a playlist in one atomic replace. Quota: 🟢 GET all + PUT/POST. Also covers: reverse_playlist_plan — See also: reverse_playlist_plan. Reverse a playlist in one atomic replace. Quota: 🟢 GET all + PUT/POST. Also covers: reverse_playlist_plan — See also: reverse_playlist_plan.
playlist_shuffle
from source
Fisher-Yates shuffle a playlist (seeded optional). Quota: 🟢 GET all + PUT/POST. Fisher-Yates shuffle a playlist (seeded optional). Quota: 🟢 GET all + PUT/POST.
playlist_sort
from source
Sort a playlist in place by added_at/name/artist/duration/popularity. Quota: 🟢 GET all + PUT/POST. Also covers: sort_playlist_plan / sort_playlist_apply (safe plan/apply) — See al… Sort a playlist in place by added_at/name/artist/duration/popularity. Quota: 🟢 GET all + PUT/POST. Also covers: sort_playlist_plan / sort_playlist_apply (safe plan/apply) — See also: sort_playlist_plan, sort_playlist_apply.
playlist_subtract
from source
Remove tracks of B..N from A. Quota: 🟢 N GETs + DELETE or PUT. Remove tracks of B..N from A. Quota: 🟢 N GETs + DELETE or PUT.
playlist_symmetric_difference
from source
Tracks in exactly one of two playlists (XOR). Quota: 🟢 2 GETs. Tracks in exactly one of two playlists (XOR). Quota: 🟢 2 GETs.
playlist_trim
from source
Trim playlist to N items (keep first/last/random). Quota: 🟢 GET all + PUT/POST. Trim playlist to N items (keep first/last/random). Quota: 🟢 GET all + PUT/POST.
playlist_union
from source
Union of 2–10 playlists into target (deduped, first-seen order). Quota: 🟢 N GETs + PUT/POST. Union of 2–10 playlists into target (deduped, first-seen order). Quota: 🟢 N GETs + PUT/POST.
remove_duplicate_playlist_items
from source
Remove duplicate items from a playlist: keeps the first occurrence of each track and removes Remove duplicate items from a playlist: keeps the first occurrence of each track and removes
remove_from_playlist
from source
Remove tracks or episodes from a playlist. Max 100 entries per call. Remove tracks or episodes from a playlist. Max 100 entries per call.
reorder_playlist_items
from source
Move a range of items within a playlist. Spotify semantics: when insert_before > range_start, the effective destination shifts down by range_length because the moved range is lifte… Move a range of items within a playlist. Spotify semantics: when insert_before > range_start, the effective destination shifts down by range_length because the moved range is lifted out first (e.g. moving [2] to insert_before=4 lands it AT index 3). Also covers: playlist_resequence (full resequence), playlist_move_block — See also: playlist_resequence, playlist_move_block.
replace_playlist_items
from source
Replace ALL items in a playlist with the supplied URIs, overwriting the current contents. Lists longer than 100 URIs are sent in chunks internally (replace + appends). Replace ALL items in a playlist with the supplied URIs, overwriting the current contents. Lists longer than 100 URIs are sent in chunks internally (replace + appends).
toolset_report
from source
Report the active toolsets and registration modules, plus the live registered tool count — answers Report the active toolsets and registration modules, plus the live registered tool count — answers
update_playlist
from source
upload_playlist_cover
from source
Replace a playlist Replace a playlist
verify_receipt
from source