Vulpes Spotify MCP Server

Vulpes Spotify MCP Server

A Model Context Protocol server that enables AI assistants like Claude to interact with Spotify, allowing them to search for tracks, control playback, and manage playlists.

Category
Visit Server

README

Vuples Spotify MCP Server

A Model Context Protocol (MCP) server that enables AI assistants like Claude to interact with Spotify, allowing them to search for and play tracks.

Features

  • Search for tracks by artist, title, or any query
  • Play tracks directly on your active Spotify device
  • Get information about your currently playing track
  • Find available Spotify playback devices
  • Combined search-and-play functionality
  • List user's Spotify playlists
  • View tracks within playlists
  • Play playlists (with optional shuffle mode)
  • Find and play playlists by name

Requirements

  • Node.js (v16+)
  • Spotify Developer Account
  • Spotify Premium account (for playback functionality)
  • An MCP-compatible client (e.g., Claude Desktop)

Installation

  1. Clone this repository:

    git clone https://github.com/yourusername/spotify-mcp.git
    cd spotify-mcp
    
  2. Install dependencies:

    npm install
    
  3. Create a .env file with your Spotify API credentials:

    SPOTIFY_CLIENT_ID=your_client_id
    SPOTIFY_CLIENT_SECRET=your_client_secret
    SPOTIFY_REDIRECT_URI=http://localhost:8888
    
    # Optional: For playback control
    SPOTIFY_REFRESH_TOKEN=your_refresh_token
    

    You can get your Client ID and Secret from the Spotify Developer Dashboard.

  4. Generate a refresh token (required for playback control):

    There are two ways to get a refresh token:

    Option 1: Use the built-in script

    npm run get-token
    

    This will start a local server and provide instructions in the terminal.

    Option 2: Use the simple script (if option 1 doesn't work)

    node src/simple-auth.js
    

    This will give you a URL to open in your browser. After authorizing, you'll be redirected to a URL. Copy that URL back to the terminal, and it will show you a curl command to get the refresh token.

    Required scopes (already included in the scripts):

    • user-read-playback-state
    • user-modify-playback-state
    • user-read-currently-playing
    • playlist-read-private
    • playlist-read-collaborative
  5. Add the refresh token to your .env file:

    SPOTIFY_REFRESH_TOKEN=your_refresh_token
    
  6. Build the project:

    npm run build
    

Usage with Claude Desktop

  1. First, ensure Spotify is open and playing on your device

  2. Add this server to your Claude Desktop configuration:

    Edit your claude_desktop_config.json file (typically in ~/Library/Application Support/Claude/ on macOS or %APPDATA%\\Claude\\ on Windows):

    {
      "mcpServers": {
        "spotify": {
          "command": "node",
          "args": ["/absolute/path/to/vulpes-spotify-mcp/dist/index.js"],
          "env": {
            "SPOTIFY_CLIENT_ID": "your_client_id",
            "SPOTIFY_CLIENT_SECRET": "your_client_secret",
            "SPOTIFY_REDIRECT_URI": "http://localhost:8888",
            "SPOTIFY_REFRESH_TOKEN": "your_refresh_token"
          }
        }
      }
    }
    

    Make sure to replace /absolute/path/to/vulpes-spotify-mcp with the actual path to your project.

  3. Restart Claude Desktop

  4. You should now see the Spotify tools available when you click on the hammer icon in Claude Desktop

Available Tools

  • spotify-search: Search for tracks by query
  • spotify-play: Play a specific track by ID or URI
  • spotify-currently-playing: Get information about the currently playing track
  • spotify-devices: List available Spotify playback devices
  • spotify-search-and-play: Search for a track and automatically play the top result
  • spotify-playlists: Get a list of the user's Spotify playlists
  • spotify-playlist-tracks: Get tracks from a specific playlist
  • spotify-play-playlist: Play a specific playlist (with optional shuffle)
  • spotify-find-playlist: Find a playlist by name and play it (recommended for AI use)

Troubleshooting

  • "No active device found": Make sure Spotify is open and playing on at least one of your devices
  • "Missing permissions": Your refresh token may not have the required scopes
  • "Not premium": Playback control requires a Spotify Premium account
  • "Issues with refresh token": If your token expires, generate a new one using the steps in the installation section

Important Notes

  1. Always ensure Spotify is open on at least one device before using playback controls
  2. The refresh token in your .env file and Claude Desktop config must match
  3. After making changes to your configuration, restart Claude Desktop

License

MIT

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured