Spotify MCP
The Spotify MCP server allows you to control and interact with Spotify through a FastMCP tool. With this server, you can:
Control playback (play, pause, resume, skip, go back, seek position)
View and manage your queue (add, reorder, view tracks)
Search for tracks, artists, albums, or playlists
View your personal playlists and top artists
Get detailed information about Spotify items
Start playback of specific tracks or playlists
Get recommendations based on seeds (artists, tracks, genres)
Set repeat mode for playback
Add tracks to playlists
Get current playback state and track information
Allows control and interaction with Spotify, including playlist management, playback control (play, pause, skip), track searching, queue management, artist information retrieval, and personalized recommendations based on listening history.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Spotify MCP play my 'Workout Mix' playlist"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Spotify MCP
A FastMCP tool for Spotify.
Demo
Link: https://drive.google.com/file/d/1jGGQBzeXSKSJijeUwFZLdvrKPmPuogGd/
Related MCP server: Spotify MCP Server
Pre-requisites
Installation
Clone this repository
Create a
.envfile in the root of the repository and add your Spotify API credentials (copy over from.env.example)You can get your credentials by going to the Spotify Developer Dashboard and creating an app.
Go to Cursor Settings > Features > MCP Servers > + Add new MCP server
Name: Spotify, Type: command, Command: uv --directory <path-to-repository/mcp-spotify> run main.py
You should see the tool installed now.

