create_tidal_playlist
Create a new playlist in your TIDAL account by adding specified tracks, with naming guidance based on your existing playlist style.
Instructions
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
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | ||
| track_ids | Yes | ||
| description | No |
Implementation Reference
- mcp_server/server.py:284-388 (handler)The @mcp.tool()-decorated handler function implementing the create_tidal_playlist MCP tool. Performs authentication check, input validation, proxies the playlist creation request to the internal Flask API (/api/playlists), processes the response, and adds a TIDAL playlist URL.@mcp.tool() def create_tidal_playlist(title: str, track_ids: list, description: str = "") -> dict: """ 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 """ try: # First, check if the user is authenticated auth_check = requests.get(f"{FLASK_APP_URL}/api/auth/status") auth_data = auth_check.json() if not auth_data.get("authenticated", False): return { "status": "error", "message": "You need to login to TIDAL first before creating a playlist. Please use the tidal_login() function." } # Validate inputs if not title: return { "status": "error", "message": "Playlist title cannot be empty." } if not track_ids or not isinstance(track_ids, list) or len(track_ids) == 0: return { "status": "error", "message": "You must provide at least one track ID to add to the playlist." } # Create the playlist through the Flask API payload = { "title": title, "description": description, "track_ids": track_ids } response = requests.post(f"{FLASK_APP_URL}/api/playlists", json=payload) # Check response if response.status_code != 200: error_data = response.json() return { "status": "error", "message": f"Failed to create playlist: {error_data.get('error', 'Unknown error')}" } # Parse the response result = response.json() playlist_data = result.get("playlist", {}) # Get the playlist ID playlist_id = playlist_data.get("id") # Format the TIDAL URL playlist_url = f"https://tidal.com/playlist/{playlist_id}" if playlist_id else None playlist_data["playlist_url"] = playlist_url return { "status": "success", "message": f"Successfully created playlist '{title}' with {len(track_ids)} tracks", "playlist": playlist_data } except Exception as e: return { "status": "error", "message": f"Failed to create playlist: {str(e)}" }