Skip to main content
Glama
README.md
# 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.
![installed_mcp](./assets/installed_mcp.png)

## 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

B3.2/5.0

Scored across 21 tools

Disambiguation4/5

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.

Naming Consistency4/5

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.

Tool Count3/5

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.

Completeness5/5

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

ActivityInactive
ResponsivenessNo issues