Skip to main content
Glama
llyfn

mcp-server-spotify

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
SPOTIFY_CLIENT_IDYesYour Spotify app's Client ID
SPOTIFY_REDIRECT_URINoOAuth redirect URIhttp://127.0.0.1:8888/callback
SPOTIFY_CLIENT_SECRETYesYour Spotify app's Client Secret

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
get_albumA

Get details of a Spotify album by its ID.

    Args:
        album_id: The Spotify ID of the album.
    
get_album_tracksA

Get tracks of a Spotify album.

    Args:
        album_id: The Spotify ID of the album.
        limit: Maximum number of tracks to return (1-50, default 20).
        offset: Index of the first track to return (default 0).
    
get_artistA

Get details of a Spotify artist by their ID.

    Args:
        artist_id: The Spotify ID of the artist.
    
get_artist_albumsB

Get albums by a Spotify artist.

    Args:
        artist_id: The Spotify ID of the artist.
        include_groups: Comma-separated album types: album, single, appears_on, compilation.
        limit: Maximum number of albums to return (1-50, default 20).
        offset: Index of the first album to return (default 0).
    
get_trackA

Get details of a Spotify track by its ID.

    Args:
        track_id: The Spotify ID of the track.
    
searchB

Search for tracks, albums, artists, playlists, shows, episodes, or audiobooks on Spotify.

    Args:
        query: Search query. Supports filters: artist:, album:, track:, year:, genre:.
        types: Comma-separated types: track, album, artist, playlist, show, episode, audiobook.
        limit: Maximum results per type (1-50, default 10).
        offset: Index of first result to return (default 0).
        market: ISO 3166-1 alpha-2 country code to filter results.
    
get_playlistB

Get details of a Spotify playlist.

    Args:
        playlist_id: The Spotify ID of the playlist.
    
update_playlistB

Update a playlist's name, description, or visibility.

    Args:
        playlist_id: The Spotify ID of the playlist.
        name: New name for the playlist.
        description: New description for the playlist.
        public: Whether the playlist should be public.
    
get_playlist_itemsA

Get items (tracks/episodes) in a playlist.

    Args:
        playlist_id: The Spotify ID of the playlist.
        limit: Maximum number of items to return (1-100, default 20).
        offset: Index of the first item to return (default 0).
    
add_playlist_itemsA

Add tracks or episodes to a playlist.

    Args:
        playlist_id: The Spotify ID of the playlist.
        uris: List of Spotify URIs to add (e.g. ["spotify:track:xxx"]).
        position: Position to insert items (0-based). Appends to end if not specified.
    
remove_playlist_itemsB

Remove tracks or episodes from a playlist.

    Args:
        playlist_id: The Spotify ID of the playlist.
        uris: List of Spotify URIs to remove (e.g. ["spotify:track:xxx"]).
    
reorder_playlist_itemsB

Reorder items in a playlist.

    Args:
        playlist_id: The Spotify ID of the playlist.
        range_start: Position of the first item to be reordered.
        insert_before: Position where the items should be inserted.
        range_length: Number of items to reorder (default 1).
    
get_my_playlistsA

Get the current user's playlists.

    Args:
        limit: Maximum number of playlists to return (1-50, default 20).
        offset: Index of the first playlist to return (default 0).
    
create_playlistB

Create a new playlist for the current user.

    Args:
        name: Name for the new playlist.
        description: Description for the playlist.
        public: Whether the playlist should be public (default True).
    
get_saved_tracksA

Get the current user's saved tracks.

    Args:
        limit: Maximum number of tracks to return (1-50, default 20).
        offset: Index of the first track to return (default 0).
    
get_saved_albumsA

Get the current user's saved albums.

    Args:
        limit: Maximum number of albums to return (1-50, default 20).
        offset: Index of the first album to return (default 0).
    
get_saved_showsA

Get the current user's saved shows (podcasts).

    Args:
        limit: Maximum number of shows to return (1-50, default 20).
        offset: Index of the first show to return (default 0).
    
get_saved_episodesA

Get the current user's saved episodes.

    Args:
        limit: Maximum number of episodes to return (1-50, default 20).
        offset: Index of the first episode to return (default 0).
    
