Spotify MCP

Spotify MCP

A FastMCP tool that enables control of Spotify through natural language commands in Cursor Composer, allowing users to manage playback, search for content, and interact with playlists.

ashwanth1109

Entertainment & Media
Speech Processing
OS Automation
Visit Server

Tools

get_my_playlists

FastMCP tool to get user playlists using SpotifyClient.

start_playback

FastMCP tool to resume playback on the currently active Spotify device.

pause_playback

FastMCP tool to pause playback on spotify.

search_spotify

Search Spotify for tracks, artists, albums, or playlists. Args: query: Search term type: One of 'track', 'artist', 'album', 'playlist' limit: Max number of results

next_track

Skip to next track in queue

previous_track

Go back to previous track

seek_position

Seek to position in current track Args: position_ms: Position in milliseconds

get_playback_state

Get current playback information

get_recommendations

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

get_item_info

Get detailed information about a Spotify item Args: item_id: Spotify ID type: One of 'track', 'album', 'artist', 'playlist'

start_playback_track

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

get_top_artists

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)

get_queue

Get the current queue of tracks

add_to_queue

Add a track to the queue Args: track_id: Spotify track ID to add

skip_tracks

Skip multiple tracks at once Args: num_skips: Number of tracks to skip (default: 1)

set_repeat_mode

Set repeat mode for playback Args: state: One of 'track', 'context', or 'off'

get_current_track

Get information about the currently playing track

start_playlist_playback

Start playback of a specific playlist Args: playlist_id: Spotify playlist ID device_id: Optional device to play on

get_artist_top_tracks

Get top tracks for an artist Args: artist_id: Spotify artist ID

add_to_playlist

Add tracks to a playlist Args: playlist_id: Spotify playlist ID track_ids: List of track IDs to add

reorder_queue

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

README

Spotify MCP

A FastMCP tool for Spotify.

Demo

Link: https://drive.google.com/file/d/1jGGQBzeXSKSJijeUwFZLdvrKPmPuogGd/

Pre-requisites

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

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!

Recommended Servers

Claude Code MCP

Claude Code MCP

An implementation of Claude Code as a Model Context Protocol server that enables using Claude's software engineering capabilities (code generation, editing, reviewing, and file operations) through the standardized MCP interface.

Featured
Local
JavaScript
@kazuph/mcp-taskmanager

@kazuph/mcp-taskmanager

Model Context Protocol server for Task Management. This allows Claude Desktop (or any MCP client) to manage and execute tasks in a queue-based system.

Featured
Local
JavaScript
YouTube Transcript MCP Server

YouTube Transcript MCP Server

This server retrieves transcripts for given YouTube video URLs, enabling integration with Goose CLI or Goose Desktop for transcript extraction and processing.

Featured
Python
The Verge News MCP Server

The Verge News MCP Server

Provides tools to fetch and search news from The Verge's RSS feed, allowing users to get today's news, retrieve random articles from the past week, and search for specific keywords in recent Verge content.

Featured
TypeScript
MCP Spotify Server

MCP Spotify Server

Enables interaction with Spotify's music catalog via the Spotify Web API, supporting searches, artist information retrieval, playlist management, and automatic token handling.

Featured
TypeScript
mcp-server-youtube-transcript

mcp-server-youtube-transcript

A Model Context Protocol server that enables retrieval of transcripts from YouTube videos. This server provides direct access to video captions and subtitles through a simple interface.

Featured
JavaScript
Beamlit MCP Server

Beamlit MCP Server

An MCP server implementation that enables seamless integration between Beamlit CLI and AI models using the Model Context Protocol standard.

Official
TypeScript
ThingsPanel MCP

ThingsPanel MCP

An integration server that connects AI models with ThingsPanel IoT platform, allowing AI assistants to interact with IoT devices through natural language for device control, data retrieval, and management operations.

Official
Python
systemd-coredump MCP Server

systemd-coredump MCP Server

Enables MCP-capable applications to access, manage, and analyze system core dumps through integration with systemd-coredump functionality.

Local
JavaScript
Terminal Controller for MCP

Terminal Controller for MCP

An MCP server that enables secure terminal command execution, directory navigation, and file system operations through a standardized interface for LLMs.

Local
Python