Spotify MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| SPOTIFY_CLIENT_ID | No | Your Spotify app's Client ID. Overrides the one stored in the config file. | |
| SPOTIFY_REDIRECT_PORT | No | Port for the OAuth callback redirect. Default is 8888. Must match the registered redirect URI. |
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 |
|---|---|
| authenticateA | Connects the user's Spotify account via OAuth. Opens a browser on this machine for approval and stores tokens locally. Use when other tools report you are not authenticated, or to switch accounts. |
| playA | Plays music by free-text query (searches and starts the best match) or by Spotify URI. Handles "play some Radiohead", "play the album Kind of Blue", "play my Discover Weekly". Reports what it picked — relay that to the user so they can correct it. |
| playbackB | Transport controls for the active playback: pause, resume, next, previous, seek (value = seconds), volume (value = 0-100), shuffle (value = on/off), repeat (value = off/context/track). |
| now_playingA | Current track, artist, album, progress, device, and shuffle/repeat state. |
| queueC | action=add queues a track by query or URI; action=list shows what's playing and up next. |
| devicesA | action=list shows available Spotify devices; action=transfer moves playback to a device by name or id. |
| searchA | Searches the Spotify catalog. Use when the user wants options to choose from; for a direct 'play X' request, prefer the play tool. Results include URIs usable with play, queue, playlists, and library. Max 10 results per type (API limit). |
| get_playlistsB | Lists the user's playlists with item counts and URIs. |
| get_playlist_itemsA | Lists the tracks in one of the user's own or collaborative playlists (Spotify no longer exposes other users' playlist contents). Accepts a playlist id, URI, or URL. |
| modify_playlistA | action=create makes a new playlist (private by default); action=add_items appends track URIs to an existing playlist. Does not delete or remove anything. |
| libraryA | Saves, removes, or checks items in the user's Spotify library ('liked'). Works with any content URI: tracks, albums, artists (follow), shows, episodes. To save the current song, get its URI from now_playing first. |
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 11 tools
Each tool has a clearly distinct purpose: authentication, device management, playlist operations, library management, playback control, queue management, and search. There is no overlap or ambiguity.
Names are a mix of single verbs (play, search), nouns (devices, library, queue), and verb_noun patterns (get_playlists, now_playing). While readable, the lack of a consistent pattern reduces predictability.
With 11 tools covering authentication, playback, library, playlists, queue, and search, the scope is well-balanced for a music streaming service. Each tool earns its place.
Most core workflows are covered: authentication, playback control, library management (save/remove/check), playlist creation and addition, queue, and search. Minor gaps include lack of playlist item removal or reordering.