Skip to main content
Glama

Spotify MCP Server

Servidor MCP de Spotify

Un servidor basado en Node.js que se integra con la API web de Spotify y el Protocolo de Contexto de Modelo (MCP) para proporcionar herramientas de búsqueda, control de reproducción y gestión de contenido de Spotify. Permite a los usuarios interactuar con su cuenta de Spotify mediante programación a través de una interfaz MCP estandarizada sobre el transporte stdio.


🧠 Descripción general del proyecto

Nombre: Servidor MCP de Spotify
Descripción: Una interfaz programable que conecta Spotify Web API con el estándar MCP, lo que permite la búsqueda, el control de reproducción y la gestión de listas de reproducción mediante herramientas basadas en JSON sobre stdio.
Características principales:

  • 🔍Busca pistas en Spotify
  • 🎵 Verificar el estado actual de la reproducción
  • ▶️ Reproducir pistas específicas por URI
  • 📋 Recuperar listas de reproducción de usuarios
  • ⏸ Pausar la reproducción en curso
  • 🔐 Autenticación OAuth con Spotify
  • 📉 Manejo de límites de velocidad para solicitudes de API de Spotify

⚙️ Requisitos previos


📦 Pasos de instalación

# 1. Clone the repository git clone <repository-url> cd spotify-mcp # 2. Install dependencies npm install # 3. Create a .env file and add the following:
SPOTIFY_CLIENT_ID=your_spotify_client_id SPOTIFY_CLIENT_SECRET=your_spotify_client_secret SPOTIFY_REDIRECT_URI=http://localhost:8888/callback

Nota: Reemplaza your_spotify_client_id y your_spotify_client_secret con las credenciales de tu aplicación Spotify Developer. La URI de redirección debe coincidir con la configurada en la configuración de tu aplicación Spotify.

# 4. Build npm run build # 5. Run the server npm start

Esto abrirá un navegador para la autenticación de Spotify e iniciará el servidor usando el transporte stdio.


🔧 Herramientas

1. search_tracks

  • Descripción: Busca pistas en Spotify según una cadena de consulta.
  • Esquema de entrada:
    • query (cadena, obligatoria): término de búsqueda (por ejemplo, nombre del artista, título de la canción).
  • Salida: matriz JSON de hasta 5 objetos de pista con name , artist , album , release_date , popularity , id y uri .
  • Ejemplo:
{ "name": "search_tracks", "arguments": {"query": "The Beatles"} }

2. get_playback_state

  • Descripción: Recupera el estado de reproducción actual de la cuenta de Spotify del usuario.
  • Esquema de entrada: Ninguno
  • Salida: objeto JSON con información de la pista actual, estado de reproducción y detalles del dispositivo, o "Sin reproducción activa" si no se está reproduciendo nada.
  • Ejemplo:
{ "name": "get_playback_state", "arguments": {} }

3. play_track

  • Descripción: Reproduce una pista específica utilizando su URI de Spotify.
  • Esquema de entrada:
    • uri (cadena, obligatoria): URI de la pista de Spotify (por ejemplo, spotify:track:xxx ).
  • Salida: Confirmación JSON con status y uri .
  • Ejemplo:
{ "name": "play_track", "arguments": {"uri": "spotify:track:7KXjTSCq5nL1LoYtL7XAwS"} }

4. get_user_playlists

  • Descripción: Obtiene las listas de reproducción del usuario de Spotify.
  • Esquema de entrada:
    • limit (número, opcional): número máximo de listas de reproducción a devolver (predeterminado: 20).
  • Salida: matriz JSON de objetos de lista de reproducción con name , id , track_count , uri y estado public .
  • Ejemplo:
{ "name": "get_user_playlists", "arguments": {"limit": 10} }

5. pause_playback

  • Descripción: Pausa la reproducción actual en el dispositivo Spotify activo del usuario.
  • Esquema de entrada: Ninguno
  • Salida: Confirmación JSON con estado "Reproducción en pausa".
  • Ejemplo:
{ "name": "pause_playback", "arguments": {} }

