Spotify MCP Server
The Spotify MCP Server connects Claude with Spotify's API, enabling you to:
Control Playback: Start, pause, skip tracks, and get current playback information
Search: Find tracks, albums, artists, or playlists
Manage Queue: View or add tracks to the playback queue
Get Info: Retrieve detailed information about tracks, albums, artists, or playlists
Playlist Management: Create, update, and get details of playlists
Manage Playlist Items: Add, remove, or update tracks within playlists
Access User Playlists: Retrieve a user's playlists with pagination support
Handle Playlist Cover Images: Upload or retrieve custom playlist covers
Provides control over Spotify playback (start, pause, skip), enables searching for tracks/albums/artists/playlists, retrieves detailed information about music content, and manages the Spotify queue.
Click on "Install 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 Serverplay my Discover Weekly 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 MCP server
mcp-name: io.github.jamiew/spotify-mcp
MCP server connecting Claude with Spotify. This fork of varunneal/spotify-mcp adds smart-batching tools and advanced playlist features that optimize API usage.
This one runs locally over stdio. If you want a remote MCP server instead — hosted, OAuth in the browser, no local install for the people connecting to it — see jamiew/spotify-mcp-cloudflare: a sibling Spotify MCP on Cloudflare Workers that you can deploy yourself in a few minutes, and a decent worked example of remote-MCP auth on Workers generally.
Features
Core Functionality
Playback Control: Start, pause, skip tracks, manage queue
Search & Discovery: Find tracks, albums, artists, playlists with pagination
Real-time State: Live user profile and playback status
Resources: Read user, playback, track, playlist, artist, and album state by URI
Modern MCP Protocol
Server instructions: whole-surface guidance ships once per session instead of per tool
Structured output: every tool returns a typed schema, not a bare dict
Tool annotations & icons: read-only/destructive hints, titles, and a Spotify glyph
Progress notifications: live updates while paginating large playlists
Elicitation: destructive playlist removals ask for confirmation on clients that support it
Enhanced Playlist Tools (New in this fork)
Smart Batch Operations: Add/remove up to 100 tracks in single API calls
Large Playlist Support: Efficiently handle playlists with 1000+ tracks using pagination
Advanced Playlist Management: Create, modify details, reorder tracks, bulk track operations
API-Optimized Workflows: Intelligent batching reduces API calls by 60-80%
Tools
Tool | Does |
| The signed-in user's profile |
| Search tracks, albums, artists or playlists, with filters |
| Track details, batched up to 50 per call |
| Artist details plus their top tracks |
| Album details plus its track list |
| What's playing now: track, device, progress, shuffle, repeat |
| Play, pause, next, previous, seek, volume, shuffle, repeat |
| Available Spotify Connect devices |
| Move playback to another device |
| Now playing plus the upcoming queue |
| Queue a track |
| The user's playlists, paginated |
| Playlist metadata without its tracks |
| Playlist tracks, paginated to any size |
| Create a playlist |
| Rename a playlist or change its description/visibility |
| Add up to 100 tracks in one call |
| Remove tracks (confirms first where the client supports it) |
| Move a block of tracks to a new position |
| Unfollow a playlist — how Spotify deletes your own |
| Liked Songs, paginated |
| Like tracks |
| Unlike tracks |
| Top artists or tracks over a time range |
| Recently played tracks with timestamps |
tests/test_tool_metadata.py fails if this table drifts from the code, or if a tool ships
without a title, icon and behaviour annotations.
Related MCP server: Spotify MCP Server
Installation
Requires a Spotify Premium account and uv >= 0.54.
1. Get Spotify API keys
Create an app at developer.spotify.com/dashboard.
Add redirect URI
http://127.0.0.1:8888— it must match exactly what you set below.Copy the Client ID and Client Secret.
2. Add the server to your MCP client
Every client runs the same command — uvx spotify-mcp-jamiew — with your three Spotify env vars. No clone, no local path.
Standard config (works in most clients):
{
"mcpServers": {
"spotify": {
"command": "uvx",
"args": ["spotify-mcp-jamiew"],
"env": {
"SPOTIFY_CLIENT_ID": "your_client_id",
"SPOTIFY_CLIENT_SECRET": "your_client_secret",
"SPOTIFY_REDIRECT_URI": "http://127.0.0.1:8888"
}
}
}
}claude mcp add spotify \
-e SPOTIFY_CLIENT_ID=your_client_id \
-e SPOTIFY_CLIENT_SECRET=your_client_secret \
-e SPOTIFY_REDIRECT_URI=http://127.0.0.1:8888 \
-- uvx spotify-mcp-jamiewAdd -s user to install it globally across all projects. Verify with claude mcp list.
Add the standard config above to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows), then fully restart Claude Desktop.
codex mcp add spotify \
--env SPOTIFY_CLIENT_ID=your_client_id \
--env SPOTIFY_CLIENT_SECRET=your_client_secret \
--env SPOTIFY_REDIRECT_URI=http://127.0.0.1:8888 \
-- uvx spotify-mcp-jamiewOr add to ~/.codex/config.toml:
[mcp_servers.spotify]
command = "uvx"
args = ["spotify-mcp-jamiew"]
[mcp_servers.spotify.env]
SPOTIFY_CLIENT_ID = "your_client_id"
SPOTIFY_CLIENT_SECRET = "your_client_secret"
SPOTIFY_REDIRECT_URI = "http://127.0.0.1:8888"Add to ~/.hermes/config.yaml, then run /reload-mcp (or restart Hermes):
mcp_servers:
spotify:
command: uvx
args: [spotify-mcp-jamiew]
env:
SPOTIFY_CLIENT_ID: your_client_id
SPOTIFY_CLIENT_SECRET: your_client_secret
SPOTIFY_REDIRECT_URI: http://127.0.0.1:8888Add the standard config above to ~/.openclaw/openclaw.json (under mcpServers), then openclaw gateway restart.
Most MCP clients read a JSON file with an mcpServers block — drop the standard config above into it.
Using something else? Paste this to your agent:
Install the spotify-mcp MCP server from https://github.com/jamiew/spotify-mcp — it's on PyPI as
spotify-mcp-jamiew, run it withuvx spotify-mcp-jamiew, and set env varsSPOTIFY_CLIENT_ID,SPOTIFY_CLIENT_SECRET, andSPOTIFY_REDIRECT_URI=http://127.0.0.1:8888.
git clone https://github.com/jamiew/spotify-mcp.git
cd spotify-mcp
uv syncThen point your client at the checkout:
{
"mcpServers": {
"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:8888"
}
}
}
}To run the latest unpublished commit without cloning: uvx --from git+https://github.com/jamiew/spotify-mcp.git spotify-mcp.
On first use the server opens a browser for Spotify OAuth; the token is cached locally for later runs.
Usage Examples
"Create a chill study playlist with 20 tracks" → Search + playlist creation + bulk track addition
"Show me the first 50 tracks from my 'Liked Songs'" → Pagination for large playlists
"Find similar artists to Radiohead and add their top tracks to my queue" → Search + artist info + queue management
Development
Built with the FastMCP framework — focused single-purpose tools spanning playback, search, queue, and playlist management, with type-safe APIs and comprehensive test coverage.
Debug with MCP Inspector:
npx @modelcontextprotocol/inspector uv --directory /path/to/spotify_mcp run spotify-mcpMaintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- FlicenseAqualityDmaintenanceConnects Claude with Spotify, enabling playback control, search functionality, and queue management through Spotify's API.Last updated4
- Flicense-qualityDmaintenanceConnects Claude with Spotify to control playback, search music, get track information, and manage the queue through conversation.Last updated1
- FlicenseAqualityDmaintenanceConnects Claude with Spotify, allowing users to control playback, search for music, get track/artist information, and manage the queue via the Spotify API.Last updated51
- Flicense-qualityDmaintenanceEnables Claude to control Spotify features including playback control, playlist management, search, and accessing user's listening history and preferences through the Spotify API.Last updated1
Related MCP Connectors
Connect Claude to Fathom meeting recordings, transcripts, and summaries
WHOOP recovery, strain, sleep and workouts in Claude via official WHOOP OAuth. Free, open source.
Connect your team's living knowledge base — docs, data, issues, CRM — to Claude and ChatGPT.
Appeared in Searches
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/jamiew/spotify-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server