Provides comprehensive access to TIDAL music streaming service, including search (tracks, albums, artists, playlists), favorites management, playlist operations (create, update, delete, add/remove tracks), album and artist information retrieval, and personalized recommendations through track and artist radio.
TIDAL MCP Server
A traditional MCP (Model Context Protocol) server for TIDAL music streaming service. Clean API wrapper following official MCP best practices - thin wrappers around tidalapi methods with no custom business logic.
Features
27 Tools
Category | Tool | Description |
Auth |
| OAuth browser authentication |
Search |
| Find tracks by name/artist |
| Find albums | |
| Find artists | |
| Find public playlists | |
Favorites |
| Get liked tracks |
| Get saved albums | |
| Get followed artists | |
| Like a track | |
| Unlike a track | |
| Remove saved album | |
Playlists |
| List your playlists |
| Get tracks from playlist | |
| Create new playlist | |
| Add tracks to playlist | |
| Remove tracks from playlist | |
| Update name/description | |
| Delete a playlist | |
Albums |
| Get all album tracks |
| Get album details | |
| Find similar albums | |
Artists |
| Get artist details with bio |
| Get artist discography | |
| Get popular tracks | |
| Find similar artists | |
Recommendations |
| Similar tracks to seed |
| Tracks based on artist style |
Installation
Requirements
Python 3.10+
uv (recommended) or pip
Setup
Usage
With Claude Desktop
Add to your Claude Desktop config:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
Linux: ~/.config/Claude/claude_desktop_config.json
Note: Use full path to
uv(find withwhich uv)
With MCP Inspector
Direct Usage
Authentication
Example Workflows
Create a Playlist from Search Results
login- Authenticate with TIDALsearch_tracks("Radiohead Creep")- Find trackscreate_playlist("My Playlist", "A collection of favorites")- Create playlistadd_tracks_to_playlist(playlist_id, [track_ids...])- Add tracks
Browse and Add Album to Playlist
search_albums("OK Computer")- Find albumget_album_tracks(album_id)- Get all tracksadd_tracks_to_playlist(playlist_id, [all_track_ids...])- Add to playlist
Manage Existing Playlist
get_user_playlists()- List your playlistsget_playlist_tracks(playlist_id)- View tracksremove_tracks_from_playlist(playlist_id, track_ids=[...])- Remove tracksupdate_playlist(playlist_id, name="New Name")- Rename
Development
Project Structure
Dependencies
fastmcp>=2.12.0- MCP protocol frameworktidalapi>=0.8.6- TIDAL API client (v0.8.6+ required for working OAuth)anyio>=4.0.0- Async utilities
Testing
Troubleshooting
Authentication Fails
Ensure tidalapi >= 0.8.6 (older versions have invalid OAuth credentials)
Delete
.tidal-sessions/and re-authenticate
Search Returns No Results
Simplify query (single artist or song name)
Check spelling
Port Conflicts (Inspector)
Future Roadmap
The server currently has 27 tools covering core TIDAL functionality. Potential future additions:
Remote Server: HTTP/SSE transport for Claude.ai and mobile apps (see
docs/REMOTE-DEPLOYMENT.md)Advanced Search: ISRC/UPC lookup for precise track/album identification
Playback: Queue management and now-playing info (requires TIDAL Connect)
Social: Following users, collaborative playlists
License
MIT