🌐 Casos de uso

  1. Bot de descubrimiento de música:
    • Utilice search_tracks y play_track para implementar chatbots de música basados en el estado de ánimo.
  2. Herramienta de gestión de listas de reproducción:
    • Utilice get_user_playlists y search_tracks para obtener una vista previa y organizar las listas de reproducción.
  3. Automatización del control de reproducción:
    • Automatice las acciones de reproducción utilizando get_playback_state , play_track y pause_playback .
  4. Panel de control de Spotify:
    • Cree un widget de escritorio usando get_playback_state , get_user_playlists , pause_playback y play_track .
  5. Aprendiendo la API de Spotify:
    • Experimente con todas las herramientas para aprender cómo funciona la API web de Spotify.

🔐 Detalles de autenticación

  • En la primera ejecución, el servidor abre un navegador para la autenticación OAuth de Spotify.
  • Recibe código a través de http://localhost:8888/callback .
  • Intercambia el código por tokens de acceso y actualización.
  • Actualiza automáticamente los tokens dentro de los 5 minutos posteriores a su vencimiento.

⏱ Limitación de velocidad

  • Maneja los límites de velocidad de la API de Spotify con estrategias de reintento:
    • Tiempo de recuperación de 10 segundos después de cada solicitud.
    • 1 minuto de espera si se produce el error 429 Demasiadas solicitudes.

📊 Dependencias

npm install dotenv spotify-web-api-node @modelcontextprotocol/sdk open
  • dotenv : carga variables de entorno desde .env .
  • spotify-web-api-node : cliente de API de Spotify.
  • @modelcontextprotocol/sdk : Implementa el servidor MCP.
  • http , url : elementos integrados de Node.js para el servidor de redireccionamiento OAuth.
  • open : abre el navegador predeterminado para la autenticación.

📁 Información de desarrollo

  • Punto de entrada: index.js
  • Lenguaje: JavaScript (Node.js con módulos ES)
  • Ejecutar comando: node index.js
  • Depuración: verifique los registros de la consola para detectar errores de MCP o autenticación.

⚠️ Limitaciones

  • Se requiere Spotify Premium para controlar la reproducción.
  • Solo admite transporte stdio (no HTTP, WebSocket, etc.).
  • search_tracks devuelve un máximo de 5 resultados.
  • Asume un único dispositivo activo para la reproducción.

🚀 Contribuyendo

No dudes en abrir problemas o enviar solicitudes de extracción a:

  • Añadir nuevas herramientas
  • Mejorar la funcionalidad existente
  • Mejorar la documentación

✍️ Licencia

Licencia MIT: libre para usar, modificar y distribuir para uso personal o comercial.


❤️ Pie de página

Creado con ❤️ por Rakshitha C Devadiga el 17 de marzo de 2025

-
security - not tested
F
license - not found
-
quality - not tested

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.

Se integra con la API web de Spotify a través del Protocolo de contexto de modelo, lo que permite a los usuarios buscar pistas, controlar la reproducción y administrar listas de reproducción mediante programación.

  1. 🧠 Descripción general del proyecto
    1. ⚙️ Requisitos previos
      1. 📦 Pasos de instalación
        1. 🔧 Herramientas
          1. search_tracks
          2. get_playback_state
          3. play_track
          4. get_user_playlists
          5. pause_playback
        2. 🌐 Casos de uso
          1. 🔐 Detalles de autenticación
            1. ⏱ Limitación de velocidad
              1. 📊 Dependencias
                1. 📁 Información de desarrollo
                  1. ⚠️ Limitaciones
                    1. 🚀 Contribuyendo
                      1. ✍️ Licencia
                        1. ❤️ Pie de página

                          Related MCP Servers

                          • A
                            security
                            A
                            license
                            A
                            quality
                            Enables interaction with Spotify's music catalog via the Spotify Web API, supporting searches, artist information retrieval, playlist management, and automatic token handling.
                            Last updated -
                            26
                            547
                            2
                            TypeScript
                            MIT License
                          • A
                            security
                            F
                            license
                            A
                            quality
                            A lightweight Model Context Protocol server that enables AI assistants like Cursor & Claude to control Spotify playback and manage playlists.
                            Last updated -
                            12
                            77
                            TypeScript
                          • -
                            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
                            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

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

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