Spotify MCP Server
# Spotify MCP Server
A simple MCP server to control Spotify playback and manage your liked songs via LLM's.
## Features
- Play and pause Spotify playback
- Get info about the current track
- Add the current track to your Liked Songs
## Setup
1. **Clone the repository:**
```sh
git clone https://github.com/yourusername/spotify-mcp-server.git
cd spotify-mcp-server
```
2. **Create and activate a virtual environment:**
```sh
python3 -m venv .venv
source .venv/bin/activate
```
3. **Install dependencies:**
```sh
pip install uv
pip install -r requirements.txt
```
4. **Create a `.env` file:**
```
SPOTIPY_CLIENT_ID=your_spotify_client_id
SPOTIPY_CLIENT_SECRET=your_spotify_client_secret
SPOTIPY_REDIRECT_URI=http://localhost:8888/callback
```
5. **Run the server:**
```sh
python main.py
```
## Integration with Claude Desktop (MCP Server)
To use this server as an MCP server with Claude, add the following entry to your Claude config file (usually located at `~/Library/Application Support/Claude/claude_desktop_config.json` on macOS):
```json
{
"mcpServers": {
"spotify-mcp-server": {
"command": "uv",
"args": [
"--directory",
"/ABSOLUTE/PATH/TO/PROJECT/spotify-mcp-server",
"run",
"main.py"
]
}
}
}
```
- Replace `/ABSOLUTE/PATH/TO/PROJECT/spotify-mcp-server` with the actual path to your project
- If command `uv` is not recognized, give the absolute path for `uv` executable (can be found with `which uv` on MacOS)
- Make sure your environment variables are set either in the config or via a `.env` file.
- Restart Claude after editing the config file.
## Notes
- You need to register your app at the [Spotify Developer Dashboard](https://developer.spotify.com/dashboard/) to get your client ID and secret.
## Example Session
Below is an example session using Claude with the Spotify MCP server:

**Sample interaction:**
```
User: Play the current track using Spotify MCP server
Claude: Playback started successfully
User: What song is playing?
Claude: Currently playing: Shape of You by Ed Sheeran
User: Like this song
Claude: Added 'Shape of You' to your Liked Songs.
```
TDQS
Scored across 4 tools
Each tool has a clearly distinct purpose: getting track info, liking a track, starting playback, and stopping playback. There is no overlap in functionality, making it easy for an agent to select the correct tool without confusion.
All tool names follow a consistent 'spotify_' prefix with descriptive verb_noun patterns (e.g., current_track, like_current_track, play, stop). This uniformity enhances readability and predictability across the toolset.
With 4 tools, the count is reasonable for a basic Spotify control server, covering core playback and interaction functions. However, it feels slightly thin as it lacks tools for searching, playlists, or volume control, which are common in music APIs.
The toolset covers basic playback control and track interaction, but there are notable gaps for a Spotify domain, such as no search, playlist management, or device selection tools. Agents can perform simple tasks but may struggle with more complex music-related workflows.