Skip to main content
Glama

Spotify MCP Server

by marcelmarais

Ein leichtgewichtiger Model Context Protocol (MCP) -Server, der es KI-Assistenten wie Cursor und Claude ermöglicht, die Spotify-Wiedergabe zu steuern und Wiedergabelisten zu verwalten.

Beispielinteraktionen

  • „Spielen Sie Elvis‘ erstes Lied“
  • „Erstellen Sie eine Taylor Swift / Slipknot Fusion-Playlist“
  • „Kopiere alle Techno-Tracks aus meiner Workout-Playlist in meine Arbeits-Playlist.“

Werkzeuge

Lesevorgänge

  1. SucheSpotify
    • Beschreibung : Suche nach Titeln, Alben, Künstlern oder Playlists auf Spotify
    • Parameter :
      • query (string): Der Suchbegriff
      • type (Zeichenfolge): Typ des zu suchenden Elements (Titel, Album, Interpret, Wiedergabeliste)
      • limit (Zahl, optional): Maximale Anzahl der zurückzugebenden Ergebnisse (10-50)
    • Rückgaben : Liste der übereinstimmenden Artikel mit ihren IDs, Namen und zusätzlichen Details
    • Beispiel : searchSpotify("bohemian rhapsody", "track", 20)
  2. getNowPlaying
    • Beschreibung : Erhalten Sie Informationen zum aktuell wiedergegebenen Titel auf Spotify
    • Parameter : Keine
    • Gibt zurück : Objekt mit Titelname, Künstler, Album, Wiedergabefortschritt, Dauer und Wiedergabestatus
    • Beispiel : getNowPlaying()
  3. getMyPlaylists
    • Beschreibung : Holen Sie sich eine Liste der Playlists des aktuellen Benutzers auf Spotify
    • Parameter :
      • limit (Zahl, optional): Maximale Anzahl der zurückzugebenden Wiedergabelisten (Standard: 20)
      • offset (Zahl, optional): Index der ersten zurückzugebenden Wiedergabeliste (Standard: 0)
    • Gibt zurück : Array von Wiedergabelisten mit ihren IDs, Namen, Titelanzahl und öffentlichem Status
    • Beispiel : getMyPlaylists(10, 0)
  4. getPlaylistTracks
    • Beschreibung : Rufen Sie eine Liste der Titel in einer bestimmten Spotify-Wiedergabeliste ab
    • Parameter :
      • playlistId (Zeichenfolge): Die Spotify-ID der Playlist
      • limit (Zahl, optional): Maximale Anzahl der zurückzugebenden Titel (Standard: 100)
      • offset (Zahl, optional): Index des ersten zurückzugebenden Titels (Standard: 0)
    • Gibt zurück : Array von Titeln mit ihren IDs, Namen, Künstlern, Alben, Dauer und Hinzufügungsdatum
    • Beispiel : getPlaylistTracks("37i9dQZEVXcJZyENOWUFo7")
  5. getRecentlyPlayed
    • Beschreibung : Ruft eine Liste der zuletzt abgespielten Titel von Spotify ab.
    • Parameter :
      • limit (Zahl, optional): Eine Zahl, die die maximale Anzahl der zurückzugebenden Titel angibt.
    • Rückgabewert : Wenn Titel gefunden werden, wird eine formatierte Liste der zuletzt abgespielten Titel zurückgegeben, andernfalls die Meldung: „Sie haben keine zuletzt abgespielten Titel auf Spotify.“
    • Beispiel : getRecentlyPlayed({ limit: 10 })
  6. getRecentlyPlayed
    • Beschreibung : Ruft eine Liste der zuletzt abgespielten Titel von Spotify ab.
    • Parameter :
      • limit (Zahl, optional): Eine Zahl, die die maximale Anzahl der zurückzugebenden Titel angibt.
    • Rückgabewert : Wenn Titel gefunden werden, wird eine formatierte Liste der zuletzt abgespielten Titel zurückgegeben, andernfalls die Meldung: „Sie haben keine zuletzt abgespielten Titel auf Spotify.“
    • Beispiel : getRecentlyPlayed({ limit: 10 })

