Spotify MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| searchSpotifyA | Search for tracks, albums, artists, playlists, podcast episodes, or shows on Spotify. For episodes and shows, the query matches against title, description, and publisher. Use type "episode" to find individual podcast episodes by topic or guest name, and type "show" to find podcast series. |
| getNowPlayingA | Get information about the currently playing track on Spotify, including device and volume info |
| getMyPlaylistsC | Get a list of the current user's playlists on Spotify |
| getPlaylistTracksC | Get a list of tracks in a Spotify playlist |
| getRecentlyPlayedC | Get a list of recently played tracks on Spotify |
| getUsersSavedTracksB | Get a list of tracks saved in the user's "Liked Songs" library |
| removeUsersSavedTracksB | Remove one or more tracks from the user's "Liked Songs" library (max 40 per request) |
| getQueueA | Get a list of the currently playing track and the next items in your Spotify queue |
| getAvailableDevicesB | Get information about the user's available Spotify Connect devices |
| getTopTracksB | Get the current user's top (most-played) tracks over a given time range. This is the closest thing Spotify exposes to listening statistics. |
| getTopArtistsB | Get the current user's top (most-played) artists over a given time range. This is the closest thing Spotify exposes to listening statistics. |
| playMusicA | Start playing a Spotify track, album, artist, or playlist. Pass a Spotify URI (e.g. spotify:track:xxx, spotify:album:xxx) via "uri". For albums/playlists you can also use "context_uri". Device is selected automatically — "deviceId" or "device_id" are optional. |
| pausePlaybackC | Pause Spotify playback on the active device |
| skipToNextB | Skip to the next track in the current Spotify playback queue |
| skipToPreviousA | Skip to the previous track in the current Spotify playback queue |
| createPlaylistC | Create a new playlist on Spotify |
| addTracksToPlaylistB | Add tracks or podcast episodes to a Spotify playlist. Accepts Spotify track IDs, episode IDs, or full Spotify URIs (e.g. spotify:episode:xxx). |
| resumePlaybackC | Resume Spotify playback on the active device |
| addToQueueB | Adds a track, album, artist or playlist to the playback queue |
| setVolumeB | Set the playback volume to a specific percentage (0-100). Requires Spotify Premium. |
| adjustVolumeB | Adjust the playback volume up or down by a relative amount. Use positive values to increase, negative to decrease. Requires Spotify Premium. |
| getAlbumsC | Get detailed information about one or more albums by their Spotify IDs |
| getAlbumTracksB | Get tracks from a specific album with pagination support |
| saveOrRemoveAlbumForUserC | Save or remove albums from the user's "Your Music" library |
| checkUsersSavedAlbumsB | Check if albums are saved in the user's "Your Music" library |
| getPlaylistB | Get details of a specific Spotify playlist including tracks count, description and owner |
| updatePlaylistC | Update the details of a Spotify playlist (name, description, public/private, collaborative) |
| removeTracksFromPlaylistA | Remove one or more tracks from a Spotify playlist (max 100 tracks per request) |
| reorderPlaylistItemsC | Reorder a range of tracks within a Spotify playlist by moving them to a new position |
| unfollowPlaylistA | Remove a playlist from the current user's library (unfollow). Note: Spotify does not allow permanent deletion of playlists via the API. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 30 tools
Most tools target distinct resources and actions, and descriptions clearly separate close pairs like setVolume vs adjustVolume and skipToNext vs skipToPrevious. A few boundaries are softer (playMusic vs resumePlayback, and the combined saveOrRemoveAlbumForUser versus the separate library tools), but overall selection is reliable.
Nearly all tools use a consistent camelCase verb-first pattern (getAlbums, createPlaylist, removeTracksFromPlaylist, getTopTracks). The only real deviation is the compound saveOrRemoveAlbumForUser, which breaks the single-action convention used elsewhere.
At 30 tools this is on the heavy side, above the comfortable range, and a few (e.g. the album save/remove combiner) could be split or consolidated more cleanly. However, Spotify's surface area (playback, playlists, library, search, discovery) is genuinely broad, so most tools earn their place.
Coverage spans playback control, playlists, library, search, and listening stats, which is strong for the domain. Minor gaps remain: there is no way to save a track to Liked Songs (only remove), and no detailed getArtist/getTrack lookup outside of search.