Spotify MCP Server is a dual-mode tool server for controlling Spotify through your terminal or via AI assistants like Claude or ChatGPT.
Built in Python using spotipy, aiohttp, and rich, it supports both real-time manual use and seamless AI integration.
Depending on whether the Spotify account is free or premium, the available features differ
| Feature | Description | Free Account | Premium Required |
|---|---|---|---|
| Spotify Authentication | OAuth login using client credentials | ✅ | ✅ |
| Search (songs, albums, etc) | Search Spotify catalog | ✅ | ✅ |
| Get Playback Info | Current track, device, status info | ✅ | ✅ |
| View Playlists | Fetch user playlists | ✅ | ✅ |
| Create Playlist | Create a new playlist | ✅ | ✅ |
| Add to Playlist | Add tracks to an existing playlist | ✅ | ✅ |
| Play Song | Start playing a specific song | ❌ | ✅ |
| Pause / Resume Playback | Pause or resume music | ❌ | ✅ |
| Skip / Previous Track | Skip to next or previous song | ❌ | ✅ |
| Set Volume | Adjust playback volume | ❌ | ✅ |
python server.py --mode=manualLaunches an animated terminal UI to control your Spotify account without using the app.
python server.py --mode=aiEnables MCP tool server mode, allowing an AI agent to send structured tool calls and control your playback.
- Python 3.9+
- Spotify Developer credentials (Client ID, Secret)
pip install -r requirements.txtCreate a .env file in your root directory:
SPOTIFY_CLIENT_ID=your_client_id
SPOTIFY_CLIENT_SECRET=your_client_secret
SPOTIFY_REDIRECT_URI=http://localhost:8888/callbackspotipy-mcp-server/
├── server.py # Main CLI + AI server
├── main.py # Interactive terminal interface
├── requirements.txt # Dependencies
├── .gitignore
├── README.md
└── .env # (ignored)
| Command | Description |
|---|---|
python server.py --mode=manual |
Launch terminal UI |
python server.py --mode=ai |
Start MCP server for AI |
This project is open source and dual-licensed:
- MIT License — opensource.org/license/mit
- Apache 2.0 License — apache.org/licenses/LICENSE-2.0
Use it freely with attribution. Choose the license that fits your use case best.