auth-spotifyLABSCO SUMMARY
Not just play/pause — the full playlist-editing surface, cover images included.
Reordering tracks, swapping the cover art, and building recommendations from seeds are all here, which puts it past the usual now-playing integrations. Setup asks for your own Spotify app credentials, and the OAuth redirect has to be the exact 127.0.0.1:8888/callback the server expects or authentication fails.
What it is
A server that authenticates against Spotify and exposes playback, search, playlist management and listening history as tools.
What you get
- auth-spotify runs the OAuth flow; search-spotify finds tracks, albums, artists or playlists
- Playback control — get-current-playback, play-track, pause-playback, next-track, previous-track
- Full playlist management — create-playlist, update-playlist, delete-playlist, add-tracks-to-playlist, remove-tracks-from-playlist, reorder-playlist-tracks
- get-playlist-cover and upload-playlist-cover manage the cover image, a base64 JPEG up to 256KB
- get-recommendations builds suggestions from seed tracks, artists or genres
- get-top-tracks over short_term, medium_term or long_term, and get-recently-played by timestamp
Requirements
A Spotify account and API credentials — SPOTIFY_CLIENT_ID and SPOTIFY_CLIENT_SECRET from the Spotify Developer Dashboard, with http://127.0.0.1:8888/callback set as the redirect URI. Node.js 16 or higher; the repository ships prebuilt files, so the client can launch build/index.js directly. The access token is stored under ~/.spotify-mcp/tokens.json to persist between sessions.
Setup effort
One command plus credentials — npx -y @smithery/cli install @imprvhub/mcp-claude-spotify --client claude, then supply credentials
USE CASES
Building a playlist by describing what you want
Get recommendations from a few seed tracks, then create the playlist and add them in one flow.
Controlling what is playing right now
Check the current playback, then play, pause or skip without leaving the conversation.
Tidying up an existing playlist
Reorder the tracks and remove the ones that no longer fit.
Looking back at what you have been listening to
Pull your top tracks over the last four weeks or several years, or the tracks you played most recently.
Giving a playlist a custom cover
Upload a base64 JPEG as the cover image, up to 256KB.
20 tools
Listed in project docs. Your client may show a different list.
search-spotifyget-current-playbackplay-trackpause-playbacknext-trackprevious-trackget-user-playlistscreate-playlistupdate-playlistdelete-playlistget-playlist-tracksadd-tracks-to-playlistremove-tracks-from-playlistreorder-playlist-tracksget-playlist-coverupload-playlist-coverget-recommendationsget-top-tracksget-recently-playedBEFORE YOU INSTALL
What to know first
Tools you get
20 tools named in the project's documentation.
Requires
- Node.js 16 or higher
- SPOTIFY_CLIENT_ID in your environment
- SPOTIFY_CLIENT_SECRET in your environment
Where it runs
The documented client runs the server on your machine.
INSTALLATION
Connect your client
Server setup
npx -y @smithery/cli install @imprvhub/mcp-claude-spotify --client claudeMCP Clients
Claude Desktop
This is the manual setup, not the Smithery command above. First clone the repository — git clone https://github.com/imprvhub/mcp-claude-spotify — and run npm install inside it; the repository already includes pre-built files in build. Then add this to claude_desktop_config.json. <YOUR_PATH_TO_DIRECTORY> is the complete absolute path to the folder that holds your clone; <YOUR_SPOTIFY_CLIENT_ID> and <YOUR_SPOTIFY_CLIENT_SECRET> come from your Spotify Developer app:
{
"mcpServers": {
"spotify": {
"command": "node",
"args": [
"<YOUR_PATH_TO_DIRECTORY>/mcp-claude-spotify/build/index.js"
],
"env": {
"SPOTIFY_CLIENT_ID": "<YOUR_SPOTIFY_CLIENT_ID>",
"SPOTIFY_CLIENT_SECRET": "<YOUR_SPOTIFY_CLIENT_SECRET>"
}
}
}
}