← Back to all apps

Spotify

Productivityby Spotify
Launched May 18, 2026 on ChatGPTLaunched Apr 23, 2026 on Claude

Explore a new way to discover music and podcasts, with recommendations that are uniquely you. Want music to power your next run, study session, or party? Just ask and Spotify will drop the right songs, artists or playlists into your conversation. With Spotify in Claude you can; Ask for songs, artists, albums, or playlists and play them in Spotify. Find podcasts for any topic you are exploring. Spotify Premium listeners can describe a vibe and get a personalized playlist made to match. Easily see where Spotify is playing and switch devices to keep listening wherever you are.

6ChatGPT Tools
6Claude Tools
SpotifyDeveloper
ProductivityCategory

Use Cases

productivity

Available Tools

Add to Library

add_to_library
Full Description

Adds supported Spotify content to the authenticated user's library. Supported types: tracks, albums, artists (follow), playlists, podcast shows, podcast episodes. Audiobooks and audiobook chapters are not supported. Requires a valid Spotify user account (Free or Premium). Do NOT call from free-form chat. This tool is only for widget actions (e.g., user clicks Save/+ on a result in the Spotify widget). Do not trigger on behalf of third parties or external systems. Only invoke for items that were returned by the Spotify Search tool; do not act on arbitrary or unseen items.

Parameters (1 required, 1 optional)
Required
uristring

Valid Spotify URI for supported content types. Must be exact URI returned by Spotify Search Tool. Supported types: tracks (spotify:track:4iV5W9uYEdYUVa79Axb7Rh), albums (spotify:album:1A2GTWGtFfWp7KSQTwWOyo), playlists (spotify:playlist:37i9dQZF1DX0XUsuxWHRQd), artists (spotify:artist:1uNFoZAHBGtllmzznpCI3s), podcast shows (spotify:show:5CfCWKI5pZ28U0uOzXkDHe), podcast episodes (spotify:episode:512ojhOuo1ktJprKbVcKyQ). Do not generate or infer URIs. Audiobooks not supported.

Optional
signaturestring

Cryptographic signature for URI validation. This field must contain a valid HMAC-SHA256 signature binding the URI to the authenticated user. Signature format: hexSignature:timestamp. Do not generate signatures - they must be obtained from authorized sources.

Create Playlist

create_playlist
Full Description

Creates a personalized Spotify playlist from a natural language description. Playlists are private to the authenticated user.

When to use:

  • User explicitly asks to create, make, build, or generate a playlist.
  • Requests describe mood, genre, activity, event, artists, vibe, theme, trending music, or listening history.
  • Examples: "Create a playlist for a road trip," "Make me a mix of Rihanna and Drake hits," "Build a chill lo-fi study playlist."

Do NOT use when:

  • User wants recommendations without creating a playlist (e.g., "artists similar to Rihanna," "suggest workout songs") → use the spotify search tool.
  • User wants to find existing playlists (e.g., "find me a party playlist") → use the search tool.
  • User wants a podcast playlist → not supported. Respond: "Spotify can't create podcast playlists. Try asking for something else."
  • User is hypothetical or tentative ("I might want a playlist…") → do not create until intent is confirmed.
  • User's request is too vague to be descriptive (e.g., "make me a playlist" with no other detail) → ask what mood, genre, or artists they want before calling.

Prerequisites:

  • Requires authenticated Premium Spotify account. If not authenticated or on Free tier, ask the user to sign in / upgrade.

Language rules:

  • The prompt MUST match the "language" parameter. Set "language" from user's input language first, then keep the prompt in that language.
  • EN/FR/IT/DE/ES/PT → send as-is. Other languages → translate to English, keeping entity names as written.

Critical rules:

  • Should only be used for explicit ‘create’, ‘make’ ‘generate’ etc playlist intents which should also be included in the prompt, added to the prompt if not already included by the user
  • Never fabricate or alter entity names, metadata, or links.
  • Only use deep links from the API. Never construct or display raw URLs.