get_saved_audiobooksA

Get the current user's saved audiobooks.

    Args:
        limit: Maximum number of audiobooks to return (1-50, default 20).
        offset: Index of the first audiobook to return (default 0).
    
save_to_libraryA

Save items to the current user's library.

    Args:
        uris: List of Spotify URIs to save (e.g. ["spotify:track:xxx"]). Max 40.
    
remove_from_libraryA

Remove items from the current user's library.

    Args:
        uris: List of Spotify URIs to remove (e.g. ["spotify:track:xxx"]). Max 40.
    
check_saved_in_libraryA

Check if items are saved in the current user's library.

    Args:
        uris: List of Spotify URIs to check (e.g. ["spotify:track:xxx"]). Max 40.
    
get_showA

Get details of a Spotify show (podcast).

    Args:
        show_id: The Spotify ID of the show.
    
get_show_episodesA

Get episodes of a Spotify show.

    Args:
        show_id: The Spotify ID of the show.
        limit: Maximum number of episodes to return (1-50, default 20).
        offset: Index of the first episode to return (default 0).
    
get_audiobookC

Get details of a Spotify audiobook.

    Args:
        audiobook_id: The Spotify ID of the audiobook.
    
get_audiobook_chaptersB

Get chapters of a Spotify audiobook.

    Args:
        audiobook_id: The Spotify ID of the audiobook.
        limit: Maximum number of chapters to return (1-50, default 20).
        offset: Index of the first chapter to return (default 0).
    
get_chapterA

Get details of a specific audiobook chapter.

    Args:
        chapter_id: The Spotify ID of the chapter.
    
get_my_profileA

Get the current user's Spotify profile.

get_my_top_itemsB

Get the current user's top artists or tracks.

    Args:
        item_type: Type of items: "artists" or "tracks" (default "tracks").
        time_range: "short_term" (~4wk), "medium_term" (~6mo), or "long_term" (all time).
        limit: Maximum number of items to return (1-50, default 20).
        offset: Index of the first item to return (default 0).
    
get_playback_stateA

Get the current playback state including track, device, and progress.

get_currently_playingB

Get the currently playing track or episode.

playA

Start or resume playback.

    Args:
        device_id: ID of the device to play on. Uses active device if omitted.
        context_uri: Spotify URI of context (album, artist, playlist).
        uris: List of Spotify track URIs to play. E.g. ["spotify:track:xxx"].
        offset_position: Position in the context to start playback (0-based index).
        position_ms: Position in milliseconds to seek to.
    
pauseB

Pause playback on the active device.

    Args:
        device_id: ID of the device to pause. If not provided, pauses the active device.
    
next_trackA

Skip to the next track.

    Args:
        device_id: ID of the device. If not provided, uses the active device.
    
previous_trackA

Skip to the previous track.

    Args:
        device_id: ID of the device. If not provided, uses the active device.
    
seekA

Seek to a position in the currently playing track.

    Args:
        position_ms: Position in milliseconds to seek to.
        device_id: ID of the device. If not provided, uses the active device.
    
set_repeatA

Set the repeat mode for playback.

    Args:
        state: Repeat mode: "track", "context", or "off".
        device_id: ID of the device. If not provided, uses the active device.
    
set_volumeA

Set the playback volume.

    Args:
        volume_percent: Volume level (0-100).
        device_id: ID of the device. If not provided, uses the active device.
    
toggle_shuffleA

Toggle shuffle mode for playback.

    Args:
        state: True to enable shuffle, False to disable.
        device_id: ID of the device. If not provided, uses the active device.
    
transfer_playbackA

Transfer playback to a different device.

    Args:
        device_id: ID of the device to transfer to.
        play: Whether to start playing on the new device (default True).
    
get_devicesA

Get the user's available Spotify devices.

add_to_queueA

Add a track or episode to the playback queue.

    Args:
        uri: Spotify URI of the item to add. E.g. "spotify:track:xxx".
        device_id: ID of the device. If not provided, uses the active device.
    
get_queueB

Get the current playback queue.

get_recently_playedA

Get the user's recently played tracks.

    Args:
        limit: Maximum number of items to return (1-50, default 20).
    

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

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/llyfn/spotify-mcp'

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