← Back to directory
S

Spotify MCP Server

Community
A lightweight MCP server for Spotify, enabling AI assistants to control playback and manage playlists.
GitHub source repository ↗
★ 436 Stars Category · Other Very popular Source revision 7b5fde6309a5
38FMRS · D
Reliability
6/20
Security and permissions
6/20
Maintenance
2/20
Documentation
12/20
Setup experience
12/20

This server offers rich Spotify control features, but requires users to configure and use it at their own risk.

Read the FMRS scoring method →

This is a lightweight MCP server that enables AI assistants like Cursor and Claude to control Spotify playback and manage playlists. It provides search, playback control, playlist management, volume adjustment, and more. Requires a Spotify Premium account and a developer application.

Tools

searchSpotify
Search for tracks, albums, artists, or playlists on Spotify.
getNowPlaying
Get information about the currently playing track, including device and volume info.
getMyPlaylists
Get a list of the current user's playlists.
getPlaylistTracks
Get a list of tracks in a specific Spotify playlist.
getRecentlyPlayed
Get a list of recently played tracks.
getUsersSavedTracks
Get a list of tracks saved in the user's 'Liked Songs' library.
getQueue
Get the currently playing track and upcoming items in the Spotify queue.
getAvailableDevices
Get information about available Spotify Connect devices.
removeUsersSavedTracks
Remove one or more tracks from the user's 'Liked Songs' library.
playMusic
Start playing a track, album, artist, or playlist.
pausePlayback
Pause the currently playing track.
resumePlayback
Resume Spotify playback on the active device.
skipToNext
Skip to the next track in the current playback queue.
skipToPrevious
Skip to the previous track in the current playback queue.
createPlaylist
Create a new Spotify playlist.
addTracksToPlaylist
Add tracks to an existing Spotify playlist.
addToQueue
Adds a track, album, artist, or playlist to the current playback queue.
setVolume
Set the playback volume to a specific percentage (requires Spotify Premium).
adjustVolume
Adjust the playback volume up or down by a relative amount (requires Spotify Premium).
getAlbums
Get detailed information about one or more albums.
getAlbumTracks
Get tracks from a specific album with pagination support.
saveOrRemoveAlbumForUser
Save or remove albums from the user's 'Your Music' library.
checkUsersSavedAlbums
Check if albums are saved in the user's 'Your Music' library.
getPlaylist
Get details of a specific Spotify playlist.
updatePlaylist
Update the details of a Spotify playlist.
removeTracksFromPlaylist
Remove one or more tracks from a Spotify playlist.
reorderPlaylistItems
Reorder a range of tracks within a Spotify playlist.

Setup

  1. Ensure Node.js v16+ and a Spotify Premium account.
  2. Clone the repo: git clone https://github.com/marcelmarais/spotify-mcp-server.git
  3. Navigate and install: cd spotify-mcp-server && npm install && npm run build
  4. Create a Spotify Developer application to get Client ID and Client Secret, and set a Redirect URI (e.g., http://127.0.0.1:8888/callback).
  5. Create spotify-config.json with clientId, clientSecret, redirectUri.
  6. Run npm run auth to perform OAuth authentication; tokens are saved automatically.
  7. Add the server to your MCP client config, e.g., for Claude Desktop:

{
"mcpServers": {
"spotify": {
"command": "node",
"args": ["spotify-mcp-server/build/index.js"]
}
}
}

claude_desktop_config.json
{
  "mcpServers": {
    "spotify": {
      "command": "node",
      "args": [
        "spotify-mcp-server/build/index.js"
      ]
    }
  }
}

Fit and risk

Best for

  • Developers wanting to integrate Spotify control into AI assistants or custom apps.
  • Scenarios requiring quick implementation of playback, playlist management, volume adjustment, etc.
  • Users who already have a Spotify Premium account and a developer application.

Not for

  • Users without a Spotify Premium account, as some features (playback control, volume) require Premium.
  • Those expecting an officially supported or production-grade solution, as this server is third-party and unverified.
  • Remote access over HTTPS, as this server only supports stdio.

Required permissions

  • Access to user's Spotify data, including playlists, liked songs, recent playback.
  • Control playback, including play, pause, skip, volume, etc.
  • Modify user's playlists (create, delete, add, remove tracks).
  • Access device information (available devices, current device, etc.).

Risks and side effects

  • Security: OAuth tokens stored locally in spotify-config.json; if leaked, could lead to account misuse.
  • Privacy: AI assistants may access personal data like playback history and playlists.
  • Misoperation: AI might perform unintended actions like changing playback or modifying playlists.
  • Unofficial: Not maintained by Spotify, may have bugs or security vulnerabilities.

Troubleshooting

  1. Authentication failure: Check clientId, clientSecret, redirectUri in spotify-config.json, and ensure redirect URI matches the Developer Dashboard.
  2. Token expiration: Run npm run auth to re-authenticate; server auto-refreshes but may need manual re-auth if refresh fails.
  3. Cannot play: Ensure an active Spotify device and a Premium account.
  4. Command not found: Ensure dependencies installed and build is run.

Use cases

Play a specific song or album: e.g., 'Play Elvis's first song'.
Create a fusion playlist: e.g., 'Create a Taylor Swift / Slipknot fusion playlist'.
Copy songs between playlists: e.g., 'Copy all the techno tracks from my workout playlist to my work playlist'.
Adjust volume: e.g., 'Turn the volume down a bit'.
Get current playback info: query now playing, device, volume, etc.

Supported clients

Claude DesktopFull support
CursorFull support
ClineFull support