@striderlabs/mcp-spotify
Provides tools for searching music, managing playlists, and controlling playback on Spotify.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@@striderlabs/mcp-spotify Play 'Bohemian Rhapsody' by Queen"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
@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
Related MCP server: Spotify MCP Server
Setup
1. Create a Spotify App
Go to the Spotify Developer Dashboard
Click Create App
Set Redirect URI to:
http://localhost:8888/callbackCopy your Client ID
2. Install
npx @striderlabs/mcp-spotifyOr install globally:
npm install -g @striderlabs/mcp-spotify3. 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_authA 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
Variable | Required | Description |
| Yes | Your Spotify app's Client ID |
Tools
Authentication
Tool | Description |
| Check connection status and logged-in account |
| Authorize via browser (OAuth 2.0 PKCE) |
| Clear stored tokens |
Search
Tool | Parameters | Description |
|
| Search for songs |
|
| Search for artists |
|
| Search for albums |
|
| Search for playlists |
Playlists
Tool | Parameters | Description |
|
| Get your playlists |
|
| Create a new playlist |
|
| Add tracks |
|
| Remove tracks |
Playback
Tool | Parameters | Description |
| — | Current track, progress, device |
|
| Start/resume playback |
|
| Pause playback |
|
| Skip to next track |
|
| Go to previous track |
|
| Set volume (0–100) |
| — | List Spotify Connect devices |
|
| 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.jsonBrowser automation: Playwright (for OAuth browser launch)
License
MIT — Strider Labs
Available Tools
19 toolsadd_to_playlistA
Add one or more tracks to a playlist. Use track URIs from search results (e.g., 'spotify:track:...').
Inputs: uris (required), playlistId (required), position.
create_playlistA
Create a new playlist in your Spotify account. Returns the new playlist ID and URI.
Inputs: name (required), public, description.
get_currently_playingA
Get the currently playing track including name, artists, progress, device, shuffle state, and repeat state.
Inputs: no named parameters.
get_devicesA
List all available Spotify Connect devices (phones, computers, speakers, etc.) with their IDs, names, types, and active status.
Inputs: no named parameters.
get_playlistsA
Get all playlists in your Spotify library (owned and followed). Returns playlist names, IDs, and URIs.
Inputs: limit.
next_trackB
Skip to the next track in the queue.
Inputs: deviceId.
pauseA
Pause playback on the active device or a specified device.
Inputs: deviceId.
playA
Start or resume playback. Can play a specific track, album, artist, or playlist URI. If no URI provided, resumes current playback.
Inputs: uris, deviceId, contextUri, positionMs, +1 more.
previous_trackA
Go back to the previous track. If more than 3 seconds in, restarts current track first.
Inputs: deviceId.
remove_from_playlistA
Remove one or more tracks from a playlist by their Spotify track URIs.
Inputs: uris (required), playlistId (required).
search_albumsB
Search for albums on Spotify. Returns album name, artists, release date, track count, and URI.
Inputs: query (required), limit.
search_artistsA
Search for artists on Spotify. Returns artist name, genres, popularity, followers, and URI.
Inputs: query (required), limit.
search_playlistsB
Search for playlists on Spotify. Returns playlist name, owner, track count, and URI.
Inputs: query (required), limit.
search_tracksB
Search for songs on Spotify. Returns track name, artists, album, duration, URI, and popularity.
Inputs: query (required), limit.
set_volumeA
Set the playback volume (0-100%). Requires a Spotify Premium account.
Inputs: volumePercent (required), deviceId.
spotify_authA
Authenticate with Spotify using OAuth 2.0 with PKCE. Opens a browser window for you to authorize access. Requires SPOTIFY_CLIENT_ID environment variable. Only needed once — tokens are stored locally.
Inputs: no named parameters.
spotify_logoutA
Log out of Spotify by clearing stored OAuth tokens. Use this to reset authentication or switch accounts.
Inputs: no named parameters.
spotify_statusA
Check Spotify authentication status. Shows whether you are logged in and which account is connected. Call this first before using other tools.
Inputs: no named parameters.
transfer_playbackA
Transfer playback to a different Spotify Connect device. Use device IDs from get_devices.
Inputs: deviceId (required), play.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 19 tools
The search_* tools are clearly distinguished by resource type (artists, albums, playlists, tracks), and playback/device/auth tools have distinct purposes. The only point of potential confusion is search_playlists (public search) vs get_playlists (user's library), but the descriptions clarify the boundary.
The search_* prefix is consistent, but naming mixes bare verbs (play, pause), verb_noun (create_playlist, set_volume, get_devices), verb_prep_noun (add_to_playlist, remove_from_playlist), and a spotify_* prefix for auth tools. Multiple conventions coexist, making the pattern hard to predict, though each name remains readable.
19 tools is on the heavier side, but Spotify's API spans search, playlists, playback control, devices, and authentication, so the count is justified by the domain breadth. Each tool earns its place and there is little redundancy, making the set feel appropriately scoped rather than bloated.
Core workflows work: search, play, pause, skip, volume, create/add/remove playlist items, device transfer, and auth. However, notable gaps exist — there is no way to list the tracks inside a playlist (making remove_from_playlist impractical without prior context), no playlist update/delete, and no seek, shuffle, or repeat controls.
Related MCP Connectors
MCP server for Producer/Riffusion AI music generation
Web search API and MCP server for developers building AI agents.
Nifty's MCP server — exposes tasks, projects, messages, and files as tools for AI agents.
MCP server connecting AI agents to 100+ apps (Gmail, Slack, Notion, GitHub) via one-click OAuth.
Related MCP Servers
- AlicenseBqualityDmaintenanceAn MCP server that enables users to control Spotify playback, search music, and manage playlists through natural conversation. It is updated for the February 2026 Spotify Web API changes and supports full playlist CRUD operations.68MIT
- AlicenseAqualityBmaintenanceMCP server for the Spotify Web API — gives Claude and other AI assistants tools to search music, control playback, manage playlists, library, and podcasts.475MIT
- AlicenseAqualityCmaintenanceMCP server for Spotify that enables playlist building and music discovery through 19 tools, allowing LLM agents to search tracks/artists/albums, manage playlists, control playback, and access personal listening data.201MIT
- AlicenseNot gradedqualityDmaintenanceAn unofficial MCP server that provides access to Spotify's Web API through the Model Context Protocol, enabling AI assistants to search music, manage playlists, and control playback.32 npm9ISC