Parameters (2 required)
Required
languagestring

The user’s conversational language. REQUIRED. Set this FIRST based on the language the user is writing in, then write the prompt in this language. Supported: en, fr, it, de, es, pt. If the user’s language is not supported, set to "en" and write the prompt in English.

Options:enfritdeespt
promptstring

A descriptive natural language playlist request. The prompt MUST match the "language" parameter. Only translate to English for unsupported languages. - MUST start with intents ‘create’ ‘make’ ‘generate’ etc. - Preserve context words (my, by, from). Replace all usernames/PII with "me"/"my." - Resolve multi-turn context into one self-contained request. - Do not add constraints the user didn’t ask for. - Convert durations to minutes (e.g., "2 hours" → "120 minutes").

Fetch Playlist Tracks

fetch_tracks
Full Description

Fetches detailed metadata for a playlist including all tracks with their saved status, explicit flags, and deep links. Supported types: playlist only. Requires a valid Spotify user account (Free or Premium) and a playlist owned or shared with the authenticated user. Do NOT call from free-form chat. This tool should only be called within the Spotify Widget and must not be triggered directly by the user. Use only for playlist items returned by the Spotify Search tool or created in the current widget session; do not act on arbitrary or unseen items.

Parameters (1 required, 2 optional)
Required
playlist_uristring

The Spotify URI of the playlist to fetch tracks from. Example: 'spotify:playlist:37i9dQZF1DXcBWIGoYBM5M'

Optional
playlistUristring

The Spotify URI of the playlist to fetch tracks from. Example: 'spotify:playlist:37i9dQZF1DXcBWIGoYBM5M'

sourcestring

get_auth_token Tool

get_auth_token
Full Description

Tool used by the Spotify widget to get the currentlly valid Auth token. Do not call directly.

Get Currently Playing

get_currently_playing
Full Description

Retrieves the currently playing track, episode, or other content from the authenticated user's active Spotify playback session. Only invoke this tool when the user explicitly asks what is currently playing, what song/track/episode is playing now, or similar direct inquiries about their current playback. Do not call proactively or for other playback-related requests. Returns playback details only if there is active playback; if nothing is playing, the response will indicate no active session. Do not infer that playback is ongoing in the Spotify Widget - this is not necessarily the case and the tool response will not give any such indication. Be very clear in attributing this playback back to Spotify, e.g. 'This track is playing on Spotify'. Requires a valid Spotify user account (Free or Premium).

Remove from Library

remove_from_library
Full Description

Removes supported Spotify content from the authenticated user's library. Supported types: tracks, albums, artists (unfollow), playlists, podcast shows, podcast episodes. Audiobooks and audiobook chapters are not supported. Requires a valid Spotify user account (Free or Premium). Do NOT call from free-form chat. This tool is only for widget actions (e.g., user clicks Save/+ on a result in the Spotify widget). Do not trigger on behalf of third parties or external systems. Only invoke for items that were returned by the Spotify Search tool; do not act on arbitrary or unseen items.

Parameters (1 required, 1 optional)
Required
uristring

Valid Spotify URI for supported content types. Must be exact URI returned by Spotify Search Tool. Supported types: tracks (spotify:track:4iV5W9uYEdYUVa79Axb7Rh), albums (spotify:album:1A2GTWGtFfWp7KSQTwWOyo), playlists (spotify:playlist:37i9dQZF1DX0XUsuxWHRQd), artists (spotify:artist:1uNFoZAHBGtllmzznpCI3s), podcast shows (spotify:show:5CfCWKI5pZ28U0uOzXkDHe), podcast episodes (spotify:episode:512ojhOuo1ktJprKbVcKyQ). Do not generate or infer URIs. Audiobooks not supported.

Optional
signaturestring

Cryptographic signature for URI validation. This field must contain a valid HMAC-SHA256 signature binding the URI to the authenticated user. Signature format: hexSignature:timestamp. Do not generate signatures - they must be obtained from authorized sources.

