
Spotify MCP Server
A Model Context Protocol server that enables controlling Spotify playback through natural language commands in MCP clients like Cursor or Claude for Desktop.
README
Spotify MCP Server
This project implements a Model Context Protocol (MCP) server that allows you to control Spotify playback using natural language through an MCP client, such as Cursor or Claude for Desktop (macOS and Windows only).
Features
This server exposes the following tools:
play
: Play a track, album, or playlist, or resume playback.pause
: Pause playback.next
: Skip to the next track.previous
: Skip to the previous track.get_current_track
: Get information about the currently playing track.search
: Search for tracks, albums, artists, or playlists.
Prerequisites
- Bun (version 1.0.0 or later)
- A Spotify Premium account.
- A Spotify Developer application:
- Create one at the Spotify Developer Dashboard.
- Obtain your Client ID and Client Secret.
- Add
http://localhost:8888/callback
to the Redirect URIs in your app's settings.
- An MCP client (e.g., Cursor or Claude for Desktop).
Installation and Setup
-
Clone the repository:
git clone https://github.com/obre10off/spotify-mcp.git cd spotify-mcp
-
Install dependencies:
bun install
-
Create a
.env
file:Create a file named
.env
in the root of the project directory. Add the following, replacing the placeholders with your actual Spotify credentials:SPOTIFY_CLIENT_ID=your_spotify_client_id SPOTIFY_CLIENT_SECRET=your_spotify_client_secret SPOTIFY_REDIRECT_URI=http://localhost:8888/callback # These will be filled in after running the auth script: SPOTIFY_ACCESS_TOKEN= SPOTIFY_REFRESH_TOKEN=
-
Run the authorization script:
This script will open your browser, prompt you to log in to Spotify and grant permissions, and then retrieve your initial access and refresh tokens.
bun run auth
The script will print the
SPOTIFY_ACCESS_TOKEN
andSPOTIFY_REFRESH_TOKEN
to the console. Copy these values into your.env
file. -
Configure your MCP client:
-
Cursor:
-
Open Cursor's settings (Cmd+, or Ctrl+,).
-
Search for "Model Context Protocol".
-
Click "Edit in settings.json".
-
Add the following to the
mcp.servers
array (replace/absolute/path/to/your/spotify-mcp
with the absolute path to yourspotify-mcp
directory):{ "mcp.servers": [ { "spotify": { "command": "bun", "args": ["/absolute/path/to/your/spotify-mcp/src/index.ts"], "env": { "SPOTIFY_CLIENT_ID": "your_spotify_client_id", "SPOTIFY_CLIENT_SECRET": "your_spotify_client_secret", "SPOTIFY_REDIRECT_URI": "http://localhost:8888/callback", "SPOTIFY_ACCESS_TOKEN": "your_spotify_access_token", "SPOTIFY_REFRESH_TOKEN": "your_spotify_refresh_token" } } } ] }
It is recommended to use a
.env
file and only put the environment variables related to Spotify there, instead of adding the values to the settings.json file.
-
-
Claude for Desktop (macOS/Windows):
- Open the Claude for Desktop configuration file:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
- Windows:
%APPDATA%\Claude\claude_desktop_config.json
- macOS:
- Add the following to the
mcpServers
object (replace/absolute/path/to/your/spotify-mcp
with the absolute path to yourspotify-mcp
directory):
{ "mcpServers": { "spotify": { "command": "bun", "args": ["/absolute/path/to/your/spotify-mcp/src/index.ts"] } } } ``` It is recommended to use a `.env` file and only put the environment variables related to Spotify there, instead of adding the values to the `claude_desktop_config.json` file.
- Open the Claude for Desktop configuration file:
-
Important: Always use absolute paths in your client configuration.
-
-
Restart your MCP Client
Make sure to restart your MCP client (Cursor/Claude) to apply the settings.
Running the Server
bun run start
This command starts the server with automatic reloading on file changes (thanks to Bun's --watch flag). Keep this terminal window open while you're using the server.
## Usage
Once the server is running and your MCP client is configured, you can start using natural language commands to control Spotify. Examples:
"Play Bohemian Rhapsody"
"Pause the music"
"What song is playing?"
"Search for Taylor Swift albums"
"Next track"
"Play spotify:track:4uLU6hMCjMI75M1A2tKUQC"
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.