MCP Hub
Back to servers

spotify

MCP server for Spotify - let AI agents control playback, search music, and manage playlists

Registry
Updated
Mar 11, 2026

Quick Install

npx -y @striderlabs/mcp-spotify

@striderlabs/mcp-spotify

MCP server for Spotify — let AI agents search music, control playback, and manage playlists via the Spotify Web API.

Built by Strider Labs.

Features

  • Search — Find tracks, artists, albums, and playlists
  • Playlists — View, create, and edit your playlists
  • Playback Control — Play, pause, skip, go back, set volume
  • Multi-device — List and switch between Spotify Connect devices
  • OAuth 2.0 — Secure authorization with PKCE (no client secret needed)
  • Token persistence — Tokens stored locally, auto-refreshed

Setup

1. Create a Spotify App

  1. Go to the Spotify Developer Dashboard
  2. Click Create App
  3. Set Redirect URI to: http://localhost:8888/callback
  4. Copy your Client ID

2. Install

npx @striderlabs/mcp-spotify

Or install globally:

npm install -g @striderlabs/mcp-spotify

3. Configure Claude Desktop

Add to your claude_desktop_config.json:

{
  "mcpServers": {
    "spotify": {
      "command": "npx",
      "args": ["-y", "@striderlabs/mcp-spotify"],
      "env": {
        "SPOTIFY_CLIENT_ID": "your_client_id_here"
      }
    }
  }
}

4. Authenticate

In Claude, call the auth tool once:

spotify_auth

A browser window will open for you to authorize access. After approving, tokens are saved locally at ~/.striderlabs/spotify/tokens.json and auto-refreshed.

Environment Variables

VariableRequiredDescription
SPOTIFY_CLIENT_IDYesYour Spotify app's Client ID

Tools

Authentication

ToolDescription
spotify_statusCheck connection status and logged-in account
spotify_authAuthorize via browser (OAuth 2.0 PKCE)
spotify_logoutClear stored tokens

Search

ToolParametersDescription
search_tracksquery, limit?Search for songs
search_artistsquery, limit?Search for artists
search_albumsquery, limit?Search for albums
search_playlistsquery, limit?Search for playlists

Playlists

ToolParametersDescription
get_playlistslimit?Get your playlists
create_playlistname, description?, public?Create a new playlist
add_to_playlistplaylistId, uris[], position?Add tracks
remove_from_playlistplaylistId, uris[]Remove tracks

Playback

ToolParametersDescription
get_currently_playingCurrent track, progress, device
playdeviceId?, contextUri?, uris?[], offsetPosition?, positionMs?Start/resume playback
pausedeviceId?Pause playback
next_trackdeviceId?Skip to next track
previous_trackdeviceId?Go to previous track
set_volumevolumePercent, deviceId?Set volume (0–100)
get_devicesList Spotify Connect devices
transfer_playbackdeviceId, play?Switch playback device

Example Workflow

1. spotify_status            → check if authenticated
2. spotify_auth              → open browser to authorize (first time)
3. search_tracks query="Bohemian Rhapsody"
4. get_devices               → list available devices
5. play uris=["spotify:track:..."] deviceId="..."
6. get_currently_playing     → see what's playing
7. set_volume volumePercent=70
8. next_track                → skip to next
9. get_playlists             → see your playlists
10. create_playlist name="AI Picks"
11. add_to_playlist playlistId="..." uris=["spotify:track:..."]

Requirements

  • Node.js 18+
  • Spotify account (Free or Premium)
  • Spotify Premium required for: volume control, playback control

Technical Details

  • Protocol: Model Context Protocol (MCP) over stdio
  • Auth: OAuth 2.0 Authorization Code with PKCE
  • API: Spotify Web API v1
  • Token storage: ~/.striderlabs/spotify/tokens.json
  • Browser automation: Playwright (for OAuth browser launch)

License

MIT — Strider Labs

Reviews

No reviews yet

Sign in to write a review