Skip to main content
Glama

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

login

OAuth browser authentication

Search

search_tracks

Find tracks by name/artist

search_albums

Find albums

search_artists

Find artists

search_playlists

Find public playlists

Favorites

get_favorite_tracks

Get liked tracks

get_favorite_albums

Get saved albums

get_favorite_artists

Get followed artists

add_track_to_favorites

Like a track

remove_track_from_favorites

Unlike a track

remove_album_from_favorites

Remove saved album

Playlists

get_user_playlists

List your playlists

get_playlist_tracks

Get tracks from playlist

create_playlist

Create new playlist

add_tracks_to_playlist

Add tracks to playlist

remove_tracks_from_playlist

Remove tracks from playlist

update_playlist

Update name/description

delete_playlist

Delete a playlist

Albums

get_album_tracks

Get all album tracks

get_album

Get album details

get_similar_albums

Find similar albums

Artists

get_artist

Get artist details with bio

get_artist_albums

Get artist discography

get_artist_top_tracks

Get popular tracks

get_similar_artists

Find similar artists

Recommendations

get_track_radio

Similar tracks to seed

get_artist_radio

Tracks 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.

-
security - not tested
F
license - not found
-
quality - not tested

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/keenanbass1/tidal-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server