Trying it out
Open
Composerin "agent" mode and voila, you can have cursor control your Spotify player. (make sure you have spotify open on an active device)
Features
Below is an example conversation showcasing how you can interact with the Spotify MCP tool through Cursor Composer:
User: "Show me my playlists."
Response: "Here are your playlists: Chill Vibes, Workout Mix, Top Hits."User: "Play my 'Chill Vibes' playlist."
User: "Pause song."
Response: "Playback paused."User: "Resume song."
Response: "Resuming playback..."User: "What song is this?"
Response: "You're listening to 'Faded' by Alan Walker."User: "Tell me about this artist and show me some popular tracks."
Response: "Artist Info: Alan Walker."User: "Show me my top artists from the last 6 months."
Response: "Here are your most played artists..."User: "Search for Coldplay."
Response: "Found artist: Coldplay. Here are their top tracks..."User: "Play song 'Fix You'."
Response: "Starting playback for 'Fix You'..."User: "Show me my queue."
Response: "Current queue: Track 1, Track 2, Track 3..."User: "Add 'Paradise' to my queue."
Response: "Added 'Paradise' by Coldplay to your queue."User: "Move 'Paradise' up in the queue."
User: "Set it on repeat."
User: "I like this song. Recommend some similar tracks."
Response: "Here are some recommendations based on this track..."User: "Add this track to my 'Chill Vibes' playlist."
Additional Available Features:
Seek to specific position in track
View detailed playback state
Skip multiple tracks at once
If you want more features to be supported, feel free to raise an issue!
Available Tools
21 toolsadd_to_playlistC
Add tracks to a playlist
Args:
playlist_id: Spotify playlist ID
track_ids: List of track IDs to add
Inputs: playlist_id (required), track_ids (required).
add_to_queueC
Add a track to the queue
Args:
track_id: Spotify track ID to add
Inputs: track_id (required).
get_artist_top_tracksC
Get top tracks for an artist
Args:
artist_id: Spotify artist ID
Inputs: artist_id (required).
get_current_trackB
Get information about the currently playing track
Inputs: no named parameters.
get_item_infoC
Get detailed information about a Spotify item
Args:
item_id: Spotify ID
type: One of 'track', 'album', 'artist', 'playlist'
Inputs: item_id (required), type.
get_my_playlistsC
FastMCP tool to get user playlists using SpotifyClient.
Inputs: no named parameters.
get_playback_stateB
Get current playback information
Inputs: no named parameters.
get_queueB
Get the current queue of tracks
Inputs: no named parameters.
get_recommendationsB
Get Spotify recommendations based on seeds
Args:
seed_artists: Comma-separated artist IDs
seed_tracks: Comma-separated track IDs
seed_genres: Comma-separated genres
limit: Number of recommendations
Inputs: seed_artists, seed_tracks, seed_genres, limit.
get_top_artistsB
Get user's top artists from Spotify
Args:
limit: Number of artists (max 50)
time_range: One of 'short_term' (4 weeks), 'medium_term' (6 months), 'long_term' (all time)
Inputs: limit, time_range.
next_trackA
Skip to next track in queue
Inputs: no named parameters.
pause_playbackB
FastMCP tool to pause playback on spotify.
Inputs: no named parameters.
previous_trackB
Go back to previous track
Inputs: no named parameters.
reorder_queueB
Reorder tracks in queue by moving a track to a different position
Args:
range_start: Position of track to move
insert_before: Position to insert the track
Inputs: range_start (required), insert_before (required).
search_spotifyC
Search Spotify for tracks, artists, albums, or playlists.
Args:
query: Search term
type: One of 'track', 'artist', 'album', 'playlist'
limit: Max number of results
Inputs: query (required), type, limit.
seek_positionC
Seek to position in current track
Args:
position_ms: Position in milliseconds
Inputs: position_ms (required).
set_repeat_modeB
Set repeat mode for playback
Args:
state: One of 'track', 'context', or 'off'
Inputs: state (required).
skip_tracksC
Skip multiple tracks at once
Args:
num_skips: Number of tracks to skip (default: 1)
Inputs: num_skips.
start_playbackB
FastMCP tool to resume playback on the currently active Spotify device.
Inputs: no named parameters.
start_playback_trackC
Start playback of a specific track on Spotify
Args:
track_uri: Spotify URI of the track (e.g. 'spotify:track:1234...')
device_id: Optional device to play on
Inputs: track_uri (required), device_id.
start_playlist_playbackC
Start playback of a specific playlist
Args:
playlist_id: Spotify playlist ID
device_id: Optional device to play on
Inputs: playlist_id (required), device_id.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 21 tools
Most tools have distinct purposes targeting specific Spotify resources and actions, with clear boundaries between playback control, queue management, and content retrieval. However, some overlap exists between 'skip_tracks' and 'next_track'/'previous_track', and 'start_playback' vs 'start_playback_track'/'start_playlist_playback' could cause confusion about which to use for resuming vs starting specific content.
The server maintains strong consistency with snake_case naming throughout and mostly follows verb_noun patterns (e.g., 'get_current_track', 'add_to_queue', 'search_spotify'). Minor deviations include 'get_item_info' (noun_verb) and some tools using 'playback' while others use 'track'/'playlist' in similar contexts, but the overall pattern remains clear and predictable.
With 21 tools, this feels borderline heavy for a music streaming interface. While Spotify's API is feature-rich, the tool set includes some redundancy (e.g., multiple skip/playback variants) that could potentially be consolidated. The count is manageable but approaches the upper limit of what feels well-scoped for this domain.
The tool surface provides comprehensive coverage of Spotify's core functionality including playback control (play/pause/skip/seek/repeat), queue management, content retrieval (tracks/artists/playlists/recommendations), search capabilities, and user data access. There are no obvious gaps for typical agent workflows, with CRUD-like operations well-represented across the music streaming domain.
Maintenance
Related MCP Connectors
Spotify MCP server for ChatGPT, Claude and any AI agent: search songs and artists, list playlists, read playlist songs, create playlist, add songs to playlist, remove songs from playlist, set playlist public or private and save to Liked Songs in your own Spotify account. Cotlet works in the account through your Cloud Browser, a real Chrome where you sign in to Spotify yourself; Cotlet does not store your password and you need no Spotify API key. About the official Spotify API: Spotify has a full Web API and, since 23 Apr 2026, an official connector for Claude (checked 5 Nov 2026). The API needs an app you register, and in development mode the app owner must have Premium and the app allows 5 users; unlimited users need a registered business with at least 250,000 monthly users. Setup and FAQ: https://cotlet.dev/integrations/spotify-api-mcp-server
Generate AI music via the Lacuna Music API from MCP clients like Claude Desktop & Code.
Spotify MCP — Web API via client_credentials OAuth
ScoreStarling is an all-in-one AI sheet music assistant. Ask for anything to do with sheet music: transcribe a song from audio, video or a link, read a PDF or photo, add chords, change the key, make it easier, turn it into guitar TAB or jianpu, or arrange it for another instrument. Every change lands on a real score you can hear, fix and download (PDF, MIDI, MusicXML, guitar TAB, jianpu, audio). Hosted remote server with OAuth sign-in. Free accounts get monthly credits and free previews; prices are at scorestarling.com/pricing. Setup: https://scorestarling.com/mcp
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceA Model Context Protocol server that enables controlling Spotify playback through natural language commands in MCP clients like Cursor or Claude for Desktop.1-
- AlicenseNot gradedqualityDmaintenanceEnables interaction with Spotify through natural language for music discovery, playback control, library management, and playlist creation. Supports searching for music, controlling playback, managing saved tracks, and getting personalized recommendations based on mood and preferences.118 npm5MIT
- AlicenseNot gradedqualityDmaintenanceEnables interaction with Spotify's services and tools through a standardized MCP interface, allowing control of music streaming and playback.MIT
- AlicenseAqualityCmaintenanceMCP server for Spotify that enables playlist building and music discovery through 19 tools, allowing LLM agents to search tracks/artists/albums, manage playlists, control playback, and access personal listening data.201MIT