Spotify MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| SPOTIFY_CLIENT_ID | Yes | Your Spotify app's Client ID | |
| SPOTIFY_REDIRECT_URI | No | OAuth redirect URI | http://127.0.0.1:8888/callback |
| SPOTIFY_CLIENT_SECRET | Yes | Your Spotify app's Client Secret |
Capabilities
Features and capabilities supported by this server
| 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_albumA | Get details of a Spotify album by its ID. |
| get_albumsA | Get details of multiple albums in one call (up to 20 IDs). |
| get_album_tracksA | Get tracks of a Spotify album. |
| get_artistA | Get details of a Spotify artist by their ID. |
| get_artistsA | Get details of multiple artists in one call (up to 50 IDs). |
| get_artist_albumsA | Get albums by a Spotify artist. |
| get_trackA | Get details of a Spotify track by its ID. |
| get_tracksA | Get details of multiple tracks in one call (up to 50 IDs). |
| searchA | Search for tracks, albums, artists, playlists, shows, episodes, or audiobooks on Spotify. |
| get_playlistA | Get details of a Spotify playlist. |
| update_playlistB | Update a playlist's name, description, or visibility. |
| get_playlist_itemsA | Get items (tracks/episodes) in a playlist. |
| add_playlist_itemsA | Add tracks or episodes to a playlist. Auto-chunks at 100 items per request. |
| remove_playlist_itemsA | Remove tracks or episodes from a playlist. Auto-chunks at 100 items per request. |
| reorder_playlist_itemsB | Reorder items in a playlist. |
| get_my_playlistsA | Get the current user's playlists. |
| create_playlistB | Create a new playlist for the current user. |
| get_saved_tracksA | Get the current user's saved tracks. |
| get_saved_albumsA | Get the current user's saved albums. |
| get_saved_showsA | Get the current user's saved shows (podcasts). |
| get_saved_episodesA | Get the current user's saved episodes. |
| get_saved_audiobooksA | Get the current user's saved audiobooks. |
| save_to_libraryA | Save items (tracks/albums/shows/episodes/audiobooks) to the user's library. |
| remove_from_libraryA | Remove items from the current user's library. Auto-chunks at 50 items per request. |
| check_saved_in_libraryA | Check if items are saved in the current user's library. |
| get_showA | Get details of a Spotify show (podcast). |
| get_showsA | Get details of multiple shows in one call (up to 50 IDs). |
| get_show_episodesA | Get episodes of a Spotify show. |
| get_episodeA | Get details of a podcast episode. |
| get_episodesA | Get details of multiple episodes in one call (up to 50 IDs). |
| get_audiobookB | Get details of a Spotify audiobook. |
| get_audiobooksA | Get details of multiple audiobooks in one call (up to 50 IDs). |
| get_audiobook_chaptersA | Get chapters of a Spotify audiobook. |
| get_chapterA | Get details of a specific audiobook chapter. |
| get_chaptersA | Get details of multiple chapters in one call (up to 50 IDs). |
| get_my_profileA | Get the current user's Spotify profile. |
| get_my_top_itemsB | Get the current user's top artists or tracks. |
| whoamiA | Diagnostic: show auth status, profile basics, active device, and configured scopes. |
| get_playback_stateA | Get the current playback state including track, device, and progress. |
| get_currently_playingB | Get the currently playing track or episode. |
| playA | Start or resume playback. |
| pauseB | Pause playback on the active device. |
| next_trackA | Skip to the next track. |
| previous_trackA | Skip to the previous track. |
| seekA | Seek to a position in the currently playing track. |
| set_repeatA | Set the repeat mode for playback. |
| set_volumeA | Set the playback volume. |
| toggle_shuffleA | Set or toggle shuffle mode for playback. |
| transfer_playbackA | Transfer playback to a different device. |
| get_devicesA | Get the user's available Spotify devices. |
| add_to_queueA | Add a track or episode to the playback queue. |
| get_queueB | Get the current playback queue. |
| get_recently_playedB | Get the user's recently played tracks. |
| get_followed_artistsA | Get the current user's followed artists. Cursor-paginated. |
| follow_artists_or_usersA | Follow one or more artists or users. Auto-chunks at 50 IDs per request. |
| unfollow_artists_or_usersA | Unfollow one or more artists or users. Auto-chunks at 50 IDs per request. |
| check_followingA | Check whether the current user follows the given artists or users. |
| follow_playlistA | Follow a playlist. |
| unfollow_playlistC | Unfollow a playlist. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| build_playlist_from_recent | Build a new playlist from the user's recent listening. |
| weekly_listening_summary | Summarize what the user listened to in the past week. |
| playlist_from_artists | Build a playlist seeded by a comma-separated list of artists. Args: artists: Comma-separated list of artist names. tracks_per_artist: How many tracks to pull per artist (default 5). |
| library_cleanup | Review the user's saved library and suggest cleanup candidates. Args: scan_size: How many recently-saved tracks to scan (default 100). |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| me_profile | |
| me_playback | |
| me_queue | |
| me_top_tracks | |
| me_top_artists |
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/llyfn/spotify-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server