Operationen abspielen/erstellen

  1. Musik abspielen
    • Beschreibung : Starten Sie die Wiedergabe eines Titels, Albums, Künstlers oder einer Playlist auf Spotify
    • Parameter :
      • uri (Zeichenfolge, optional): Spotify-URI des abzuspielenden Elements (überschreibt Typ und ID)
      • type (Zeichenfolge, optional): Typ des abzuspielenden Elements (Titel, Album, Interpret, Wiedergabeliste)
      • id (Zeichenfolge, optional): Spotify-ID des abzuspielenden Elements
      • deviceId (Zeichenfolge, optional): ID des Geräts, auf dem abgespielt werden soll
    • Rückgabe : Erfolgsstatus
    • Beispiel : playMusic({ uri: "spotify:track:6rqhFgbbKwnb9MLmUQDhG6" })
    • Alternative : playMusic({ type: "track", id: "6rqhFgbbKwnb9MLmUQDhG6" })
  2. PauseWiedergabe
    • Beschreibung : Pausieren Sie den aktuell wiedergegebenen Titel auf Spotify
    • Parameter :
      • deviceId (Zeichenfolge, optional): ID des anzuhaltenden Geräts
    • Rückgabe : Erfolgsstatus
    • Beispiel : pausePlayback()
  3. skipToNext
    • Beschreibung : Zum nächsten Titel in der aktuellen Wiedergabewarteschlange springen
    • Parameter :
      • deviceId (Zeichenfolge, optional): ID des Geräts
    • Rückgabe : Erfolgsstatus
    • Beispiel : skipToNext()
  4. skipToPrevious
    • Beschreibung : Zum vorherigen Titel in der aktuellen Wiedergabewarteschlange springen
    • Parameter :
      • deviceId (Zeichenfolge, optional): ID des Geräts
    • Rückgabe : Erfolgsstatus
    • Beispiel : skipToPrevious()
  5. Playlist erstellen
    • Beschreibung : Erstellen Sie eine neue Playlist auf Spotify
    • Parameter :
      • name (string): Name für die neue Playlist
      • description (Zeichenfolge, optional): Beschreibung für die Wiedergabeliste
      • public (boolesch, optional): Ob die Playlist öffentlich sein soll (Standard: false)
    • Gibt zurück : Objekt mit der ID und URL der neuen Wiedergabeliste
    • Beispiel : createPlaylist({ name: "Workout Mix", description: "Songs to get pumped up", public: false })
  6. Titel zur Wiedergabeliste hinzufügen
    • Beschreibung : Titel zu einer vorhandenen Spotify-Wiedergabeliste hinzufügen
    • Parameter :
      • playlistId (Zeichenfolge): ID der Wiedergabeliste
      • trackUris (Array): Array von hinzuzufügenden Track-URIs oder IDs
      • position (Zahl, optional): Position zum Einfügen von Titeln
    • Gibt zurück : Erfolgsstatus und Snapshot-ID
    • Beispiel : addTracksToPlaylist({ playlistId: "3cEYpjA9oz9GiPac4AsH4n", trackUris: ["spotify:track:4iV5W9uYEdYUVa79Axb7Rh"] })
  7. Zur Warteschlange hinzufügen
    • Beschreibung : Fügt der aktuellen Wiedergabewarteschlange einen Titel, ein Album, einen Künstler oder eine Wiedergabeliste hinzu
      • Parameter :
      • uri (Zeichenfolge, optional): Spotify-URI des Elements, das zur Warteschlange hinzugefügt werden soll (überschreibt Typ und ID)
      • type (Zeichenfolge, optional): Typ des in die Warteschlange einzureihenden Elements (Titel, Album, Interpret, Wiedergabeliste)
      • id (Zeichenfolge, optional): Spotify-ID des in die Warteschlange einzureihenden Elements
      • deviceId (Zeichenfolge, optional): ID des Geräts, auf dem die Warteschlange eingerichtet werden soll
    • Rückgabe : Erfolgsstatus
    • Beispiel : addToQueue({ uri: "spotify:track:6rqhFgbbKwnb9MLmUQDhG6" })
    • Alternative : addToQueue({ type: "track", id: "6rqhFgbbKwnb9MLmUQDhG6" })

Aufstellen

Voraussetzungen

  • Node.js v16+
  • Ein Spotify Premium-Konto
  • Eine registrierte Spotify-Entwickleranwendung

Installation

git clone https://github.com/marcelmarais/spotify-mcp-server.git cd spotify-mcp-server npm install npm run build

