spotify-mcp
The Spotify MCP Server allows users to manage Spotify playback through the Spotify API using the Model Context Protocol framework. It supports essential playback functions like play, pause, and track navigation, and requires Python and Spotify account setup.
Spotify MCP Server
The Spotify MCP Server is a Model Context Protocol (MCP) server designed to interact with the Spotify API. It provides tools to control Spotify playback, such as playing, pausing, skipping tracks, shuffling playlists, and more. This server is built using the mcp
framework and spotipy
library.
Features
- Play, pause, and skip tracks.
- Shuffle and repeat playlists.
- Play specific albums or tracks by name.
- Built-in tools for seamless Spotify playback control.
Prerequisites
Before setting up the server, ensure you have the following:
- Python 3.12 or higher.
- A Spotify Developer account with a registered application. You will need:
SPOTIFY_CLIENT_ID
SPOTIFY_CLIENT_SECRET
- A
.env
file containing your Spotify credentials. - A premium spotify account
Installation
-
Clone the repository:
git clone <repository-url> cd spotify-mcp-server
-
Create a virtual environment and activate it:
python -m venv .venv source .venv/bin/activate # On Windows: .venv\Scripts\activate
-
Install
uv
for dependency management:pip install uv
Windows
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
-
Install dependencies using
uv
from the pyproject.toml file:uv sync
-
Create a
.env
file in the project root and add your Spotify credentials:SPOTIFY_CLIENT_ID=your_client_id SPOTIFY_CLIENT_SECRET=your_client_secret
Usage
-
Start the MCP server:
python server.py
-
Use the provided tools to control Spotify playback. For example:
play()
: Start playing the current track.pause()
: Pause the current track.next_track()
: Skip to the next track.play_album("album_name")
: Play a specific album by name.play_track("track_name")
: Play a specific track by name.
-
Add MCP tools to your MCP client. For example, if you're using Claude: Add this at the root of your project
uv mcp install server.py
Example Using Calude Desktop
Here is the JSON file
{
"mcpServers": {
"spotify-mcp-server": {
"command": "~path-to-project\\spotify-mcp-server\\.venv\\Scripts\\python.exe",
"args": [
"~path-to-project\\spotify-mcp-server\\server.py"
],
"transport": "stdio",
"env":{
"SPOTIFY_CLIENT_ID": "############",
"SPOTIFY_CLIENT_SECRET": "############",
"TRANSPORT": "stdio"
}
}
}
}
Troubleshooting
-
Spotify Authentication Failed: Ensure your
SPOTIFY_CLIENT_ID
andSPOTIFY_CLIENT_SECRET
are correctly set in the.env
file. -
Server Not Starting: Verify that the
__name__
check inserver.py
is correctly set to__server__
:if __name__ == "__server__": mcp.run()
Contributing
Contributions are welcome! Feel free to open issues or submit pull requests.