The full upstream README, mirrored here for reference. Install config, tool schemas, adoption signals, and an original overview live on the Spotify MCP listing page.
Control Spotify by talking to your AI. An MCP server for Claude Desktop, Claude Code, Cursor, and any other MCP client.
You: play something like early Bill Evans AI: ▶ Now playing: "Peace Piece" — Bill Evans · Everybody Digs Bill Evans
You: perfect, queue the whole album and save this one AI: ➕ Queued Everybody Digs Bill Evans · ❤️ Saved "Peace Piece" to your library
Built against the current (post-February-2026) Spotify Web API — many older Spotify MCP servers predate those changes and are partially broken.
The wizard walks you through creating your own (free) Spotify developer app, asks for its Client ID, and opens a browser to connect your account — about 2 minutes total.
Why your own app? Spotify caps third-party apps at a handful of users, so every user
brings their own; the wizard makes that painless. No client secret is involved (PKCE).
Tokens stay in ~/.spotify-mcp/ on your machine and refresh silently.
The one detail that must be exact — your app's Redirect URI:
Claude Code
Claude Desktop (~/Library/Application Support/Claude/claude_desktop_config.json)
or Cursor (~/.cursor/mcp.json):
Restart the client and start talking.
| Tool | What it does |
|---|---|
play | Play by free-text query (search → best match → play) or Spotify URI |
playback | pause / resume / next / previous / seek / volume / shuffle / repeat |
now_playing | Current track, progress, device, mode |
queue | Add a track to the queue; show up next |
devices | List devices; transfer playback |
search | Browse tracks/albums/artists/playlists (max 10 per type — API cap) |
get_playlists | List your playlists |
get_playlist_items | Show a playlist's tracks (own/collaborative only — API restriction) |
modify_playlist | Create a playlist; add tracks |
library | Save / remove / check items in your library |
authenticate | Run the Spotify login from inside a conversation |
authenticate tool. The
model relays the fix instead of a stack trace.INVALID_CLIENT: Invalid redirect URI during login — the Redirect URI in your
app settings isn't exactly http://127.0.0.1:8888/callback (localhost is
rejected by Spotify).SPOTIFY_REDIRECT_PORT to a free port and
register the matching redirect URI.npx -y @xavifabregat/spotify-mcp auth to log in
again (e.g. after changing the Client ID).SPOTIFY_CLIENT_ID env var overrides
~/.spotify-mcp/config.json (written by init).Layout: src/auth.ts (OAuth PKCE + token store) · src/spotify.ts (typed API
client) · src/tools/ (tool implementations) · src/format.ts (compact output).
MIT © Xavi Fabregat