Skip to main content
Glama

Spotify MCP Server

by marcelmarais

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

  1. buscarSpotify
    • Descripción : Busca pistas, álbumes, artistas o listas de reproducción en Spotify
    • Parámetros :
      • query (cadena): el término de búsqueda
      • type (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)
  2. 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()
  3. 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)
  4. 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ón
      • limit (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")
  5. Obtener reproducido recientemente
    • Descripción : Recupera una lista de pistas reproducidas recientemente de Spotify.
    • Parámetros :
      • limit (número, opcional): un número que especifica el número máximo de pistas a devolver.
    • Devuelve : Si se encuentran pistas, devuelve una lista formateada de pistas reproducidas recientemente; de lo contrario, aparece un mensaje que indica: "No tienes ninguna pista reproducida recientemente en Spotify".
    • Ejemplo : getRecentlyPlayed({ limit: 10 })
  6. Obtener reproducido recientemente
    • Descripción : Recupera una lista de pistas reproducidas recientemente de Spotify.
    • Parámetros :
      • limit (número, opcional): un número que especifica el número máximo de pistas a devolver.
    • Devuelve : Si se encuentran pistas, devuelve una lista formateada de pistas reproducidas recientemente; de lo contrario, aparece un mensaje que indica: "No tienes ninguna pista reproducida recientemente en Spotify".
    • Ejemplo : getRecentlyPlayed({ limit: 10 })

Jugar/Crear operaciones

  1. 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 reproducir
      • deviceId (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" })
  2. 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()
  3. 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()
  4. 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()
  5. 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ón
      • description (cadena, opcional): Descripción de la lista de reproducción
      • public (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 })
  6. 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ón
      • trackUris (matriz): Matriz de URI o ID de pistas para agregar
      • position (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"] })
  7. 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 cola
      • deviceId (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

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

Creación de una aplicación para desarrolladores de Spotify

  1. Vaya al panel de desarrolladores de Spotify
  2. Inicia sesión con tu cuenta de Spotify
  3. Haga clic en el botón "Crear una aplicación"
  4. Complete el nombre y la descripción de la aplicación.
  5. Acepte los Términos de Servicio y haga clic en "Crear".
  6. En el panel de tu nueva aplicación, verás tu ID de cliente
  7. Haga clic en "Mostrar secreto de cliente" para revelar su secreto de cliente.
  8. Haga clic en "Editar configuración" y agregue una URI de redireccionamiento (por ejemplo, http://localhost:8888/callback )
  9. 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):

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

Luego edita el archivo con tus credenciales:

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

Proceso de autenticación

La API de Spotify utiliza OAuth 2.0 para la autenticación. Sigue estos pasos para autenticar tu aplicación:

  1. Ejecute el script de autenticación:
npm run auth
  1. El script generará una URL de autorización. Ábrala en su navegador web.
  2. Se le pedirá que inicie sesión en Spotify y autorice su aplicación.
  3. 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.
  4. El script de autenticación intercambiará automáticamente este código por tokens de acceso y actualización.
  5. Estos tokens se guardarán en su archivo spotify-config.json , que ahora se verá así:
{ "clientId": "your-client-id", "clientSecret": "your-client-secret", "redirectUri": "http://localhost:8888/callback", "accessToken": "BQAi9Pn...kKQ", "refreshToken": "AQDQcj...7w", "expiresAt": 1677889354671 }
  1. El servidor actualizará automáticamente el token de acceso cuando sea necesario, utilizando el token de actualización.

Integración con Claude Desktop, Cursor y VsCode mediante la extensión del modelo Cline

Para utilizar su servidor MCP con Claude Desktop, agréguelo a su configuración de Claude:

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

Para el cursor, vaya a la pestaña MCP en Cursor Settings (Comando + Mayús + J). Agregue un servidor con este comando:

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

Para configurar correctamente su MCP con Cline, asegúrese de tener el siguiente conjunto de configuración de archivo cline_mcp_settings.json :

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

Puede agregar herramientas adicionales a la matriz de aprobación automática para ejecutar las herramientas sin intervención.

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.

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.

  1. Herramientas
    1. Operaciones de lectura
    2. Jugar/Crear operaciones
  2. Configuración
    1. Prerrequisitos
    2. Instalación
    3. Creación de una aplicación para desarrolladores de Spotify
    4. Configuración de la API de Spotify
    5. Proceso de autenticación
  3. Integración con Claude Desktop, Cursor y VsCode mediante la extensión del modelo Cline

    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