local-only server
The server can only run on the client’s local machine because it depends on local resources.
Integrations
Enables control of Spotify playback and playlist management, including searching for tracks/albums/artists, playing music, creating playlists, adding tracks to playlists, and controlling playback (pause, skip, etc.).
Un servidor de Protocolo de Contexto de Modelo (MCP) liviano que permite a los asistentes de IA como Cursor y Claude controlar la reproducción de Spotify y administrar listas de reproducción.
Ejemplos de interacciones
- "Toca la primera canción de Elvis"
- Crea una lista de reproducción que fusione Taylor Swift y Slipknot.
- Copiar todas las pistas tecno de mi lista de reproducción de entrenamiento a mi lista de reproducción del trabajo.
Herramientas
Operaciones de lectura
- buscarSpotify
- Descripción : Busca pistas, álbumes, artistas o listas de reproducción en Spotify
- Parámetros :
query
(cadena): el término de búsquedatype
(cadena): tipo de elemento a buscar (pista, álbum, artista, lista de reproducción)limit
(número, opcional): Número máximo de resultados a devolver (10-50)
- Devoluciones : Lista de artículos coincidentes con sus identificaciones, nombres y detalles adicionales
- Ejemplo :
searchSpotify("bohemian rhapsody", "track", 20)
- obtenerAhoraReproduciendo
- Descripción : Obtenga información sobre la pista que se está reproduciendo actualmente en Spotify
- Parámetros : Ninguno
- Devuelve : Objeto que contiene el nombre de la pista, el artista, el álbum, el progreso de la reproducción, la duración y el estado de la reproducción.
- Ejemplo :
getNowPlaying()
- obtenerMisListasDeReproducción
- Descripción : Obtenga una lista de las listas de reproducción del usuario actual en Spotify
- Parámetros :
limit
(número, opcional): número máximo de listas de reproducción a devolver (predeterminado: 20)offset
(número, opcional): índice de la primera lista de reproducción que se devolverá (predeterminado: 0)
- Devuelve : Matriz de listas de reproducción con sus identificaciones, nombres, cantidad de pistas y estado público
- Ejemplo :
getMyPlaylists(10, 0)
- obtenerPlaylistTracks
- Descripción : Obtenga una lista de pistas en una lista de reproducción específica de Spotify
- Parámetros :
playlistId
(cadena): el ID de Spotify de la lista de reproducciónlimit
(número, opcional): número máximo de pistas a devolver (predeterminado: 100)offset
(número, opcional): índice de la primera pista a devolver (predeterminado: 0)
- Devuelve : Matriz de pistas con sus identificaciones, nombres, artistas, álbum, duración y fecha de adición
- Ejemplo :
getPlaylistTracks("37i9dQZEVXcJZyENOWUFo7")
Jugar/Crear operaciones
- Reproducir música
- Descripción : Comienza a reproducir una pista, un álbum, un artista o una lista de reproducción en Spotify
- Parámetros :
uri
(cadena, opcional): URI de Spotify del elemento a reproducir (anula el tipo y la identificación)type
(cadena, opcional): tipo de elemento a reproducir (pista, álbum, artista, lista de reproducción)id
(cadena, opcional): ID de Spotify del elemento a reproducirdeviceId
(cadena, opcional): ID del dispositivo en el que se reproducirá
- Devoluciones : Estado de éxito
- Ejemplo :
playMusic({ uri: "spotify:track:6rqhFgbbKwnb9MLmUQDhG6" })
- Alternativa :
playMusic({ type: "track", id: "6rqhFgbbKwnb9MLmUQDhG6" })
- pausaReproducción
- Descripción : Pausa la pista que se está reproduciendo actualmente en Spotify
- Parámetros :
deviceId
(cadena, opcional): ID del dispositivo que se pausará
- Devoluciones : Estado de éxito
- Ejemplo :
pausePlayback()
- Saltar al siguiente
- Descripción : Salta a la siguiente pista en la cola de reproducción actual
- Parámetros :
deviceId
(cadena, opcional): ID del dispositivo
- Devoluciones : Estado de éxito
- Ejemplo :
skipToNext()
- Saltar al anterior
- Descripción : Salta a la pista anterior en la cola de reproducción actual
- Parámetros :
deviceId
(cadena, opcional): ID del dispositivo
- Devoluciones : Estado de éxito
- Ejemplo :
skipToPrevious()
- crear lista de reproducción
- Descripción : Crea una nueva lista de reproducción en Spotify
- Parámetros :
name
(cadena): nombre para la nueva lista de reproduccióndescription
(cadena, opcional): Descripción de la lista de reproducciónpublic
(booleano, opcional): si la lista de reproducción debe ser pública (valor predeterminado: falso)
- Devuelve : Objeto con el ID y la URL de la nueva lista de reproducción
- Ejemplo :
createPlaylist({ name: "Workout Mix", description: "Songs to get pumped up", public: false })
- añadir pistas a la lista de reproducción
- Descripción : Agregar pistas a una lista de reproducción de Spotify existente
- Parámetros :
playlistId
(cadena): ID de la lista de reproduccióntrackUris
(matriz): Matriz de URI o ID de pistas para agregarposition
(número, opcional): Posición para insertar pistas
- Devuelve : Estado de éxito e ID de instantánea
- Ejemplo :
addTracksToPlaylist({ playlistId: "3cEYpjA9oz9GiPac4AsH4n", trackUris: ["spotify:track:4iV5W9uYEdYUVa79Axb7Rh"] })
- añadir a la cola
- Descripción : Agrega una pista, álbum, artista o lista de reproducción a la cola de reproducción actual
- Parámetros :
uri
(cadena, opcional): URI de Spotify del elemento que se agregará a la cola (anula el tipo y la identificación)type
(cadena, opcional): tipo de elemento a poner en cola (pista, álbum, artista, lista de reproducción)id
(cadena, opcional): ID de Spotify del elemento que se pondrá en coladeviceId
(cadena, opcional): ID del dispositivo en el que se pondrá en cola
- Devoluciones : Estado de éxito
- Ejemplo :
addToQueue({ uri: "spotify:track:6rqhFgbbKwnb9MLmUQDhG6" })
- Alternativa :
addToQueue({ type: "track", id: "6rqhFgbbKwnb9MLmUQDhG6" })
Configuración
Prerrequisitos
- Node.js v16+
- Una cuenta de Spotify Premium
- Una aplicación de desarrollador de Spotify registrada
Instalación
Creación de una aplicación para desarrolladores de Spotify
- Vaya al panel de desarrolladores de Spotify
- Inicia sesión con tu cuenta de Spotify
- Haga clic en el botón "Crear una aplicación"
- Complete el nombre y la descripción de la aplicación.
- Acepte los Términos de Servicio y haga clic en "Crear".
- En el panel de tu nueva aplicación, verás tu ID de cliente
- Haga clic en "Mostrar secreto de cliente" para revelar su secreto de cliente.
- Haga clic en "Editar configuración" y agregue una URI de redireccionamiento (por ejemplo,
http://localhost:8888/callback
) - Guarda tus cambios
Configuración de la API de Spotify
Crea un archivo spotify-config.json
en la raíz del proyecto (puedes copiar y modificar el ejemplo proporcionado):
Luego edita el archivo con tus credenciales:
Proceso de autenticación
La API de Spotify utiliza OAuth 2.0 para la autenticación. Sigue estos pasos para autenticar tu aplicación:
- Ejecute el script de autenticación:
- El script generará una URL de autorización. Ábrala en su navegador web.
- Se le pedirá que inicie sesión en Spotify y autorice su aplicación.
- Después de la autorización, Spotify lo redireccionará a la URI de redireccionamiento especificada con un parámetro de código en la URL.
- El script de autenticación intercambiará automáticamente este código por tokens de acceso y actualización.
- Estos tokens se guardarán en su archivo
spotify-config.json
, que ahora se verá así:
- El servidor actualizará automáticamente el token de acceso cuando sea necesario, utilizando el token de actualización.
Integración con Claude Desktop y Cursor
Para utilizar su servidor MCP con Claude Desktop, agréguelo a su configuración de Claude:
Para el cursor, vaya a la pestaña MCP en Cursor Settings
(Comando + Mayús + J). Agregue un servidor con este comando:
You must be authenticated.
Tools
Un servidor de protocolo de contexto de modelo liviano que permite a los asistentes de IA como Cursor y Claude controlar la reproducción de Spotify y administrar listas de reproducción.