Skip to main content
Glama
abenke

Spotify MCP

by abenke

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
SPOTIFY_CLIENT_IDYesYour Spotify app Client ID from the Developer Dashboard.
SPOTIFY_MCP_CACHENoPath to cache OAuth tokens. Default: ~/.spotify-mcp/token.json
SPOTIFY_REDIRECT_URINoRedirect URI for OAuth. Must match exactly one in your app. Default: http://127.0.0.1:8888/callback
SPOTIFY_CLIENT_SECRETNoOptional. If set, uses classic Authorization Code flow instead of PKCE.

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
authenticateA

Sign in to Spotify via OAuth (opens a browser window).

Run this once before using the other tools. Tokens are cached locally and refreshed automatically, so you normally only need to authenticate a single time per machine.

Args: force: If true, force Spotify to re-show the consent screen (useful to switch accounts or re-grant scopes).

auth_statusA

Report whether the server is currently authenticated with Spotify.

get_current_userA

Get the profile of the signed-in Spotify user (id, name, country, etc.).

searchA

Search the Spotify catalog.

Args: query: Search text. Supports Spotify field filters, e.g. artist:radiohead track:creep or year:2020 genre:jazz. types: Comma-separated result types to return. Any of: track, album, artist, playlist. Defaults to track. limit: Max results per type (1-50). Defaults to 10.

get_trackA

Get detailed information about a single song.

Args: track_id: A Spotify track ID, spotify:track:... URI, or open.spotify.com track URL.

list_my_playlistsA

List the playlists owned or followed by the signed-in user.

Args: limit: Number of playlists to return (1-50). Defaults to 20. offset: Index to start from, for paging through large libraries.

get_playlistA

Get a playlist's details and its tracks.

Args: playlist_id: A Spotify playlist ID, spotify:playlist:... URI, or open.spotify.com playlist URL. tracks_limit: Max number of tracks to include (default 100). If the playlist has more, tracks_truncated will be true.

create_playlistA

Create a new playlist for the signed-in user.

Args: name: The playlist name. public: Whether the playlist is public. Defaults to false (private). description: Optional playlist description. collaborative: If true, others can edit it (forces the playlist private). track_uris: Optional list of track IDs/URIs/URLs to add on creation.

add_tracks_to_playlistA

Add one or more songs to an existing playlist.

Args: playlist_id: A Spotify playlist ID, URI, or URL. track_uris: List of track IDs, spotify:track:... URIs, or track URLs. position: Optional zero-based index to insert at (defaults to the end).

get_currently_playingA

Show the track currently playing on the user's Spotify account (if any).

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A4.2/5.0

Scored across 10 tools

Disambiguation5/5

Each tool has a distinct purpose: authentication, user info, search, playback status, and playlist management. No overlapping functionality, and descriptions clearly differentiate them.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern in snake_case (e.g., create_playlist, get_currently_playing, add_tracks_to_playlist), making the API predictable and easy to navigate.

Tool Count5/5

10 tools provide a well-scoped set for a music assistant: authentication, user profile, search, playback info, and playlist CRUD. This covers essential interactions without being excessive or insufficient.

Completeness4/5

Core workflows are covered (auth, search, playlist management). Minor gaps exist (e.g., removing tracks from playlists, updating playlist metadata, playback control), but most agents will find the set sufficient for common tasks.

Maintenance

ActivityStale
ResponsivenessNo issues