Erstellen einer Spotify-Entwickleranwendung

  1. Gehen Sie zum Spotify Developer Dashboard
  2. Melden Sie sich mit Ihrem Spotify-Konto an
  3. Klicken Sie auf die Schaltfläche „App erstellen“
  4. Geben Sie den App-Namen und die Beschreibung ein
  5. Akzeptieren Sie die Servicebedingungen und klicken Sie auf „Erstellen“.
  6. Im Dashboard Ihrer neuen App sehen Sie Ihre Client-ID
  7. Klicken Sie auf „Client Secret anzeigen“, um Ihr Client Secret anzuzeigen
  8. Klicken Sie auf „Einstellungen bearbeiten“ und fügen Sie eine Umleitungs-URI hinzu (z. B. http://localhost:8888/callback ).
  9. Speichern Sie Ihre Änderungen

Spotify-API-Konfiguration

Erstellen Sie eine Datei spotify-config.json im Projektstamm (Sie können das bereitgestellte Beispiel kopieren und ändern):

# Copy the example config file cp spotify-config.example.json spotify-config.json

Bearbeiten Sie dann die Datei mit Ihren Anmeldeinformationen:

{ "clientId": "your-client-id", "clientSecret": "your-client-secret", "redirectUri": "http://localhost:8888/callback" }

Authentifizierungsprozess

Die Spotify-API verwendet OAuth 2.0 zur Authentifizierung. Führen Sie die folgenden Schritte aus, um Ihre Anwendung zu authentifizieren:

  1. Führen Sie das Authentifizierungsskript aus:
npm run auth
  1. Das Skript generiert eine Autorisierungs-URL. Öffnen Sie diese URL in Ihrem Webbrowser.
  2. Sie werden aufgefordert, sich bei Spotify anzumelden und Ihre Anwendung zu autorisieren.
  3. Nach der Autorisierung leitet Spotify Sie mit einem Codeparameter in der URL zu Ihrer angegebenen Weiterleitungs-URI weiter.
  4. Das Authentifizierungsskript tauscht diesen Code automatisch gegen Zugriffs- und Aktualisierungstoken aus.
  5. Diese Token werden in Ihrer Datei spotify-config.json gespeichert, die nun ungefähr so aussieht:
{ "clientId": "your-client-id", "clientSecret": "your-client-secret", "redirectUri": "http://localhost:8888/callback", "accessToken": "BQAi9Pn...kKQ", "refreshToken": "AQDQcj...7w", "expiresAt": 1677889354671 }
  1. Der Server aktualisiert das Zugriffstoken bei Bedarf automatisch mithilfe des Aktualisierungstokens.

Integration mit Claude Desktop, Cursor und VsCode über die Cline-Modellerweiterung

Um Ihren MCP-Server mit Claude Desktop zu verwenden, fügen Sie ihn Ihrer Claude-Konfiguration hinzu:

{ "mcpServers": { "spotify": { "command": "node", "args": ["spotify-mcp-server/build/index.js"] } } }

Für den Cursor wechseln Sie in den Cursor Settings zur Registerkarte MCP (Befehl + Umschalt + J). Fügen Sie mit diesem Befehl einen Server hinzu:

node path/to/spotify-mcp-server/build/index.js

Um Ihr MCP korrekt mit Cline einzurichten, stellen Sie sicher, dass Sie den folgenden Dateikonfigurationssatz cline_mcp_settings.json haben:

{ "mcpServers": { "spotify": { "command": "node", "args": ["~/../spotify-mcp-server/build/index.js"], "autoApprove": ["getListeningHistory", "getNowPlaying"] } } }

Sie können dem Array für die automatische Genehmigung zusätzliche Tools hinzufügen, um die Tools ohne Eingriff auszuführen.

You must be authenticated.

A
security – no known vulnerabilities
F
license - not found
A
quality - confirmed to work

remote-capable server

The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.

Ein leichtgewichtiger Model Context Protocol-Server, der es KI-Assistenten wie Cursor und Claude ermöglicht, die Spotify-Wiedergabe zu steuern und Wiedergabelisten zu verwalten.

  1. Werkzeuge
    1. Lesevorgänge
    2. Operationen abspielen/erstellen
  2. Aufstellen
    1. Voraussetzungen
    2. Installation
    3. Erstellen einer Spotify-Entwickleranwendung
    4. Spotify-API-Konfiguration
    5. Authentifizierungsprozess
  3. Integration mit Claude Desktop, Cursor und VsCode über die Cline-Modellerweiterung

    Related MCP Servers

    • -
      security
      -
      license
      -
      quality
      A Model Context Protocol server that enables controlling Spotify playback through natural language commands in MCP clients like Cursor or Claude for Desktop.
      Last updated -
      1
      TypeScript
    • -
      security
      A
      license
      -
      quality
      A Model Context Protocol server that allows AI assistants like Claude and Cursor to create music and control Sonic Pi programmatically through OSC messages.
      Last updated -
      JavaScript
      MIT License
    • -
      security
      F
      license
      -
      quality
      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.
      Last updated -
      1
      TypeScript
      • Apple
    • A
      security
      A
      license
      A
      quality
      A Model Context Protocol server that enables real-time interaction with Ableton Live, allowing AI assistants to control song creation, track management, clip operations, and audio recording workflows.
      Last updated -
      23
      20
      19
      TypeScript
      MIT License
      • Linux
      • Apple

    View all related MCP servers

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

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