Spotify MCP Server
Spotify playback and playlist management via Model Context Protocol.
Data last scanned today · Reviewed yesterday
Overview
This server integrates Spotify functionality into AI assistants like Claude Desktop and Cursor. Users can issue natural language commands to control their listening experience, such as adjusting playback volume, searching for specific artists or tracks, and managing their personal playlists.
Our verdict
This server carries a high-risk score of 22/100 due to its lack of an authentication method, which allows unauthorized access if the configuration is exposed. Additionally, it provides full write access to the user's Spotify account without a read-only restriction. It is recommended for advanced users who understand these security implications and are managing their configuration file environment with extreme caution.
- Four direct dependencies keep the supply-chain surface small
- Nineteen contributors provide diverse development oversight
- Includes comprehensive documentation for setup and tool usage
- High security risk due to missing authentication mechanism
- Lacks a defined license for legal usage
- Provides full write access without read-only mode
Setup
{
"mcpServers": {
"spotify-mcp-server": {
"args": [
"-y",
"spotify-mcp-server"
],
"command": "npx"
}
}
}Paste into ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows), then restart Claude Desktop. Some servers require API keys or tokens as environment variables — check the project's README and add an "env" object if needed.
- No read-only mode — running this grants full read/write access.
- No built-in authentication — anyone with access to this config can invoke every tool it exposes.
Tools
| Tool | Description | Risk |
|---|---|---|
| searchSpotify | Search for tracks, albums, artists, or playlists on Spotify | low |
| getNowPlaying | Get information about the currently playing track on Spotify, including device and volume info | low |
| getMyPlaylists | Get a list of the current user's playlists on Spotify | low |
| getPlaylistTracks | Get a list of tracks in a specific Spotify playlist | low |
| getRecentlyPlayed | Retrieves a list of recently played tracks from Spotify. | low |
| getUsersSavedTracks | Get a list of tracks saved in the user's "Liked Songs" library | low |
| getQueue | Get the currently playing track and upcoming items in the Spotify queue | low |
| getAvailableDevices | Get information about the user's available Spotify Connect devices | low |
| removeUsersSavedTracks | Remove one or more tracks from the user's "Liked Songs" library (max 40 per request) | medium |
| playMusic | Start playing a track, album, artist, or playlist on Spotify | medium |
| pausePlayback | Pause the currently playing track on Spotify | medium |
| resumePlayback | Resume Spotify playback on the active device | medium |
| skipToNext | Skip to the next track in the current playback queue | medium |
| skipToPrevious | Skip to the previous track in the current playback queue | medium |
| createPlaylist | Create a new playlist on Spotify | medium |
| addTracksToPlaylist | Add tracks to an existing Spotify playlist | medium |
| addToQueue | Adds a track, album, artist or playlist to the current playback queue | medium |
| setVolume | Set the playback volume to a specific percentage (requires Spotify Premium) | medium |
| adjustVolume | Adjust the playback volume up or down by a relative amount (requires Spotify Premium) | medium |
| getAlbums | Get detailed information about one or more albums by their Spotify IDs | low |
| getAlbumTracks | Get tracks from a specific album with pagination support | low |
| saveOrRemoveAlbumForUser | Save or remove albums from the user's "Your Music" library | medium |
| checkUsersSavedAlbums | Check if albums are saved in the user's "Your Music" library | low |
| getPlaylist | Get details of a specific Spotify playlist including tracks count, description and owner | low |
| updatePlaylist | Update the details of a Spotify playlist (name, description, public/private, collaborative) | medium |
| removeTracksFromPlaylist | Remove one or more tracks from a Spotify playlist (max 100 tracks per request) | medium |
| reorderPlaylistItems | Reorder a range of tracks within a Spotify playlist by moving them to a new position | medium |
| getListeningHistory | Retrieve the user's recently played tracks. | low |
Compatibility
| Client | Local | Docker | Remote | Read-only |
|---|---|---|---|---|
| ChatGPT | ||||
| Claude Desktop | ||||
| Cursor | ||||
| VS Code | ||||
| Windsurf |
Frequently asked questions
›What prerequisites are needed to use this server?
You must create a Spotify Developer Application in the Spotify Developer Dashboard to obtain the necessary credentials to configure the server.
›Does the server require any specific authentication?
Yes, you must complete the Spotify API authentication process, which involves configuring your client ID and secret within the server's settings.
›Can this server control playback on multiple devices?
Yes, you can use the getAvailableDevices tool to view all active Spotify Connect devices and pass a specific deviceId to the playMusic or pausePlayback tools.
›Are there limits on the number of tracks I can remove from my library?
The removeUsersSavedTracks tool supports removing up to 40 tracks per request.
›Which AI applications support this server?
The server can be integrated with Claude Desktop, Cursor, and VS Code via the Cline extension.
Alternatives
Badge
Maintain this server? Add the live badge to your README.