Spotify MCP server
Last verified: 2026-09
Search tracks and control playback.
Community Chat, mail & docs Needs a secret Claude Desktop, Cursor, Windsurf, Claude Code
What it does
Spotify Web API MCP: search, playback, playlists. Needs a Spotify developer app (client id/secret) and a user OAuth login. Confirm the repo is still live.
It sits in Chat, mail & docs: These servers act as the bot or the integration you install.
Good for
- Search a track or album without opening Spotify.
- Start playback on a device that already has Spotify open.
- Edit a throwaway playlist, not the shared office one.
- Skip it for research that is actually YouTube or docs.
Tools
- search — Tracks, albums, playlists.
- playback / playlists — Control the active device and edit playlists when scopes allow.
Config (Claude Desktop / Cursor / Windsurf)
Paste the JSON below. Same mcpServers shape. Replace placeholder paths and secrets.
Windows paths look like C:\\Users\\you\\project, not /path/to.
Host-side steps →
Claude Desktop
| OS | Config file |
|---|---|
| macOS | ~/Library/Application Support/Claude/claude_desktop_config.json |
| Windows | %APPDATA%\Claude\claude_desktop_config.json
(usually C:\Users\<you>\AppData\Roaming\Claude\) |
| Linux | ~/.config/Claude/claude_desktop_config.json |
Cursor
| Scope | macOS / Linux | Windows |
|---|---|---|
| This project | .cursor/mcp.json in the repo root | |
| This user | ~/.cursor/mcp.json |
%USERPROFILE%\.cursor\mcp.json |
Windsurf
| OS | Config file |
|---|---|
| macOS / Linux | ~/.codeium/windsurf/mcp_config.json |
| Windows | %USERPROFILE%\.codeium\windsurf\mcp_config.json |
{
"mcpServers": {
"spotify": {
"command": "npx",
"args": [
"-y",
"spotify-mcp"
],
"env": {
"SPOTIFY_CLIENT_ID": "...",
"SPOTIFY_CLIENT_SECRET": "..."
}
}
}
}
Windsurf remote MCP: use serverUrl instead of url if the block below is HTTP.
One-liner: npx -y spotify-mcp
Secrets it wants: SPOTIFY_CLIENT_ID, SPOTIFY_CLIENT_SECRET
How to get started
- Create a Spotify app. Complete the OAuth redirect the README describes.
- Ask it to search a track before touching playback.
- Playback only works if a Spotify client is open on a device.
Access risk
Playlist writes and playback on a shared speaker. Client secret is the app, OAuth is the user.
When to skip it
Skip it for YouTube research or for local files.
Vs alternatives
| Server | Official? | Needs a secret? | Best for |
|---|---|---|---|
| Spotify | No | Yes | Search tracks and control playback. |
| YouTube | No | Yes | Search and summarize YouTube videos. |
| Fetch | Yes | Yes | Fetch a URL and turn the page into readable text. |
More in Chat, mail & docs
FAQ
Repo 404?
Confirm the package still exists before putting client id/secret in env.
Why isn't playback working?
A Spotify client must be open on a device. The API cannot spawn the app from nothing.
User OAuth?
Yes — developer app + user login. Client secret is the app; OAuth is the user.
Can it follow people or buy Premium?
Assume playlist writes are on. Do not grant scopes you do not need.