Spotify MCP Server
The Spotify MCP Server allows you to control and interact with Spotify using Claude, enabling:
Playback Control: Start, pause, skip tracks, and get information about currently playing music
Search: Find tracks, albums, artists, or playlists with customizable query types and limits
Queue Management: Add tracks to the queue or view the current queue
Item Information: Retrieve detailed information about tracks, albums, artists, or playlists
Playlist Management: Create, update, and manage playlists, including adding/removing tracks and changing playlist details
Allows control of Spotify playback (start, pause, skip), search functionality for tracks/albums/artists/playlists, retrieval of detailed information about music content, and management of the Spotify queue
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 Server play some lo-fi beats for studying"
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 MCP server
MCP project to connect Claude with Spotify. Built on top of spotipy-dev's API.
Features
Start, pause, and skip playback
Search for tracks/albums/artists/playlists
Get info about a track/album/artist/playlist
Manage the Spotify queue
Manage, create, and update playlists
Related MCP server: Spotify MCP Server
Demo
Make sure to turn on audio
Configuration
Getting Spotify API Keys
Create an account on developer.spotify.com. Navigate to the dashboard. Create an app with redirect_uri as http://127.0.0.1:8080/callback. You can choose any port you want but you must use http and an explicit loopback address (IPv4 or IPv6).
See here for more info/troubleshooting. You may have to restart your MCP environment (e.g. Claude Desktop) once or twice before it works.
Run this project locally
This project is not yet set up for ephemeral environments (e.g. uvx usage).
Run this project locally by cloning this repo
git clone https://github.com/varunneal/spotify-mcp.gitAdd this tool as a mcp server.
Claude Desktop on MacOS: ~/Library/Application\ Support/Claude/claude_desktop_config.json
Claude Desktop on Windows: %APPDATA%/Claude/claude_desktop_config.json
"spotify": {
"command": "uv",
"args": [
"--directory",
"/path/to/spotify_mcp",
"run",
"spotify-mcp"
],
"env": {
"SPOTIFY_CLIENT_ID": YOUR_CLIENT_ID,
"SPOTIFY_CLIENT_SECRET": YOUR_CLIENT_SECRET,
"SPOTIFY_REDIRECT_URI": "http://127.0.0.1:8080/callback"
}
}Troubleshooting
Please open an issue if you can't get this MCP working. Here are some tips:
Make sure
uvis updated. I recommend version>=0.54.Make sure claude has execution permisisons for the project:
chmod -R 755.Ensure you have Spotify premium (needed for running developer API).
This MCP will emit logs to std err (as specified in the MCP) spec. On Mac the Claude Desktop app should emit these logs
to ~/Library/Logs/Claude.
On other platforms you can find logs here.
You can launch the MCP Inspector via npm with this command:
npx @modelcontextprotocol/inspector uv --directory /path/to/spotify_mcp run spotify-mcpUpon launching, the Inspector will display a URL that you can access in your browser to begin debugging.
TODO
Unfortunately, a bunch of cool features have now been deprecated from the Spotify API. Most new features will be relatively minor or for the health of the project:
tests.
adding API support for managing playlists.
adding API support for paginated search results/playlists/albums.
PRs appreciated! Thanks to @jamiew, @davidpadbury, @manncodes, @hyuma7, @aanurraj, and others for contributions.
Deployment
(todo)
Building and Publishing
To prepare the package for distribution:
Sync dependencies and update lockfile:
uv syncBuild package distributions:
uv buildThis will create source and wheel distributions in the dist/ directory.
Publish to PyPI:
uv publishNote: You'll need to set PyPI credentials via environment variables or command flags:
Token:
--tokenorUV_PUBLISH_TOKENOr username/password:
--username/UV_PUBLISH_USERNAMEand--password/UV_PUBLISH_PASSWORD
Available Tools
5 toolsSpotifyGetInfoA
Get detailed information about a Spotify item (track, album, artist, or playlist).
Inputs: item_uri (required).
SpotifyPlaybackB
Manages the current playback with the following actions: - get: Get information about user's current track. - start: Starts playing new item or resumes current playback if called with no uri. - pause: Pauses current playback. - skip: Skips current track.
Inputs: action (required), num_skips, spotify_uri.
SpotifyPlaylistC
Manage Spotify playlists. - get: Get a list of user's playlists. - get_tracks: Get tracks in a specific playlist. - add_tracks: Add tracks to a specific playlist. - remove_tracks: Remove tracks from a specific playlist. - change_details: Change details of a specific playlist.
Inputs: action (required), description, name, playlist_id, +1 more.
SpotifyQueueB
Manage the playback queue - get the queue or add tracks.
Inputs: action (required), track_id.
SpotifySearchB
Search for tracks, albums, artists, or playlists on Spotify.
Inputs: query (required), limit, qtype.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 5 tools
Each tool has a clearly distinct purpose: SpotifyGetInfo retrieves metadata, SpotifyPlayback handles real-time playback control, SpotifyPlaylist manages playlist content and details, SpotifyQueue manages the playback queue, and SpotifySearch performs searches. There is no overlap in functionality that would cause confusion.
All tool names follow a consistent 'Spotify' prefix with a descriptive noun or verb-noun pattern (e.g., SpotifyGetInfo, SpotifyPlayback, SpotifyPlaylist, SpotifyQueue, SpotifySearch). This uniformity makes the tool set predictable and easy to navigate.
With 5 tools, the server is well-scoped for managing Spotify interactions, covering key areas like playback, playlists, search, queue, and general info. Each tool earns its place without feeling bloated or insufficient for the domain.
The tool set provides comprehensive coverage for core Spotify operations, including CRUD for playlists, playback control, search, and queue management. A minor gap is the lack of user profile or library management tools (e.g., managing saved tracks or albums), but agents can still handle most common workflows effectively.
Maintenance
Related MCP Connectors
Connect Claude to your Platform7n workspaces: chat, links, work and decks. One-click OAuth.
1Connect Claude to your Platform7n workspaces: chat, links, work and decks. One-click OAuth.
Connect Claude to Fathom meeting recordings, transcripts, and summaries
Connect Claude to your Intervals.icu watch data for fitness, workout review, and plan writing.
Related MCP Servers
- AlicenseBqualityBmaintenanceConnects Claude with Spotify, allowing users to control playback, search for content, get music information, and manage the Spotify queue.48457 PyPI12MIT
- FlicenseAqualityDmaintenanceConnects Claude with Spotify, enabling playback control, search functionality, and queue management through Spotify's API.4-
- FlicenseNot gradedqualityDmaintenanceConnects Claude with Spotify to control playback, search music, get track information, and manage the queue through conversation.1-
- AlicenseNot gradedqualityDmaintenanceEnables Claude to control Spotify features including playback control, playlist management, search, and accessing user's listening history and preferences through the Spotify API.1ISC