Skip to main content
Glama
rakshitha2207

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


Related MCP server: MCP Spotify Player

⚙️ 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

A
license - permissive license
-
quality - not tested
D
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

View all related MCP servers

Related MCP Connectors

  • Spotify MCP — Web API via client_credentials OAuth

  • Search, document and execute authenticated API calls across 500+ apps via one MCP server

  • A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…

View all MCP Connectors

Latest Blog Posts

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