mcpField
S
spotify

spotify

Local
github.com/markswendsen-codeGames & Entertainment0Updated 33w ago

About spotify

@striderlabs/mcp-spotify connects AI agents to Spotify for music search, playlist management, and playback control. It uses OAuth 2.0 with PKCE and stores tokens locally for automatic refresh.

Key features

  1. 01Search tracks, artists, albums, and playlists
  2. 02Create and edit playlists
  3. 03Control playback and volume
  4. 04List and switch Spotify Connect devices
  5. 05OAuth 2.0 PKCE authentication with local token refresh

Use cases

  1. 01Find music by track, artist, album, or playlist
  2. 02Organize tracks into Spotify playlists
  3. 03Control playback on available Spotify devices

MCP support

This MCP server exposes Spotify search, playlist, authentication, and playback tools to MCP clients over stdio.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

mcp.json · Universal config
{
"mcpServers": {
"markswendsen-code-spotify": {
"command": "npx",
"args": [
"-y",
"@striderlabs/mcp-spotify"
]
}
}
}
Run commandnpx -y @striderlabs/mcp-spotify

Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.

Packages
npm@striderlabs/mcp-spotify0.1.0

Tools

15

Saved tool list · updated 2w ago

This tool takes no parameters.

Details

From the project README

@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_playing—Current 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_devices—List 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

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.