spotify-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| SPOTIFY_CLIENT_ID | Yes | Your Spotify Client ID from the Spotify Developer Dashboard. | |
| SPOTIFY_MCP_TOOLSETS | No | Comma-separated list of toolsets to load (core, social, discovery, power, all). Useful for clients with tool limits like Cursor. | all |
| SPOTIFY_REDIRECT_URI | No | The Redirect URI configured in the Spotify Developer Dashboard. Must match exactly. | http://127.0.0.1:8888/callback |
| SPOTIFY_CLIENT_SECRET | No | Your Spotify Client Secret. Optional; if provided, uses traditional OAuth, otherwise uses 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
| 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 |
|---|---|
| spotify_statusB | Check Spotify connection status, profile info, and current playback. |
| spotify_now_playingA | Get the currently playing track, playback state, and device info. |
| spotify_playC | Start or resume playback of a track URI, album/playlist context_uri, or just resume if neither given. |
| spotify_pauseB | Pause the current playback. |
| spotify_resumeC | Resume paused playback. |
| spotify_skip_nextC | Skip to the next track. |
| spotify_skip_previousC | Skip to the previous track. |
| spotify_add_to_queueC | Add a track or episode URI to the playback queue. |
| spotify_get_queueA | Get the current playback queue (now playing + upcoming tracks). |
| spotify_get_devicesA | List all available Spotify Connect devices. |
| spotify_set_volumeB | Set playback volume (0-100). Requires Premium. |
| spotify_seekA | Seek to a position (in milliseconds) in the currently playing track. Requires Premium. |
| spotify_set_repeatA | Set repeat mode: off, context, or track. Requires Premium. |
| spotify_toggle_shuffleB | Turn shuffle on or off. Requires Premium. |
| spotify_transfer_playbackC | Transfer playback to a different device. Requires Premium. |
| spotify_get_my_playlistsA | List your playlists (up to 50). |
| spotify_get_playlistA | Get playlist details and its first page of tracks. |
| spotify_get_playlist_tracksA | Get tracks from a playlist with pagination (limit up to 100, offset for paging). |
| spotify_create_playlistB | Create a new empty playlist with the given name. |
| spotify_add_to_playlistA | Add track URIs to a playlist (max 100 per call). Appends by default or inserts at position. |
| spotify_reorder_playlistB | Move tracks within a playlist (range_start to insert_before, range_length consecutive). |
| spotify_update_playlistA | Update a playlist's name, description, or public/private visibility. |
| spotify_follow_playlistD | Follow a playlist. |
| spotify_get_playlist_coverC | Get a playlist's cover image URLs. |
| spotify_check_playlist_followersA | Check if specific users follow a playlist (max 5 user IDs). |
| spotify_searchA | Search Spotify for tracks, artists, albums, or playlists. Supports field filters like artist:, genre:, year: in the query. |
| spotify_related_artistsB | Get up to 20 artists similar to a given artist. |
| spotify_discover_by_artistA | Discover tracks from an artist's related artists' recent albums (1-50). |
| spotify_discover_by_moodB | Discover tracks by mood (happy, sad, energetic, chill, focused, romantic, angry, party). |
| spotify_genre_explorerC | Explore a genre by finding its tracks and artists. |
| spotify_discover_deep_cutsB | Find an artist's deep cuts -- album tracks that were not released as singles. |
| spotify_top_tracksB | Get your top tracks by time range (short_term/medium_term/long_term), up to 50. |
| spotify_top_artistsA | Get your top artists by time range (short_term/medium_term/long_term), up to 50. |
| spotify_recently_playedA | Get your recently played tracks in reverse chronological order, up to 50. |
| spotify_get_saved_tracksA | Get your liked/saved tracks with pagination (limit up to 50, offset for paging). |
| spotify_save_tracksA | Save tracks to your Liked Songs (max 50 URIs per call). |
| spotify_get_saved_albumsA | Get your saved albums with pagination (limit up to 50, offset for paging). |
| spotify_save_albumsB | Save albums to your library (max 50 per call). |
| spotify_check_saved_tracksC | Check which tracks are in your Liked Songs (max 50 per call). |
| spotify_check_saved_albumsA | Check which albums are saved in your library (max 50 per call). |
| spotify_get_saved_episodesA | Get your saved podcast episodes (up to 50). |
| spotify_follow_artistsB | Follow one or more artists (max 50 per call). |
| spotify_get_followed_artistsC | Get your followed artists (up to 50). |
| spotify_check_following_artistsB | Check if you follow specific artists (max 50 per call). |
| spotify_check_following_usersC | Check if you follow specific Spotify users. |
| spotify_follow_usersC | Follow one or more Spotify users. |
| spotify_get_saved_showsB | Get your saved/followed podcasts and shows (up to 50). |
| spotify_get_showC | Get detailed information about a podcast or show. |
| spotify_get_show_episodesA | Get episodes of a show, newest first (up to 50). |
| spotify_save_showsC | Save shows to your library (max 50 per call). |
| spotify_check_saved_showsC | Check which shows are saved in your library (max 50 per call). |
| spotify_save_episodesA | Save podcast episodes to your library (max 50 per call). |
| spotify_get_episodeC | Get detailed information about a podcast episode. |
| spotify_get_trackC | Get detailed information about a track. |
| spotify_get_albumC | Get detailed information about an album including its tracklist. |
| spotify_get_artistC | Get detailed information about an artist. |
| spotify_get_userC | Get a Spotify user's public profile and public playlists. |
| spotify_get_artist_albumsC | List all albums, singles, and compilations for an artist. |
| spotify_deduplicate_playlistA | Find and optionally remove duplicate tracks from a playlist. Set dry_run=False to remove. |
| spotify_merge_playlistsC | Merge multiple playlists into one new playlist, removing duplicates by default. |
| spotify_split_playlist_by_artistA | Split a playlist into per-artist sub-playlists. Artists with fewer than 3 tracks go into a "Various" playlist. |
| spotify_playlist_diffB | Compare two playlists, showing tracks unique to each and tracks they share. |
| spotify_export_playlistC | Export a playlist as a formatted text list with artist, album, and duration for each track. |
| spotify_find_playlist_overlapsB | Scan all your playlists and find which pairs share tracks, ranked by overlap. |
| spotify_find_playlist_subsetsA | Scan all your playlists and find ones where one playlist is a near-subset of another. Threshold is the percentage of the smaller playlist's tracks that must exist in the larger. |
| spotify_absorb_playlistA | Merge unique tracks from a source playlist into a target playlist. Tracks already in target are skipped. Set dry_run=False to apply. |
| spotify_listening_reportB | Generate a listening report combining top tracks, top artists, genre breakdown, and recent activity. |
| spotify_playlist_analysisC | Analyze a playlist's composition including top artists, genre distribution, decades, and duration. |
| spotify_taste_evolutionB | Compare your top artists and genres across short, medium, and long term to identify taste trends. |
| spotify_smart_shuffleB | Reorder a playlist using a smart strategy: variety, alphabetical_artist, chronological, genre_variety, energy_arc, or reverse_chronological. |
| spotify_artist_deep_diveB | Get a comprehensive artist profile including genres, full discography, and related artists. |
| spotify_create_radioA | Create a radio-style playlist from a seed track or artist by sampling related artists' catalogs. |
| spotify_time_capsuleC | Snapshot your current top tracks into a private playlist as a musical time capsule. |
| spotify_vibe_playlistB | Create a playlist matching a mood (happy, sad, energetic, chill, focused, romantic, angry, party). |
| spotify_era_playlistC | Create a playlist of tracks from a specific decade (1960s through 2020s). |
| spotify_sort_playlistB | Sort a playlist by track_name, artist_name, album_name, duration, or date_added. |
| spotify_cleanup_playlistC | Find and optionally remove unavailable and duplicate tracks from a playlist. Set dry_run=False to apply. |
| spotify_interleave_playlistsA | Create a new playlist by round-robin interleaving tracks from 2-5 source playlists. |
| spotify_playlist_radioB | Generate a radio playlist from an existing playlist's top artists and their related artists, excluding existing tracks. |
| spotify_build_queueB | Add multiple tracks (max 50) to the playback queue in order. Requires an active device. |
| spotify_queue_from_playlistC | Queue tracks from a playlist, optionally shuffled. Requires an active device. |
| spotify_playlist_vibeB | Analyze a playlist's vibe, energy, and genre makeup using artist genre data. |
| spotify_find_vibe_matchesA | Find tracks that match a playlist's vibe by searching its top genres, excluding existing tracks. |
| spotify_listening_patternsA | Analyze recent listening patterns: time-of-day, day-of-week, sessions, and repeat plays. |
| spotify_taste_profileA | Build a genre taste profile with diversity score and niche artist detection from your top artists. |
| spotify_playlist_compareC | Compare 2-5 playlists side by side: shared tracks, shared artists, unique tracks, and size/duration. |
| spotify_playlist_freshnessA | Scan all your playlists and show when each was last updated, sorted by staleness (oldest first). |
| spotify_artist_timelineA | Map an artist's full release timeline grouped by year, with career span and release type counts. |
| spotify_artist_networkC | Map an artist's network of related artists. Depth 2 reveals bridge artists connecting different parts of the network. |
| spotify_find_songA | Find songs using a natural-language description. Parses quoted titles, "by artist", decade refs, and genre keywords. |
| spotify_sync_libraryA | Sync your Spotify library to a local index for AI-powered playlist curation. Fetches all liked songs and tracks from playlists you created (skips followed/saved playlists by others). Run periodically to keep fresh. Args: include_liked: Sync liked/saved songs. Default True. include_playlists: Sync your created playlists. Default True. force: Re-sync even if synced recently. Default False. |
| spotify_library_statsA | Get a summary of your synced library — artist counts, playlist names, and dates. Returns your full artist landscape (compact) so the AI can reason about vibes, genres, and groupings without loading every track. |
| spotify_query_libraryA | Query your synced library with filters. Returns matching tracks with URIs. All filters are combined with AND logic. All text matching is case-insensitive and supports partial matches. Args: artists: Filter by artist names (partial match, case-insensitive). playlist_name: Filter to tracks from a specific playlist (partial match). added_after: Only tracks added after this date (YYYY-MM-DD). added_before: Only tracks added before this date (YYYY-MM-DD). source: "liked", "playlists", or "all" (default "all"). track_name: Filter by track name (partial match). album_name: Filter by album name (partial match). limit: Max results (default 200, max 500). |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- 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/gupta-kush/spotify-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server