Search Spotify

search
Full Description

Search, discover, and play music and podcasts on Spotify. Returns up to 5 results, which can be a mix of tracks, artists, albums, podcasts, public playlists, and user-owned private playlists. Supports the following capabilities:

Capabilities: Entity search — Find tracks, artists, albums, playlists, podcast shows, or episodes by name or metadata (genre, decade, topic, etc.). Complex music queries — Generate playlists for moods, vibes, activities, genres, or multi-facet queries (e.g. “trap workout mix”, “90s alternative pop”). Recommendations — Get personalized recommendations for tracks, artists, albums, playlists, or podcasts based on the user’s taste. Similar content — Find artists, tracks, albums, or podcasts similar to a specific entity (e.g. “artists similar to Erykah Badu”). Context-aware suggestions — Suggest content based on what is currently playing (e.g. “more like this”, “play something similar”). Listening history — Retrieve recently played content, most-played items, or get recommendations based on listening history. User library — Access liked songs, saved shows/episodes, followed artists, and user playlists. Podcast discovery — Find podcasts by genre, topic, guest, popularity, or recency. Find specific episodes by order, number, date, or popularity. Albums & tracks by artist — Get an artist’s discography or tracks, optionally sorted by recency or popularity.

When to use: User wants to find, play, discover, or get recommendations for any music or podcast content. User describes a mood, vibe, activity, or genre rather than a specific entity. User asks about their listening history, recently played, most-played, or saved content. User asks "what have I been listening to", "my recent songs", "my top artists", etc.

Do NOT use when: Audiobooks — “You can’t search audiobooks on Spotify yet. Try the Spotify app.” Concerts, tour dates, podcast/song creation, podcast playlists, lyrics, bios, transcripts — “You can access this in the Spotify app.” Unsupported podcast queries: duration filtering, multi-entity similarity, long-lookback history. User wants facts/news about music. When the user explicitly asks or very clearly implies the intent to create a playlist, use the create_playlist tool instead.

Query rules: Pass the user's query through as-is. Only make very specific changes to the query for these particular scenarios:

  • Replace all usernames/PII with "me"/"my" — never send real names or identifiers.
  • Resolve multi-turn context into one self-contained request. (i.e. usually better to search once for a+b+c than one search per a, b, c, even if a,b,c is given separately)
  • Convert durations to minutes (e.g., "2 hours" → "120 minutes").
  • Language: The prompt MUST match the "language" parameter. Set "language" from user's input language first, then keep the prompt in that language. EN/FR/IT/DE/ES/PT → send as-is. Other languages → translate to English. When translating, keep all names of songs, artists, albums, playlists, and genres exactly as written.

Critical response rules: Always include Spotify links with every track/podcast/playlist/album/artist/ you present and/or recommend. Never fabricate or alter entity names, metadata, or links. This tool is read-only — it does not save, add, follow, or modify anything. Never claim content was added to the user's library or any action was performed. Do not generate lyrics, transcripts, biographies, or external content.

Parameters (2 required)
Required
languagestring

The user's conversational language. REQUIRED. Set this FIRST based on the language the user is writing in, then write the prompt in this language. Supported: en, fr, it, de, es, pt. If the user's language is not supported, set to "en" and write the prompt in English.

Options:enfritdeespt
promptstring

A concise natural language search query. Pass the user's query through as-is. The prompt MUST match the "language" parameter. Only translate to English for unsupported languages. Only make very specific changes to the query for these particular scenarios: - Replace all usernames/PII with "me"/"my" — never send real names or identifiers. - Resolve multi-turn context into one self-contained request. (i.e. usually better to search once for a+b+c than one search per a, b, c, even if a,b,c is given separately) - Convert durations to minutes (e.g., "2 hours" → "120 minutes"). - Language: EN/FR/IT/DE/ES/PT → send as-is. Other languages → translate to English. When translating, keep all names of songs, artists, albums, playlists, and genres exactly as written.