Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
SPOTIFY_CLIENT_IDYesYour app's client id
SPOTIFY_CLIENT_SECRETYesYour app's client secret
SPOTIFY_REFRESH_TOKENYesThe token printed by auth_setup.py
SPOTIFY_MCP_CONFIG_DIRNoWhere the token cache (tokens.json) lives~/.config/spotify-mcp
SPOTIFY_MCP_TOKEN_CACHENoSet to off to keep tokens in memory onlyon

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
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
now_playingA

What's currently playing on Spotify (track, artist, album, progress).

playB

Resume playback, or play a specific track/album/playlist URI.

pauseB

Pause playback.

skipA

Skip to the next track.

previousB

Go to the previous track.

volumeB

Set playback volume 0-100.

seekB

Seek to a position (milliseconds) in the current track.

queueC

Add a track URI to the playback queue.

devicesA

List available playback devices (speakers, desktop apps, phone).

transferC

Move playback to a specific device by id.

searchC

Search tracks/artists/albums/playlists. Optional year & genre filters.

resolveB

Resolve a track name (e.g. 'Blinding Lights by The Weeknd') to its URI.

artist_catalogC

An artist's top tracks or album catalog (name/URI/URL accepted).

recommendationsB

Recommendations from seed tracks/artists/genres (Spotify has restricted this endpoint for newer apps; may return an explanatory error).

audio_featuresB

Audio features (tempo/energy/danceability) for a track (Spotify has restricted this endpoint for newer apps; may return an explanatory error).

recent_tracksC

Recently played tracks.

top_tracksC

Your top tracks over short/medium/long term.

playlist_listC

List your playlists (with ids + track counts).

playlist_getC

Get a playlist's details + tracks (paginated).

playlist_createC

Create a new playlist.

playlist_addB

Bulk-add songs (names or URIs) to a playlist. Auto-resolves names, dedupes, and chunks any number of songs up to Spotify's 10k/playlist ceiling.

playlist_removeA

Remove songs from a playlist. DESTRUCTIVE — needs confirm=true, else returns a dry-run preview.

playlist_reorderC

Move a track (or range) to a new position in a playlist.

playlist_renameC

Rename a playlist.

playlist_set_detailsC

Update a playlist's name / description / public flag.

playlist_emptyA

Remove ALL tracks from a playlist. DESTRUCTIVE — needs confirm=true.

playlist_deleteA

Delete (unfollow) a playlist. DESTRUCTIVE — needs confirm=true.

saved_tracksD

Your Liked Songs.

save_tracksB

Add songs (names or URIs) to Liked Songs.

unsave_tracksA

Remove songs from Liked Songs. DESTRUCTIVE — needs confirm=true.

saved_albumsC

Your saved albums.

save_albumsC

Save albums (ids/URIs/URLs).

unsave_albumsB

Remove saved albums. DESTRUCTIVE — needs confirm=true.

followed_artistsC

Artists you follow (needs follow scope — needs the user-follow-* scopes).

follow_artistsB

Follow artists (needs follow scope).

unfollow_artistsA

Unfollow artists. DESTRUCTIVE — needs confirm=true (needs follow scope).

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

C2.7/5.0

Scored across 36 tools

Disambiguation4/5

Most tools target a clearly distinct resource or action, and the playback/library/playlist clusters are cleanly separated. The main overlap is playlist_rename versus playlist_set_details (both can change a playlist's name), and resolve versus search have related but distinguishable purposes.

Naming Consistency3/5

Naming mixes conventions: single verbs (play, pause, skip), noun-first (saved_tracks, now_playing, top_tracks), verb_noun (save_albums, follow_artists), and noun_verb for the playlist_* family. The playlist_ prefix is internally consistent and everything stays readable, but there is no single predictable pattern across the server.

Tool Count3/5

36 tools is on the heavy side, but the domain (playback control, library, discovery, and full playlist CRUD) genuinely warrants many operations. It sits at the borderline where a few tools (e.g. separate rename and set_details) could be consolidated.

Completeness4/5

Coverage is broad and coherent: playback, library management, search/discovery, and playlist lifecycle all have create/read/update/delete paths with sensible destructive guards. Minor gaps remain, e.g. shuffle/repeat mode toggles and dedicated album/artist detail retrieval.

Maintenance

ActivityMaintained
ResponsivenessNo issues