TIDAL MCP: My Custom Picks

TIDAL MCP: My Custom Picks

A server that lets you get customized music recommendations from TIDAL based on your specific criteria, allowing you to create new playlists directly in your TIDAL account.

Category
访问服务器

Tools

tidal_login

Authenticate with TIDAL through browser login flow. This will open a browser window for the user to log in to their TIDAL account. Returns: A dictionary containing authentication status and user information if successful

get_favorite_tracks

Retrieves tracks from the user's TIDAL account favorites. USE THIS TOOL WHENEVER A USER ASKS FOR: - "What are my favorite tracks?" - "Show me my TIDAL favorites" - "What music do I have saved?" - "Get my favorite songs" - Any request to view their saved/favorite tracks This function retrieves the user's favorite tracks from TIDAL. Args: limit: Maximum number of tracks to retrieve (default: 20, note it should be large enough by default unless specified otherwise). Returns: A dictionary containing track information including track ID, title, artist, album, and duration. Returns an error message if not authenticated or if retrieval fails.

recommend_tracks

Recommends music tracks based on specified track IDs or can use the user's TIDAL favorites if no IDs are provided. USE THIS TOOL WHENEVER A USER ASKS FOR: - Music recommendations - Track suggestions - Music similar to their TIDAL favorites or specific tracks - "What should I listen to?" - Any request to recommend songs/tracks/music based on their TIDAL history or specific tracks This function gets recommendations based on provided track IDs or retrieves the user's favorite tracks as seeds if no IDs are specified. When processing the results of this tool: 1. Analyze the seed tracks to understand the music taste or direction 2. Review the recommended tracks from TIDAL 3. IMPORTANT: Do NOT include any tracks from the seed tracks in your recommendations 4. Ensure there are NO DUPLICATES in your recommended tracks list 5. Select and rank the most appropriate tracks based on the seed tracks and filter criteria 6. Group recommendations by similar styles, artists, or moods with descriptive headings 7. For each recommended track, provide: - The track name, artist, album - Always include the track's URL to make it easy for users to listen to the track - A brief explanation of why this track might appeal to the user based on the seed tracks - If applicable, how this track matches their specific filter criteria 8. Format your response as a nicely presented list of recommendations with helpful context (remember to include the track's URL!) 9. Begin with a brief introduction explaining your selection strategy 10. Lastly, unless specified otherwise, you should recommend MINIMUM 20 tracks (or more if possible) to give the user a good variety to choose from. [IMPORTANT NOTE] If you're not familiar with any artists or tracks mentioned, you should use internet search capabilities if available to provide more accurate information. Args: track_ids: Optional list of TIDAL track IDs to use as seeds for recommendations. If not provided, will use the user's favorite tracks. filter_criteria: Specific preferences for filtering recommendations (e.g., "relaxing music," "recent releases," "upbeat," "jazz influences") limit_per_track: Maximum number of recommendations to get per track (NOTE: default: 20, unless specified otherwise, we'd like to keep the default large enough to have enough candidates to work with) limit_from_favorite: Maximum number of favorite tracks to use as seeds (NOTE: default: 20, unless specified otherwise, we'd like to keep the default large enough to have enough candidates to work with) Returns: A dictionary containing both the seed tracks and recommended tracks

create_tidal_playlist

