Skip to main content
Glama
umsachde

spotify-mcp

by umsachde

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault

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

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
search_musicC

Search Spotify. filter is "track" or "artist".

get_playlistsA

List the current user's playlists. Omit limit to fetch all of them.

get_playlist_tracksA

Get the tracks in a playlist. Omit limit to fetch the entire playlist.

Local files and episodes (no track id) are skipped. See _track_of for the two payload shapes this has to read.

get_saved_tracksA

Get the current user's saved ("Liked Songs") tracks. Omit limit for all of them.

get_trackB

Get a single track's metadata (title, artists, album, ...).

get_recommendationsA

Get Spotify's algorithmic recommendations seeded from one track.

May 403 if this app doesn't have access to /recommendations -- Spotify restricts it for apps created after Nov 2024 without Extended Quota Mode.

get_artistB

Get an artist's profile (name, genres, popularity, images).

get_artist_top_tracksB

Get an artist's top tracks (Spotify caps this at ~10 -- there's no "full catalog" endpoint the way YouTube Music's channel Songs tab has).

get_related_artistsB

Get artists related to the given one.

May 403 for apps without access to this endpoint -- same restriction as /recommendations.

get_recently_playedB

Get the user's recently played tracks (each item wraps a "track" key).

get_current_userA

Get the authenticated user's own profile (id, display_name, ...).

The id is the only way to tell a playlist the user owns from one they merely follow: get_playlists returns both, indistinguishable except by owner.id. That distinction is load-bearing rather than cosmetic -- Spotify 403s playlist_items on another user's playlist, so a caller that treats followed playlists as its own gets an error it cannot act on.

get_artist_albumsA

Get an artist's albums and singles. Omit limit to fetch all of them.

This plus get_album_tracks is the only route to an artist's real catalog that survives Spotify's post-Nov-2024 restrictions: get_artist_top_tracks 403s for apps without Extended Quota Mode and caps at ~10 even when it works. Appears-on and compilation albums are excluded -- they would credit the artist for other people's records.

get_album_tracksA

Get an album's tracks. Omit limit to fetch all of them.

Album track objects are the "simplified" shape and carry no album key of their own, so callers that need one should attach it from the album they asked for.

create_playlistB

Create a new playlist owned by the current user and return it (id, name, ...).

add_tracks_to_playlistA

Add tracks to a playlist by Spotify track ID (or URI). Chunks in batches of 100, Spotify's per-request limit.

logoutA

Delete the cached Spotify OAuth token.

Subsequent tool calls will fail until you re-authenticate via scripts/setup_auth_spotify.py.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A3.5/5.0

Scored across 16 tools

Disambiguation4/5

Most tools are clearly distinct by resource (tracks, playlists, artists, albums, user). Minor overlap: get_playlist_tracks vs get_saved_tracks vs get_recently_played all return track lists, but their source contexts are clear. get_artist_top_tracks and get_artist_albums both provide artist catalog access, though descriptions clarify the distinction.

Naming Consistency4/5

The set predominantly follows a verb_noun pattern (get_*, create_playlist, add_tracks_to_playlist, search_music, logout). The two exceptions are search_music and logout, which are still readable and not jarring. Overall consistent and predictable.

Tool Count4/5

16 tools is slightly above the ideal 3-15 range but appropriate for Spotify's broad domain (search, user library, playlists, artists, albums, recommendations). Each tool covers a distinct need; no obvious redundancy.

Completeness3/5

The surface covers search, playlist CRUD (create, read, add tracks), saved tracks, artist/album browsing, and user info. Notable gaps: no update/delete playlist, no remove tracks from playlist, no play/control playback, no track/album search filtering beyond track/artist, and no user's top items. Core browsing is solid but lifecycle coverage is incomplete.

Maintenance

ActivityMaintained
ResponsivenessNo issues