MCP Hub
Back to servers

TIDAL MCP Server

Enables interaction with TIDAL music streaming service through 27 tools for searching music, managing playlists, favorites, and discovering artists and albums.

glama
Stars
1
Updated
Dec 6, 2025
Validated
May 5, 2026

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

CategoryToolDescription
AuthloginOAuth browser authentication
Searchsearch_tracksFind tracks by name/artist
search_albumsFind albums
search_artistsFind artists
search_playlistsFind public playlists
Favoritesget_favorite_tracksGet liked tracks
get_favorite_albumsGet saved albums
get_favorite_artistsGet followed artists
add_track_to_favoritesLike a track
remove_track_from_favoritesUnlike a track
remove_album_from_favoritesRemove saved album
Playlistsget_user_playlistsList your playlists
get_playlist_tracksGet tracks from playlist
create_playlistCreate new playlist
add_tracks_to_playlistAdd tracks to playlist
remove_tracks_from_playlistRemove tracks from playlist
update_playlistUpdate name/description
delete_playlistDelete a playlist
Albumsget_album_tracksGet all album tracks
get_albumGet album details
get_similar_albumsFind similar albums
Artistsget_artistGet artist details with bio
get_artist_albumsGet artist discography
get_artist_top_tracksGet popular tracks
get_similar_artistsFind similar artists
Recommendationsget_track_radioSimilar tracks to seed
get_artist_radioTracks based on artist style

Installation

Requirements

  • Python 3.10+
  • uv (recommended) or pip

Setup

# Clone and enter directory
cd tidal-mcp

# Install with uv
uv sync

# Or with pip
pip install -e .

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

{
  "mcpServers": {
    "tidal": {
      "command": "/path/to/uv",
      "args": [
        "--directory", "/path/to/tidal-mcp",
        "run", "tidal-mcp"
      ]
    }
  }
}

Note: Use full path to uv (find with which uv)

With MCP Inspector

npx @modelcontextprotocol/inspector uv run tidal-mcp

Direct Usage

uv run tidal-mcp

Authentication

python authenticate.py

Example Workflows

Create a Playlist from Search Results

  1. login - Authenticate with TIDAL
  2. search_tracks("Radiohead Creep") - Find tracks
  3. create_playlist("My Playlist", "A collection of favorites") - Create playlist
  4. add_tracks_to_playlist(playlist_id, [track_ids...]) - Add tracks

Browse and Add Album to Playlist

  1. search_albums("OK Computer") - Find album
  2. get_album_tracks(album_id) - Get all tracks
  3. add_tracks_to_playlist(playlist_id, [all_track_ids...]) - Add to playlist

Manage Existing Playlist

  1. get_user_playlists() - List your playlists
  2. get_playlist_tracks(playlist_id) - View tracks
  3. remove_tracks_from_playlist(playlist_id, track_ids=[...]) - Remove tracks
  4. update_playlist(playlist_id, name="New Name") - Rename

Development

Project Structure

tidal-mcp/
├── pyproject.toml           # Project configuration
├── README.md                 # This file
├── CLAUDE.md                # AI development guidance
└── src/
    └── tidal_mcp/
        ├── __init__.py      # Package init
        ├── models.py        # Pydantic response models
        └── server.py        # MCP server with 27 tools

Dependencies

  • fastmcp>=2.12.0 - MCP protocol framework
  • tidalapi>=0.8.6 - TIDAL API client (v0.8.6+ required for working OAuth)
  • anyio>=4.0.0 - Async utilities

Testing

# Test with MCP Inspector
npx @modelcontextprotocol/inspector uv run tidal-mcp

# Quick protocol test
echo '{"jsonrpc": "2.0", "method": "initialize", "params": {"protocolVersion": "2024-11-05", "capabilities": {}, "clientInfo": {"name": "test", "version": "1.0.0"}}, "id": 1}' | uv run tidal-mcp

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)

pkill -f "inspector|tidal-mcp"

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

Credits

Built with FastMCP and tidalapi.

Reviews

No reviews yet

Sign in to write a review