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
- SucheSpotify
- Beschreibung : Suche nach Titeln, Alben, Künstlern oder Playlists auf Spotify
- Parameter :
query
(string): Der Suchbegrifftype
(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)
- 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()
- 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)
- getPlaylistTracks
- Beschreibung : Rufen Sie eine Liste der Titel in einer bestimmten Spotify-Wiedergabeliste ab
- Parameter :
playlistId
(Zeichenfolge): Die Spotify-ID der Playlistlimit
(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")
- 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 })
- 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
- 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 ElementsdeviceId
(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" })
- PauseWiedergabe
- Beschreibung : Pausieren Sie den aktuell wiedergegebenen Titel auf Spotify
- Parameter :
deviceId
(Zeichenfolge, optional): ID des anzuhaltenden Geräts
- Rückgabe : Erfolgsstatus
- Beispiel :
pausePlayback()
- skipToNext
- Beschreibung : Zum nächsten Titel in der aktuellen Wiedergabewarteschlange springen
- Parameter :
deviceId
(Zeichenfolge, optional): ID des Geräts
- Rückgabe : Erfolgsstatus
- Beispiel :
skipToNext()
- skipToPrevious
- Beschreibung : Zum vorherigen Titel in der aktuellen Wiedergabewarteschlange springen
- Parameter :
deviceId
(Zeichenfolge, optional): ID des Geräts
- Rückgabe : Erfolgsstatus
- Beispiel :
skipToPrevious()
- Playlist erstellen
- Beschreibung : Erstellen Sie eine neue Playlist auf Spotify
- Parameter :
name
(string): Name für die neue Playlistdescription
(Zeichenfolge, optional): Beschreibung für die Wiedergabelistepublic
(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 })
- Titel zur Wiedergabeliste hinzufügen
- Beschreibung : Titel zu einer vorhandenen Spotify-Wiedergabeliste hinzufügen
- Parameter :
playlistId
(Zeichenfolge): ID der WiedergabelistetrackUris
(Array): Array von hinzuzufügenden Track-URIs oder IDsposition
(Zahl, optional): Position zum Einfügen von Titeln
- Gibt zurück : Erfolgsstatus und Snapshot-ID
- Beispiel :
addTracksToPlaylist({ playlistId: "3cEYpjA9oz9GiPac4AsH4n", trackUris: ["spotify:track:4iV5W9uYEdYUVa79Axb7Rh"] })
- 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 ElementsdeviceId
(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
Erstellen einer Spotify-Entwickleranwendung
- Gehen Sie zum Spotify Developer Dashboard
- Melden Sie sich mit Ihrem Spotify-Konto an
- Klicken Sie auf die Schaltfläche „App erstellen“
- Geben Sie den App-Namen und die Beschreibung ein
- Akzeptieren Sie die Servicebedingungen und klicken Sie auf „Erstellen“.
- Im Dashboard Ihrer neuen App sehen Sie Ihre Client-ID
- Klicken Sie auf „Client Secret anzeigen“, um Ihr Client Secret anzuzeigen
- Klicken Sie auf „Einstellungen bearbeiten“ und fügen Sie eine Umleitungs-URI hinzu (z. B.
http://localhost:8888/callback
). - 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):
Bearbeiten Sie dann die Datei mit Ihren Anmeldeinformationen:
Authentifizierungsprozess
Die Spotify-API verwendet OAuth 2.0 zur Authentifizierung. Führen Sie die folgenden Schritte aus, um Ihre Anwendung zu authentifizieren:
- Führen Sie das Authentifizierungsskript aus:
- Das Skript generiert eine Autorisierungs-URL. Öffnen Sie diese URL in Ihrem Webbrowser.
- Sie werden aufgefordert, sich bei Spotify anzumelden und Ihre Anwendung zu autorisieren.
- Nach der Autorisierung leitet Spotify Sie mit einem Codeparameter in der URL zu Ihrer angegebenen Weiterleitungs-URI weiter.
- Das Authentifizierungsskript tauscht diesen Code automatisch gegen Zugriffs- und Aktualisierungstoken aus.
- Diese Token werden in Ihrer Datei
spotify-config.json
gespeichert, die nun ungefähr so aussieht:
- 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:
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:
Um Ihr MCP korrekt mit Cline einzurichten, stellen Sie sicher, dass Sie den folgenden Dateikonfigurationssatz cline_mcp_settings.json
haben:
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.
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.
Tools
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.
Related MCP Servers
- -security-license-qualityA Model Context Protocol server that enables controlling Spotify playback through natural language commands in MCP clients like Cursor or Claude for Desktop.Last updated -1TypeScript
- -securityAlicense-qualityA 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 -JavaScriptMIT License
- -securityFlicense-qualityA 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 -1TypeScript
- AsecurityAlicenseAqualityA 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 -232019TypeScriptMIT License