spotify-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| SPOTIFY_MCP_REPO | No | Optional override for the path to the spotify-mcp repository checkout, used by the Codex plugin | |
| SPOTIFY_CLIENT_ID | Yes | Your Spotify Web API application client ID, set in .env |
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_render_resultsA | Render a final, display-ready list of Spotify entities. Call data tools first, then pass only the results the user should see. |
| spotify_statusA | Check whether local Spotify configuration and authentication work. |
| spotify_searchA | Search Spotify for tracks, albums, artists, playlists, podcast episodes, or shows. Returns at most 10 typed results per call. |
| spotify_recently_playedC | Return the current user's most recently played Spotify tracks. |
| spotify_top_tracksA | Return the current user's most-played tracks for a Spotify time range. |
| spotify_top_artistsA | Return the current user's most-played artists for a Spotify time range. |
| spotify_now_playingA | Return the current Spotify playback item, state, device, and volume. |
| spotify_devicesA | List available Spotify Connect devices and their current state. |
| spotify_queueA | Return the current item and the next items in the Spotify playback queue. |
| spotify_playA | Start a Spotify track, album, artist, or playlist on a selected or active device. Provide a Spotify URI or both item_type and item_id. |
| spotify_resumeA | Resume Spotify playback on a selected or active device. |
| spotify_pauseA | Pause Spotify playback on a selected or active device. |
| spotify_nextB | Skip to the next item in the Spotify playback queue. |
| spotify_previousB | Skip to the previous item in Spotify playback. |
| spotify_add_to_queueA | Add one track or podcast episode to the Spotify queue. Provide a Spotify URI or both item_type and item_id. |
| spotify_set_volumeB | Set Spotify playback volume from 0 to 100 percent. |
| spotify_adjust_volumeA | Increase or decrease Spotify playback volume relative to the selected device's current volume, clamped from 0 to 100 percent. |
| spotify_saved_tracksA | Return one page of the current user's Spotify Liked Songs. |
| spotify_sample_liked_songsA | Return a deterministic sample spanning the full history of Liked Songs. Use it for long-term taste and rediscovery instead of reading only the newest page. |
| spotify_library_containsA | Check whether exact Spotify track IDs are in the current user's Liked Songs. |
| spotify_library_saveA | Save exact Spotify track IDs to Liked Songs and re-read their state for verification. |
| spotify_library_removeA | Remove exact Spotify track IDs from Liked Songs and re-read their state for verification. |
| spotify_albumsA | Return typed details for exact Spotify album IDs. Albums are fetched through the supported singular endpoint; unknown IDs are reported separately. |
| spotify_album_tracksA | Return one paginated page of tracks from an exact Spotify album ID. |
| spotify_saved_albumsA | Return one page of albums saved in the current user's Spotify library. |
| spotify_album_library_containsA | Check whether exact Spotify album IDs are saved in the user's library. |
| spotify_album_library_saveA | Save exact Spotify album IDs through the current shared library endpoint and verify the resulting state once. |
| spotify_album_library_removeA | Remove exact Spotify album IDs through the current shared library endpoint and verify the resulting state once. |
| spotify_playlistsA | Return one page of the current user's Spotify playlists. |
| spotify_playlistA | Return metadata for an exact Spotify playlist ID. |
| spotify_playlist_itemsA | Return one page of tracks and podcast episodes from an exact playlist ID using Spotify's current playlist-items endpoint. |
| spotify_playlist_createA | Create a Spotify playlist, then re-read its visibility once. A failed or mismatched verification is returned explicitly and is never retried blindly. |
| spotify_playlist_updateA | Update metadata for an exact playlist ID and re-read each requested field once for verification. |
| spotify_playlist_addA | Add exact Spotify track IDs or track/episode URIs. A returned snapshot proves acceptance; a missing snapshot is reported as ambiguous and must not be retried blindly. |
| spotify_playlist_removeA | Remove exact Spotify track IDs or track/episode URIs. Pass snapshot_id to target an exact playlist version. A missing returned snapshot is explicitly ambiguous. |
| spotify_playlist_reorderA | Move a consecutive range within an exact playlist ID using the current items endpoint. A missing returned snapshot is explicitly ambiguous. |
| spotify_playlist_unfollowA | Remove an exact playlist ID from the current user's library and verify that it is no longer saved. Spotify does not expose permanent playlist deletion. |
| spotify_audio_featuresA | Get typed audio measurements for exact Spotify track IDs. Returns explicit missing tracks and fields, field-level provenance, retained conflicts, and user overrides. Auto mode falls back to ReccoBeats only when Spotify returns 403 or 404. |
| spotify_audio_compareA | Compare Spotify and ReccoBeats readings for exact track IDs. Provider failures, missing providers, missing fields, and material conflicts remain explicit. |
| spotify_audio_auditA | Audit audio-analysis coverage and conflicts for exact Spotify track IDs without changing Spotify or treating heuristic measurements as musical quality scores. |
| spotify_dj_analyzeA | Fetch current audio evidence and store a position-safe DJ analysis. Use |
| spotify_dj_planA | Create an immutable deterministic DJ order without changing Spotify. |
| spotify_dj_applyC | Preview or apply a plan with snapshot checks, receipts, and fresh verification. |
| spotify_dj_restoreB | Preview or restore the exact pre-plan order recorded in a mutation receipt. |
| spotify_dj_auditA | Audit every position in a Spotify playlist for audio-feature coverage, exact and likely duplicate recordings, tempo ambiguity, provider conflicts, and heuristic opening, peak, and reset candidates without changing Spotify. |
| spotify_playlist_sort_by_bpmB | Preview or apply the compatibility BPM and energy ordering workflow. Dry-run is the default; applying uses snapshot checks, durable receipts, and fresh verification. |
| spotify_podcast_discoverA | Search Spotify shows and podcast episodes together, returning at most 10 typed results of each kind with canonical Spotify links. |
| spotify_podcast_showA | Return typed details and a canonical Spotify link for one exact show ID. |
| spotify_podcast_show_episodesA | Return one bounded page of episodes for an exact Spotify show ID. |
| spotify_podcast_episodeA | Return typed metadata for one exact Spotify episode ID. Preview URL evidence may be absent and no full audio is returned. |
| spotify_saved_showsA | Return one bounded page of shows saved in the current user's library. |
| spotify_saved_episodesA | Return one bounded page of episodes saved in the current user's library. |
| spotify_taste_recommendationsA | Build deterministic local rediscovery suggestions from top tracks, recent plays, and a stratified Liked Songs sample. This is local curation, not Spotify personalization. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| spotify-results | Compact clickable Spotify result cards. |
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/martin-gomola/spotify-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server