Skip to main content
Glama

update_playlist

Modify a TIDAL playlist's name or description to keep your music collections organized and current.

Instructions

Update a playlist's name and/or description.

Args: playlist_id: ID of the playlist to update name: New name for the playlist (optional) description: New description (optional)

Returns: Updated playlist details

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
playlist_idYes
nameNo
descriptionNo

Implementation Reference

  • The main execution logic for the 'update_playlist' tool. Fetches the playlist using tidalapi.session.playlist, edits name/description via playlist.edit, refreshes the object, and returns structured UpdatePlaylistResult.
    @mcp.tool() async def update_playlist( playlist_id: str, name: Optional[str] = None, description: Optional[str] = None ) -> UpdatePlaylistResult: """ Update a playlist's name and/or description. Args: playlist_id: ID of the playlist to update name: New name for the playlist (optional) description: New description (optional) Returns: Updated playlist details """ if not await ensure_authenticated(): raise ToolError("Not authenticated. Please run the 'login' tool first.") if not name and description is None: raise ToolError("Must provide at least name or description to update") try: playlist = await anyio.to_thread.run_sync(session.playlist, playlist_id) if not playlist: raise ToolError(f"Playlist with ID '{playlist_id}' not found") # Update the playlist if name: await anyio.to_thread.run_sync(playlist.edit, name, description) elif description is not None: await anyio.to_thread.run_sync(playlist.edit, playlist.name, description) # Fetch updated playlist updated_playlist = await anyio.to_thread.run_sync(session.playlist, playlist_id) return UpdatePlaylistResult( status="success", playlist=Playlist( id=str(updated_playlist.id), name=updated_playlist.name, description=updated_playlist.description or "", track_count=getattr(updated_playlist, "num_tracks", 0), creator=None, url=f"https://tidal.com/browse/playlist/{playlist_id}", ), message=f"Updated playlist '{updated_playlist.name}'", ) except ToolError: raise except Exception as e: raise ToolError(f"Failed to update playlist: {str(e)}")
  • Pydantic output schema model used by the update_playlist handler for structured responses.
    class UpdatePlaylistResult(BaseModel): """Result of updating a playlist.""" status: str = Field(description="Operation status (success/error)") playlist: Optional[Playlist] = Field(None, description="Updated playlist details") message: str = Field(description="Status message")
  • FastMCP @mcp.tool() decorator registers the update_playlist function as an MCP tool.
    @mcp.tool()
  • Shared Pydantic model for playlist entities, embedded in UpdatePlaylistResult.
    class Playlist(BaseModel): """Structured representation of a TIDAL playlist.""" id: str = Field(description="Unique playlist ID (UUID)") name: str = Field(description="Playlist name") description: str = Field(description="Playlist description") track_count: int = Field(description="Number of tracks in playlist") creator: Optional[str] = Field(None, description="Playlist creator name") url: str = Field(description="TIDAL web URL for the playlist")

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