Skip to main content
Glama
mcp-spotify

mcp-spotify

by RomitDeokar

MCP Spotify Server

A Model Context Protocol (MCP) server that provides access to the Spotify Web API. This server enables interaction with Spotify's music catalog, including searching for tracks, albums, and artists, as well as accessing artist-specific information like top tracks and related artists.

Prerequisites

  1. Node.js (version 16 or higher)

  2. Spotify API Credentials:

Related MCP server: Vulpes Spotify MCP Server

Installation

  1. Clone the Repository:

    git clone https://github.com/pashpashpash/mcp-spotify.git
    cd mcp-spotify
  2. Install Dependencies:

    npm install
  3. Build the Project:

    npm run build

Configuration

Add to your Claude Desktop configuration file:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

  • Windows: %APPDATA%/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "spotify": {
      "command": "node",
      "args": ["path/to/mcp-spotify/dist/index.js"],
      "env": {
        "SPOTIFY_CLIENT_ID": "your_client_id",
        "SPOTIFY_CLIENT_SECRET": "your_client_secret"
      }
    }
  }
}

Note: Replace "path/to/mcp-spotify" with the actual path to your cloned repository.

Features

Music Search and Discovery

  • Search for tracks, albums, artists, and playlists

  • Get artist information including top tracks and related artists

  • Get album information and tracks

  • Access new releases and recommendations

Audiobooks

  • Get audiobook information with market-specific content and chapters

  • Note: Audiobook endpoints may require additional authentication or market-specific access

Playlist Management

  • Get and modify playlist information (name, description, public/private status)

  • Access playlist tracks and items with pagination support

  • Add and remove tracks from playlists

Additional Features

  • Support for both Spotify IDs and URIs

  • Automatic token management with client credentials flow

Available Tools

Authentication

  • get_access_token: Get a valid Spotify access token

Search and Discovery

  • search: Search for tracks, albums, artists, or playlists

  • get_new_releases: Get new album releases

  • get_recommendations: Get track recommendations

Artist Information

  • get_artist: Get artist information

  • get_artist_top_tracks: Get an artist's top tracks

  • get_artist_related_artists: Get artists similar to a given artist

  • get_artist_albums: Get an artist's albums

Album and Track Information

  • get_album: Get album information

  • get_album_tracks: Get an album's tracks

  • get_track: Get track information

Audiobook Access

  • get_audiobook: Get audiobook information with optional market parameter

  • get_multiple_audiobooks: Get information for multiple audiobooks (max 50)

  • get_audiobook_chapters: Get chapters of an audiobook with pagination support (1-50 chapters per request)

Playlist Management

  • get_playlist: Get a playlist owned by a Spotify user

  • get_playlist_tracks: Get full details of the tracks of a playlist (1-100 tracks per request)

  • get_playlist_items: Get full details of the items of a playlist (1-100 items per request)

  • modify_playlist: Change playlist details (name, description, public/private state, collaborative status)

  • add_tracks_to_playlist: Add one or more tracks to a playlist with optional position

  • remove_tracks_from_playlist: Remove one or more tracks from a playlist with optional positions and snapshot ID

  • get_current_user_playlists: Get a list of the playlists owned or followed by the current Spotify user (1-50 playlists per request)

Debugging

If you run into issues, check Claude Desktop's MCP logs:

tail -n 20 -f ~/Library/Logs/Claude/mcp*.log

Common issues:

  1. Authentication Errors:

    • Verify your Spotify Client ID and Secret are correct

    • Check that your application is properly registered in the Spotify Developer Dashboard

  2. Rate Limiting:

    • The server includes automatic token management

    • Be aware of Spotify API rate limits for different endpoints

Development

# Install dependencies
npm install

# Build the project
npm run build

# Development with auto-rebuild
npm run watch

License

MIT License


Note: This is a fork of the original mcp-spotify repository

Available Tools

24 tools
add_tracks_to_playlistC

Add one or more tracks to a playlist

Inputs: id (required), uris (required), position.

get_access_tokenB

Get a valid Spotify access token for API requests

Inputs: no named parameters.

get_albumC

Get Spotify catalog information for an album

Inputs: id (required).

get_album_tracksB

Get Spotify catalog information for an album's tracks

Inputs: id (required), limit, offset.

get_artistC

Get Spotify catalog information for an artist

Inputs: id (required).

get_artist_albumsC

Get Spotify catalog information about an artist's albums

Inputs: id (required), limit, offset, include_groups.

get_artist_top_tracksB

Get Spotify catalog information about an artist's top tracks

Inputs: id (required), market.

get_audiobookC

Get Spotify catalog information for an audiobook

Inputs: id (required), market.

get_audiobook_chaptersB

Get Spotify catalog information about an audiobook's chapters

Inputs: id (required), limit, market, offset.

get_available_genresA

Get a list of available genre seeds for recommendations

Inputs: no named parameters.

get_current_user_playlistsC

Get a list of the playlists owned or followed by the current Spotify user

Inputs: limit, offset.

get_multiple_albumsC

Get Spotify catalog information for multiple albums

Inputs: ids (required).

get_multiple_artistsC

Get Spotify catalog information for multiple artists

Inputs: ids (required).

get_multiple_audiobooksC

Get Spotify catalog information for multiple audiobooks

Inputs: ids (required), market.

get_new_releasesC

Get a list of new album releases featured in Spotify

Inputs: limit, offset, country.

get_playlistC

Get a playlist owned by a Spotify user

Inputs: id (required), market.

get_playlist_itemsC

Get full details of the items of a playlist

Inputs: id (required), limit, fields, market, +1 more.

get_playlist_tracksC

Get full details of the tracks of a playlist

Inputs: id (required), limit, fields, market, +1 more.

get_recommendationsB

Get track recommendations based on seed tracks, artists, or genres

Inputs: limit, seed_genres, seed_tracks, seed_artists.

get_trackC

Get Spotify catalog information for a track

Inputs: id (required).

modify_playlistC

Change a playlist's name and public/private state

Inputs: id (required), name, public, description, +1 more.

remove_tracks_from_playlistC

Remove one or more tracks from a playlist

Inputs: id (required), tracks (required), snapshot_id.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    B3.4/5.0

    Scored across 24 tools

    Disambiguation4/5

    Most tools target distinct resources or actions, but get_playlist_tracks and get_playlist_items appear to overlap significantly. get_playlist also overlaps with those, creating some ambiguity between playlist detail-fetching operations.

    Naming Consistency5/5

    Consistent verb_noun pattern throughout: get_*, add_*, remove_*, modify_*, search. The one bare 'search' is a minor deviation but universally understood in this domain.

    Tool Count4/5

    24 tools is at the high end but justified by Spotify's broad catalog surface (tracks, albums, artists, playlists, audiobooks). A few tools like get_multiple_* variants could potentially be consolidated.

    Completeness4/5

    Strong read coverage across catalog entities and playlist lifecycle (create via modify? no create_playlist is missing). Playlist creation is a notable gap, as is user profile/playback control, but core browsing and playlist mutation workflows are covered.

    Maintenance

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers