MCP Directory

How to add Spotify MCP to Windsurf

Control Spotify playback, search, queue, and playlists from Claude or any MCP client. Paste the config into ~/.codeium/windsurf/mcp_config.json and restart Windsurf.

Last updated June 14, 2026 · 606 · stdio · oauth

Windsurf config for Spotify MCP

{
  "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.

Setup steps

  1. 1Open Windsurf → Cascade → the hammer/MCP icon → Configure (or edit ~/.codeium/windsurf/mcp_config.json).
  2. 2Paste the Spotify MCP config below.
  3. 3Fill in placeholder secrets, then save.
  4. 4Click Refresh in the MCP panel.
  5. 5Spotify MCP's tools become available to Cascade.

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)

What Spotify MCP can do in Windsurf

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.

Security

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 + Windsurf FAQ

Where is the Windsurf config file?

Windsurf reads MCP servers from ~/.codeium/windsurf/mcp_config.json. Paste the Spotify MCP config there under the "mcpServers" key and restart the client.

Is Spotify MCP safe to use with Windsurf?

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.

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.

View repo Full Spotify MCP page