Creates a new TIDAL playlist with the specified tracks. USE THIS TOOL WHENEVER A USER ASKS FOR: - "Create a playlist with these songs" - "Make a TIDAL playlist" - "Save these tracks to a playlist" - "Create a collection of songs" - Any request to create a new playlist in their TIDAL account This function creates a new playlist in the user's TIDAL account and adds the specified tracks to it. The user must be authenticated with TIDAL first. NAMING CONVENTION GUIDANCE: When suggesting or creating a playlist, first check the user's existing playlists using get_user_playlists() to understand their naming preferences. Some patterns to look for: - Do they use emoji in playlist names? - Do they use all caps, title case, or lowercase? - Do they include dates or seasons in names? - Do they name by mood, genre, activity, or artist? - Do they use specific prefixes or formatting (e.g., "Mix: Summer Vibes" or "[Workout] High Energy") Try to match their style when suggesting new playlist names. If they have no playlists yet or you can't determine a pattern, use a clear, descriptive name based on the tracks' common themes. When processing the results of this tool: 1. Confirm the playlist was created successfully 2. Provide the playlist title, number of tracks added, and URL 3. Always include the direct TIDAL URL (https://tidal.com/playlist/{playlist_id}) 4. Suggest that the user can now access this playlist in their TIDAL account Args: title: The name of the playlist to create track_ids: List of TIDAL track IDs to add to the playlist description: Optional description for the playlist (default: "") Returns: A dictionary containing the status of the playlist creation and details about the created playlist

get_user_playlists

Fetches the user's playlists from their TIDAL account. USE THIS TOOL WHENEVER A USER ASKS FOR: - "Show me my playlists" - "List my TIDAL playlists" - "What playlists do I have?" - "Get my music collections" - Any request to view or list their TIDAL playlists This function retrieves the user's playlists from TIDAL and returns them sorted by last updated date (most recent first). When processing the results of this tool: 1. Present the playlists in a clear, organized format 2. Include key information like title, track count, and the TIDAL URL for each playlist 3. Mention when each playlist was last updated if available 4. If the user has many playlists, focus on the most recently updated ones unless specified otherwise Returns: A dictionary containing the user's playlists sorted by last updated date

get_playlist_tracks

Retrieves all tracks from a specified TIDAL playlist. USE THIS TOOL WHENEVER A USER ASKS FOR: - "Show me the songs in my playlist" - "What tracks are in my [playlist name] playlist?" - "List the songs from my playlist" - "Get tracks from my playlist" - "View contents of my TIDAL playlist" - Any request to see what songs/tracks are in a specific playlist This function retrieves all tracks from a specific playlist in the user's TIDAL account. The playlist_id must be provided, which can be obtained from the get_user_playlists() function. When processing the results of this tool: 1. Present the playlist information (title, description, track count) as context 2. List the tracks in a clear, organized format with track name, artist, and album 3. Include track durations where available 4. Mention the total number of tracks in the playlist 5. If there are many tracks, focus on highlighting interesting patterns or variety Args: playlist_id: The TIDAL ID of the playlist to retrieve (required) limit: Maximum number of tracks to retrieve (default: 100) Returns: A dictionary containing the playlist information and all tracks in the playlist

delete_tidal_playlist

Deletes a TIDAL playlist by its ID. USE THIS TOOL WHENEVER A USER ASKS FOR: - "Delete my playlist" - "Remove a playlist from my TIDAL account" - "Get rid of this playlist" - "Delete the playlist with ID X" - Any request to delete or remove a TIDAL playlist This function deletes a specific playlist from the user's TIDAL account. The user must be authenticated with TIDAL first. When processing the results of this tool: 1. Confirm the playlist was deleted successfully 2. Provide a clear message about the deletion Args: playlist_id: The TIDAL ID of the playlist to delete (required) Returns: A dictionary containing the status of the playlist deletion

README

TIDAL MCP: My Custom Picks 🌟🎧

Demo: Music Recommendations in Action

<a href="https://glama.ai/mcp/servers/@yuhuacheng/tidal-mcp"> <img width="380" height="200" src="https://glama.ai/mcp/servers/@yuhuacheng/tidal-mcp/badge" alt="TIDAL: My Custom Picks MCP server" /> </a>

When exploring music on platforms like Spotify or TIDAL, there’s no shortage of recommendation features — Daily Discovery, New Arrivals, Top Artists, and more. But more often than not, I'd like something more direct and customizable. For example:

"Based on my last 10 favorites, find similar tracks — but only ones from recent years."

"Find me tracks like those in this playlist, but slower and more acoustic."

Even with state-of-the-art recommendation systems, the results often feel too "aggregated" and not tuned to what I want right now.

TIDAL MCP bridges that gap by giving an LLM access to your favorites, playlists, and its track radio API, letting it find similar tracks based on any seeds you pick. It then layers in additional filtering — using the LLM’s knowledge or external tools like web search — to match your specific vibe. Finally, it can create new playlists for you directly in your TIDAL account.

Features

  • 🌟 Music Recommendations: Get personalized track recommendations based on your listening history plus your custom criteria.
  • ၊၊||၊ Playlist Management: Create, view, and manage your TIDAL playlists

Quick Start

Prerequisites

  • Python 3.10+
  • uv (Python package manager)
  • TIDAL subscription

Installation

  1. Clone this repository:

    git clone https://github.com/yuhuacheng/tidal-mcp.git
    cd tidal-mcp
    
  2. Create a virtual environment and install dependencies using uv:

    uv venv
    source .venv/bin/activate  # On Windows: .venv\Scripts\activate
    
  3. Install the package with all dependencies from the pyproject.toml file:

    uv pip install --editable .
    

    This will install all dependencies defined in the pyproject.toml file and set up the project in development mode.

MCP Client Configuration

Claude Desktop Configuration

To add this MCP server to Claude Desktop, you need to update the MCP configuration file. Here's an example configuration: (you can specify the port by adding an optional env section with the TIDAL_MCP_PORT environment variable)

{
  "mcpServers": {
    "TIDAL Integration": {
      "command": "/path/to/your/uv",
      "env": {
        "TIDAL_MCP_PORT": "5100"
      },
      "args": [
        "run",
        "--with",
        "requests",
        "--with",
        "mcp[cli]",
        "--with",
        "flask",
        "--with",
        "tidalapi",
        "mcp",
        "run",
        "/path/to/your/project/tidal-mcp/mcp_server/server.py"
      ]
    }
  }
}

Example scrrenshot of the MCP configuration in Claude Desktop: Claude MCP Configuration

Steps to Install MCP Configuration

  1. Open Claude Desktop
  2. Go to Settings > Developer
  3. Click on "Edit Config"
  4. Paste the modified JSON configuration
  5. Save the configuration
  6. Restart Claude Desktop

Suggested Prompt Starters

Once configured, you can interact with your TIDAL account through a LLM by asking questions like:

  • “Recommend songs like those in this playlist, but slower and more acoustic.”
  • “Create a playlist based on my top tracks, but focused on chill, late-night vibes.”
  • “Find songs like these in playlist XYZ but in languages other than English.”

💡 You can also ask the model to:

  • Use more tracks as seeds to broaden the inspiration.
  • Return more recommendations if you want a longer playlist.
  • Or delete a playlist if you’re not into it — no pressure!

Available Tools

The TIDAL MCP integration provides the following tools:

  • tidal_login: Authenticate with TIDAL through browser login flow
  • get_favorite_tracks: Retrieve your favorite tracks from TIDAL
  • recommend_tracks: Get personalized music recommendations
  • create_tidal_playlist: Create a new playlist in your TIDAL account
  • get_user_playlists: List all your playlists on TIDAL
  • get_playlist_tracks: Retrieve all tracks from a specific playlist
  • delete_tidal_playlist: Delete a playlist from your TIDAL account

License

MIT License

Acknowledgements

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选