MCP Directory

Spotify MCP

Control Spotify playback, search, queue, and playlists from Claude or any MCP client.

Unverified
stdio (local)
OAuth
Python

Add to your client

Copy the config for your MCP client and paste it into its config file.

Paste into ~/Library/Application Support/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "spotify-mcp": {
      "command": "uvx",
      "args": [
        "--python",
        "3.12",
        "--from",
        "git+https://github.com/varunneal/spotify-mcp",
        "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"
      }
    }
  }
}

Requires `uv` (the Python package runner). Install it from https://docs.astral.sh/uv/ if `uvx` is not found.

Step-by-step guides: Add to Claude Desktop · Add to Cursor · Add to Windsurf

Before you start

  • Spotify Premium account
  • Spotify developer app with CLIENT_ID and CLIENT_SECRET (from developer.spotify.com dashboard)
  • Redirect URI configured as an explicit loopback http address, e.g. http://127.0.0.1:8080/callback
  • uv / uvx installed (recommended version >= 0.54)

About Spotify MCP

spotify-mcp is a Python MCP server that bridges an LLM and the Spotify Web API via spotipy. Once added to an MCP client (Claude Desktop, Cursor, etc.) with Spotify developer credentials, the model can control playback, search the catalog, inspect items, manage the queue, and manage playlists. It runs over stdio and can be launched with uvx directly from the GitHub repo, or run locally from a clone (recommended, to avoid the redirect URI opening on every tool call). A Spotify Premium account is required.

Tools & capabilities (5)

SpotifyPlayback

Manage current playback: start (play a new item or resume), pause, skip, and get information about the currently playing track.

SpotifySearch

Search Spotify for tracks, albums, artists, or playlists.

SpotifyQueue

Manage the playback queue — get the current queue or add a track to it.

SpotifyGetInfo

Get detailed information about a Spotify item (track, album, artist, or playlist); for a playlist or album, returns its tracks.

SpotifyPlaylist

Manage playlists: get the user's playlists, get a playlist's tracks, add/remove tracks, change details, and create a new playlist.

When to use it

  • Ask your assistant to play, pause, or skip music on your active Spotify device
  • Search for songs, albums, or artists and queue them up by voice/chat
  • Build and curate playlists programmatically through natural language
  • Look up metadata about tracks, albums, artists, and playlists

Security notes

Requires a Spotify developer app (CLIENT_ID/CLIENT_SECRET) and a redirect URI using an explicit loopback address over http (e.g. http://127.0.0.1:8080/callback). Uses OAuth; credentials are passed as environment variables in the MCP config. A Spotify Premium account is required to use the developer API. Running via uvx will open the Spotify redirect URI on every tool call — run locally to avoid this.

Spotify MCP FAQ

Do I need Spotify Premium?

Yes. A Spotify Premium account is required because the developer API used for playback control requires Premium.

How do I authenticate?

Create an app at developer.spotify.com, set the redirect URI to an explicit loopback http address (e.g. http://127.0.0.1:8080/callback), and pass SPOTIFY_CLIENT_ID, SPOTIFY_CLIENT_SECRET, and SPOTIFY_REDIRECT_URI as environment variables in your MCP config. The server uses OAuth.

Why does the Spotify login page open on every tool call?

That happens when running via uvx. To avoid it, clone the repo and run the project locally using uv with the --directory flag pointing at your clone.

Is the project actively maintained?

As of March 2026 the author marked it inactive and noted most PRs will not be merged. Some Spotify recommendation features were also deprecated by Spotify in late 2024.

Alternatives to Spotify MCP

Compare all alternatives →

Control Blender from Claude and other LLMs for prompt-assisted 3D modeling, scene creation, and asset generation.

Unverified
stdio (local)
No auth
Python
22 tools
Updated 16 days agoRepo

Popular community server that feeds Figma layout data to coding agents via a Figma API token.

Verified
stdio (local)
API key
TypeScript
2 tools
Updated 1 month agoRepo

Generate beautiful, modern UI components from natural-language descriptions inside your IDE.

Unverified
stdio (local)
API key
TypeScript
4 tools
Updated 4 months agoRepo