Spotify MCP
# Spotify MCP
A FastMCP tool for Spotify.
## Demo
Link: https://drive.google.com/file/d/1jGGQBzeXSKSJijeUwFZLdvrKPmPuogGd/
## Pre-requisites
- [uv](https://docs.astral.sh/uv/getting-started/installation/)
- [Spotify API](https://developer.spotify.com/dashboard/applications)
## Installation
- Clone this repository
- Create a `.env` file 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](https://developer.spotify.com/dashboard/applications) 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 `Composer` in "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:
1. **User:** "Show me my playlists."
**Response:** "Here are your playlists: Chill Vibes, Workout Mix, Top Hits."
2. **User:** "Play my 'Chill Vibes' playlist."
3. **User:** "Pause song."
**Response:** "Playback paused."
4. **User:** "Resume song."
**Response:** "Resuming playback..."
5. **User:** "What song is this?"
**Response:** "You're listening to 'Faded' by Alan Walker."
6. **User:** "Tell me about this artist and show me some popular tracks."
**Response:** "Artist Info: Alan Walker."
7. **User:** "Show me my top artists from the last 6 months."
**Response:** "Here are your most played artists..."
8. **User:** "Search for Coldplay."
**Response:** "Found artist: Coldplay. Here are their top tracks..."
9. **User:** "Play song 'Fix You'."
**Response:** "Starting playback for 'Fix You'..."
10. **User:** "Show me my queue."
**Response:** "Current queue: Track 1, Track 2, Track 3..."
11. **User:** "Add 'Paradise' to my queue."
**Response:** "Added 'Paradise' by Coldplay to your queue."
12. **User:** "Move 'Paradise' up in the queue."
13. **User:** "Set it on repeat."
14. **User:** "I like this song. Recommend some similar tracks."
**Response:** "Here are some recommendations based on this track..."
15. **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!
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.