Skip to main content
Glama
MCP Spotify Server

MCP Spotify Server

ArtistLens

npm version

A powerful Model Context Protocol (MCP) server that provides access to the Spotify Web API. ArtistLens enables seamless 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.

Current Version: 0.4.12

Installation

Installing via Smithery

To install ArtistLens for Claude Desktop automatically via Smithery:

npx -y @smithery/cli install @superseoworld/artistlens --client claude

Manual Installation

You can install the package globally:

npm install -g @thomaswawra/artistlens

Or run it directly with npx:

npx -y @thomaswawra/artistlens

Related MCP server: MCP Spotify Server

Configuration

Add to your MCP settings file (e.g., claude_desktop_config.json or cline_mcp_settings.json):

{
  "mcpServers": {
    "spotify": {
      "command": "npx",
      "args": ["-y", "@thomaswawra/artistlens"],
      "env": {
        "SPOTIFY_CLIENT_ID": "your_client_id",
        "SPOTIFY_CLIENT_SECRET": "your_client_secret"
      },
      "disabled": false,
      "autoApprove": []
    }
  }
}

You'll need to provide your Spotify API credentials:

  1. Go to Spotify Developer Dashboard

  2. Create a new application

  3. Get your Client ID and Client Secret

  4. Add them to the configuration as shown above

Features

  • 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

  • Get audiobook information with market-specific content and chapters

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

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

  • Access playlist tracks and items with pagination support

  • Support for both Spotify IDs and URIs

  • Automatic token management with client credentials flow

  • Comprehensive test suite for all functionality

  • Well-organized code with separation of concerns

Available Tools

  • get_access_token: Get a valid Spotify access token

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

  • 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

  • get_album: Get album information

  • get_album_tracks: Get an album's tracks

  • get_track: Get track information

  • get_available_genres: Get a list of available genres for recommendations

  • get_new_releases: Get new album releases

  • get_recommendations: Get track recommendations based on seed tracks, artists, or genres

  • 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)

  • 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)

  • get_featured_playlists: Get a list of Spotify featured playlists with optional locale and pagination support

  • get_category_playlists: Get a list of Spotify playlists tagged with a particular category

Updating

To update to the latest version:

# If installed globally
npm update -g @thomaswawra/artistlens

# If using npx, it will automatically use the latest version
npx -y @thomaswawra/artistlens

Development

This project is open source and available on GitHub at https://github.com/superseoworld/artistlens.

Project Structure

The codebase is organized into the following directories:

  • src/handlers/: Contains handler classes for different Spotify API endpoints

  • src/types/: TypeScript interfaces for request and response objects

  • src/utils/: Utility functions and classes for API communication

  • src/__tests__/: Jest test files for all functionality

Testing

The project uses Jest for testing. To run the tests:

npm test

To run tests in watch mode during development:

npm run test:watch

Contributing

To contribute:

  1. Fork the repository

  2. Create your feature branch (git checkout -b feature/amazing-feature)

  3. Add tests for your changes

  4. Commit your changes (git commit -m 'Add some amazing feature')

  5. Push to the branch (git push origin feature/amazing-feature)

  6. Open a Pull Request

License

MIT License

Available Tools

26 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), include_groups, limit, offset.

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), market, limit, offset.

get_available_genresB

Get a list of available genres for recommendations

Inputs: no named parameters.

get_category_playlistsC

Get a list of Spotify playlists tagged with a particular category

Inputs: category_id (required), limit, offset.

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: country, limit, offset.

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), market, fields, limit, +1 more.

get_playlist_tracksC

Get full details of the tracks of a playlist

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

get_recommendationsB

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

Inputs: seed_tracks, seed_artists, seed_genres, limit.

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, collaborative, +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.3/5.0

    Scored across 26 tools

    Disambiguation4/5

    Most tools have distinct purposes targeting specific resources (e.g., albums, artists, playlists), but there is some overlap between get_playlist_items and get_playlist_tracks, which could cause confusion as both retrieve playlist content. The descriptions clarify that get_playlist_tracks focuses on tracks specifically, while get_playlist_items is more general, but the distinction is subtle and might lead to misselection.

    Naming Consistency5/5

    Tool names follow a highly consistent verb_noun pattern throughout, with all tools using snake_case and starting with verbs like 'get', 'add', 'remove', or 'modify'. This predictability makes it easy for agents to understand and navigate the toolset without confusion.

    Tool Count2/5

    With 26 tools, the count feels excessive for a Spotify API server, as many tools could be consolidated (e.g., multiple 'get' tools for similar resources). This bloat may overwhelm agents and complicate decision-making, indicating a lack of streamlined design for the domain.

    Completeness5/5

    The toolset provides comprehensive coverage of the Spotify domain, including CRUD operations for playlists (add, remove, modify), extensive catalog access for albums, artists, tracks, and audiobooks, and features like search, recommendations, and user-specific data. No obvious gaps exist, ensuring agents can handle a wide range of Spotify-related tasks.

    Related MCP Connectors

    Related MCP Servers

    • F
      license
      Not graded
      quality
      D
      maintenance
      Enables interaction with Spotify's music catalog through natural language conversations. Search for tracks and artists, get recommendations, explore playlists, and browse artist discographies using the Spotify Web API.
      -
    • A
      license
      A
      quality
      D
      maintenance
      Enables interaction with Spotify through LLMs using OAuth2 authentication. Supports music search, playback control, playlist management, and device management through natural language commands.
      14
      2
      MIT
    • A
      license
      A
      quality
      D
      maintenance
      Enables interaction with Spotify through OAuth 2.0 authentication, supporting search for tracks/artists/albums/playlists, user profile access, and playlist management including creation and adding tracks.
      6
      MIT
    • A
      license
      C
      quality
      D
      maintenance
      Enables natural language control of Spotify, including search, playback, and device management, with robust error handling and automatic token refresh.
      3
      25 npm
      MIT