An MCP server that lets Claude control playback, search the catalog, and manage playlists — in plain language.
A focused set of typed MCP tools — each does one thing well, with structured output Claude can reason about.
Play, pause, skip, and steer the queue. Claude drives your active device directly.
Find tracks, albums, artists, and playlists with pagination for deep catalog dives.
Create, edit, and curate playlists with batch operations that scale to large collections.
Intelligent batching minimizes API calls, keeping playlist edits fast and within rate limits.
Built on FastMCP with full Pydantic validation and MyPy compliance for predictable behavior.
Read live playback status and profile data, plus detailed track and artist info on demand.
No overloaded action parameters — just focused tools that compose.
get_playback_stateWhat's playing now, on which devicecontrol_playbackPlay, pause, skip, seek, volume, shuffle, repeatlist_devicesSee every device you can play ontransfer_playbackMove playback to another deviceadd_to_queueQueue up tracks for the active deviceget_queueView the current playback queueget_tracksUp to 50 tracks in one requestget_artistUp to 50 artists in one request; top tracks for a single artistget_albumUp to 20 albums in one request; track list for a single albumsearch_musicSearch tracks, albums, artists, or playlistsget_meYour Spotify profileget_saved_tracksYour Liked Songs, paginatedsave_tracksLike tracks in bulkremove_saved_tracksUnlike tracks in bulkcheck_saved_tracksWhich of up to 50 tracks are already likedcheck_saved_albumsWhich of up to 20 albums are already savedcheck_following_artistsWhich of up to 50 artists the user followsget_top_itemsYour top artists or tracks over any time rangeget_recently_playedWhat you played lately, with timestampscreate_playlistCreate private playlists by default; explicitly opt into publicget_playlistPlaylist metadata and detailsget_playlist_tracksRetrieve tracks with full pagination for large playlistslist_playlistsList all your playlists with paginationadd_tracks_to_playlistBatch-add tracks in a single operationremove_tracks_from_playlistBatch-remove tracks from a playlistupdate_playlist_detailsUpdate name, description, and privacyreorder_playlistMove tracks to a new position within a playlistunfollow_playlistRemove a playlist from your libraryPublished on PyPI — no clone, no local path. Run it with uvx.
$ claude mcp add spotify \ -e SPOTIFY_CLIENT_ID=your_client_id \ -e SPOTIFY_CLIENT_SECRET=your_client_secret \ -e SPOTIFY_REDIRECT_URI=http://127.0.0.1:8888 \ -- uvx spotify-mcp-jamiew
$ codex mcp add spotify \ --env SPOTIFY_CLIENT_ID=your_client_id \ --env SPOTIFY_CLIENT_SECRET=your_client_secret \ --env SPOTIFY_REDIRECT_URI=http://127.0.0.1:8888 \ -- uvx spotify-mcp-jamiew
{
"mcpServers": {
"spotify": {
"command": "uvx",
"args": ["spotify-mcp-jamiew"],
"env": {
"SPOTIFY_CLIENT_ID": "your_client_id",
"SPOTIFY_CLIENT_SECRET": "your_client_secret",
"SPOTIFY_REDIRECT_URI": "http://127.0.0.1:8888"
}
}
}
}
{
"mcpServers": {
"spotify": {
"command": "uvx",
"args": ["spotify-mcp-jamiew"],
"env": {
"SPOTIFY_CLIENT_ID": "your_client_id",
"SPOTIFY_CLIENT_SECRET": "your_client_secret",
"SPOTIFY_REDIRECT_URI": "http://127.0.0.1:8888"
}
}
}
}
{
"mcpServers": {
"spotify": {
"command": "uvx",
"args": ["spotify-mcp-jamiew"],
"env": {
"SPOTIFY_CLIENT_ID": "your_client_id",
"SPOTIFY_CLIENT_SECRET": "your_client_secret",
"SPOTIFY_REDIRECT_URI": "http://127.0.0.1:8888"
}
}
}
}
mcp_servers:
spotify:
command: uvx
args: [spotify-mcp-jamiew]
env:
SPOTIFY_CLIENT_ID: your_client_id
SPOTIFY_CLIENT_SECRET: your_client_secret
SPOTIFY_REDIRECT_URI: http://127.0.0.1:8888
Add -s user to install across all projects.
Install the spotify-mcp MCP server from https://github.com/jamiew/spotify-mcp — it's on PyPI as spotify-mcp-jamiew, run it with uvx spotify-mcp-jamiew, and set env vars SPOTIFY_CLIENT_ID, SPOTIFY_CLIENT_SECRET, and SPOTIFY_REDIRECT_URI=http://127.0.0.1:8888.
Python keeps six resources, five prompts and playback confirmation. The sibling updates PR adds local PKCE login, output schemas, search offset, snapshot guards, bulk playlist progress and removal confirmation, but matching names are not matching contracts. Read the migration comparison before switching.
New playlists are intentionally private by default. Track writes and track/artist checks still accept 50 items per tool call, in upstream chunks of at most 40; album checks remain capped at 20. Failed writes can leave earlier chunks applied. Artist membership needs user-follow-read: restart and reauthorize Spotify for the new scope, without automatically deleting your auth cache.
The March 9 update postponed endpoint restrictions for existing integrations; Extended Quota Mode is exempt from February's endpoint changes. The March changelog reversed external-ID removal. Access depends on the app, not just the date. The official TypeScript SDK's 1.2.0 playlist code still uses legacy routes; switching SDKs does not remove compatibility work.
The July quota update permits 25 apps but shares one Development Mode quota per developer account. QUOTA_EXCEEDED is not ordinary rate limiting; no daily or 24-hour reset is guaranteed. Development Mode normally permits five allowlisted users with a Premium owner, with older larger allowlists grandfathered. Extended access requires an organization, established entity, launched service and at least 250,000 monthly active users. Never share a local token cache or treat a public URL as unrestricted hosting permission.
AI policy is a separate gate. Spotify Developer Policy III.14 restricts ingesting Spotify Content into AI models, not just training. Metadata-only use is not automatic clearance. Analysis and derived metrics (III.13) and voice-control assistants (III.3) also face restrictions. Seek Spotify clarification or approval before public AI access; this project does not establish permission.
Create a chill study playlist
Claude searches for fitting tracks, spins up a new playlist, and batch-adds songs in one smooth flow.
Show me my Liked Songs
Handles large libraries gracefully with pagination — even collections of many thousands of tracks.
Find similar artists to Radiohead
Combines search and artist info to surface related artists and queue up their top tracks.