
Spotify MCP server for Claude - updated for Feb 2026 API changes
概览
A Model Context Protocol (MCP) server that connects Claude with Spotify. Control your Spotify playback, search music, manage playlists, and more -- all through natural conversation with Claude. : This project is forked from varunneal/spotify-mcp and updated for the . Built and maintained with Claude Code. - -- uses httpx async directly (native async, no asyncio.to_thread wrapping) - -- server.py, spotify_api.py, utils.py consolidated into one file - -- clean @mcp.tool() decorators instead of manual ToolModel + match/case routing - -- only mcp + httpx (was mcp + spotipy + python-dotenv) - -- spotify-mcp --auth for initial setup, auto-refresh on subsequent use - Start, pause, and skip playback - Search for tracks, albums, artists, and playlists - Get detailed info about any Spotify item - Manage the playback queue - Full playlist CRUD (create, read, update, delete tracks) - Retrieve liked/saved songs with optional genre enrichment - Adapted for Spotify Feb 2026 API changes 1.
README
以下为原文 README 节选,完整内容请查看原文。
spotify-mcp
A Model Context Protocol (MCP) server that connects Claude with Spotify. Control your Spotify playback, search music, manage playlists, and more – all through natural conversation with Claude.
Fork Notice: This project is forked from varunneal/spotify-mcp and updated for the Spotify Web API February 2026 changes. Built and maintained with Claude Code.
What’s Changed (v0.4.0)
Architecture Rewrite
- Dropped
spotipy– useshttpxasync directly (native async, noasyncio.to_threadwrapping) - Single module –
server.py,spotify_api.py,utils.pyconsolidated into one file - FastMCP – clean
@mcp.tool()decorators instead of manual ToolModel + match/case routing - 2 dependencies – only
mcp+httpx(wasmcp+spotipy+python-dotenv) - Explicit OAuth –
spotify-mcp --authfor initial setup, auto-refresh on subsequent use
Features (preserved from v0.3.0)
- Start, pause, and skip playback
- Search for tracks, albums, artists, and playlists
- Get detailed info about any Spotify item
- Manage the playback queue
- Full playlist CRUD (create, read, update, delete tracks)
- Retrieve liked/saved songs with optional genre enrichment
- Adapted for Spotify Feb 2026 API changes
How It Works
Claude spotify-mcp Spotify Web API
- Claude sends tool calls via the MCP protocol
- The server translates them into Spotify Web API requests using
httpx - OAuth tokens auto-refresh; initial auth via
spotify-mcp --auth - Results are parsed into concise JSON and returned to Claude
Available Tools
| Tool | Actions | Description |
|---|---|---|
spotify_playback |
get, start, pause, skip, previous, volume |
Control music playback and volume |
spotify_search |
– | Search tracks, albums, artists, playlists |
spotify_queue |
get, add |
View and manage play queue |
spotify_get_info |
– | Get detailed item info by Spotify URI |
spotify_playlist |
get, get_tracks, add_tracks, remove_tracks, change_details, create, delete |
Full playlist management |
spotify_liked_songs |
get, get_with_genres, like, unlike, check |
Manage saved songs and check library |
spotify_recently_played |
– | Get recently played tracks with timestamps |
spotify_devices |
list, transfer |
List devices and transfer playback |
Architecture
src/spotify_mcp/
__init__.py # Entry point (stdio / --auth)
server.py # FastMCP server, API client, parsers — all in one
Prerequisites
- Python 3.12+
- Spotify Premium account (required for Dev Mode API access since Feb 2026)
- Spotify Developer App credentials
Configuration
1. Create Spotify Developer App
安装
uvx --python 3.12 --from git+https://github.com/verIdyia/spotify-mcp spotify-mcp配置
{
"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:8080/callback"
}
}
}
}