mcp-spotify
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| SPOTIFY_CLIENT_ID | Yes | Spotify Developer Client ID | |
| SPOTIFY_REDIRECT_URI | Yes | Redirect URI for OAuth callback, must be http://127.0.0.1:8888/callback | |
| SPOTIFY_CLIENT_SECRET | Yes | Spotify Developer Client Secret |
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": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_server_versionA | Return the installed version of the mcp-spotify server. |
| search_tracksA | Search for tracks on Spotify. Supports Spotify query syntax for filtering:
Returns track names, artists, albums, and IDs. |
| search_artistsA | Search for artists on Spotify. Supports the same query syntax as search_tracks. Returns artist names, genres, and IDs. Useful for finding an artist ID to explore their catalog. |
| search_albumsB | Search for albums on Spotify. Returns album names, artists, release dates, and IDs. Use get_album_tracks to list the tracks on a found album. |
| get_album_tracksB | Get all tracks on a Spotify album. Accepts a Spotify album ID or full URI. Returns track names, artists, and IDs. Useful for adding an entire album to a playlist. |
| get_saved_tracksA | Get the current user's saved (liked) tracks. Returns tracks from the user's library, sorted by most recently saved. Supports pagination via limit (max 50) and offset. A rich signal for playlist building since liked songs reflect explicit user preference. |
| create_playlistB | Create a new Spotify playlist for the current user. Returns the playlist ID and URI for use with other playlist tools. |
| add_tracks_to_playlistA | Add tracks to a Spotify playlist. Accepts a list of track IDs or URIs (max 100 per call). Tracks are appended to the end of the playlist. |
| remove_tracks_from_playlistA | Remove tracks from a Spotify playlist. Removes all occurrences of each track. Accepts track IDs or URIs (max 100 per call). |
| replace_playlist_tracksA | Replace all tracks in a playlist with the given list, in order. This is useful for reordering a playlist. First get the current tracks with get_playlist_tracks, reorder the IDs as desired, then pass the full ordered list here. The playlist will contain exactly these tracks in exactly this order. Accepts track IDs or URIs. No limit on total tracks (batched internally). |
| follow_playlistA | Follow (save) a Spotify playlist to your library. Accepts a playlist ID or URI. Use this to save playlists found via search or shared by others. |
| unfollow_playlistA | Unfollow (remove) a Spotify playlist from your library. For playlists you own, this is the only way to 'delete' them -- Spotify has no true delete. The playlist will no longer appear in your library or profile. |
| get_playlist_tracksA | Get the tracks in a Spotify playlist. Supports pagination via limit (max 100) and offset. Returns track names, artists, IDs, and total count. |
| get_my_playlistsC | List the current user's Spotify playlists. Returns playlist names, IDs, track counts, and ownership info. |
| get_my_top_tracksA | Get the current user's top tracks on Spotify. time_range options:
Useful as a seed for building personalized playlists. |
| get_my_top_artistsA | Get the current user's top artists on Spotify. time_range options:
Useful for discovering related artists when building playlists. |
| play_trackA | Start playing a track on Spotify. Requires an active Spotify device (open Spotify on any device first). Accepts a Spotify track URI (spotify:track:) or bare track ID. |
| pause_playbackA | Pause the current Spotify playback. |
| add_to_queueA | Add a track to the end of the playback queue. Requires an active Spotify device. Accepts a track URI or bare track ID. |
| get_now_playingA | Get information about the currently playing track on Spotify. Returns track name, artist, album, progress, and playback state.
Returns |
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 20 tools
Each tool targets a distinct action or resource. Search tools for tracks, artists, and albums are clearly separated. Playlist operations are split into create, add, remove, replace, follow, unfollow, and list/get tracks. Playback controls are distinct. There is no overlap or ambiguity.
All tool names follow a consistent verb_noun pattern using lowercase with underscores. Verbs like search, get, create, add, remove, replace, follow, unfollow, play, pause are used predictably. No mixing of styles.
20 tools is slightly above the typical well-scoped range (3-15), but for a comprehensive Spotify client covering search, playlist management, user library, and playback control, each tool serves a clear purpose. The count is reasonable for the domain.
The tool set covers major Spotify workflows: search, playlist CRUD (create, add, remove, replace, follow, unfollow), user's saved tracks, top tracks/artists, and basic playback control (play, pause, queue, now playing). Minor gaps include lack of volume control, skip/previous, and playlist editing, but core functionality is present.