YouTube Playlist Generator MCP Server
Un servidor del Protocolo de Contexto del Modelo (MCP) que permite a las aplicaciones de IA buscar videos musicales de YouTube y gestionar listas de reproducción utilizando la API oficial de YouTube Data v3.
Documentación
Servidor MCP de Generador de Listas de Reproducción de Spotify
Un servidor de Protocolo de Contexto de Modelo (MCP) que permite a las aplicaciones de IA buscar pistas musicales y gestionar listas de reproducción utilizando la API web oficial de Spotify.
Características
- Buscar Pistas Musicales: Encuentra pistas musicales en Spotify con parámetros de búsqueda personalizables
- Obtener Detalles de Pistas: Recupera información completa sobre pistas específicas
- Obtener Pistas de Listas de Reproducción: Lista pistas de listas de reproducción
- Gestión de Listas de Reproducción: Gestión completa de listas de reproducción, incluyendo creación, edición y administración (requiere configuración de OAuth)
Configuración
Requisitos Previos
- Node.js 18 o superior
- Una Cuenta de Desarrollador de Spotify
- Credenciales de la aplicación de Spotify (ID de Cliente y Secreto de Cliente)
Instalación
- Clona este repositorio:
git clone https://github.com/danisss9/spotify-playlist-generator-mcp-server
- Instala las dependencias:
npm install
-
Crea una aplicación de Spotify:
- Ve al Panel de Desarrollador de Spotify
- Crea una nueva aplicación
- Anota tu ID de Cliente y Secreto de Cliente
- Añade
http://localhost:8888/callbacka tus URI de redirección
-
Configura las variables de entorno:
# Create a .env file
echo "SPOTIFY_CLIENT_ID=your_client_id_here" > .env
echo "SPOTIFY_CLIENT_SECRET=your_client_secret_here" >> .env
- Compila el código TypeScript:
npm run build
Ejecutar el Servidor
Para desarrollo con reconstrucción automática:
npm run dev
Para producción:
npm start
Uso con Clientes MCP
Este servidor utiliza el transporte stdio, por lo que puede usarse con cualquier cliente MCP que soporte stdio.
Configuración de Claude Desktop
Añade a tu archivo de configuración de Claude Desktop:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"spotify-playlist-generator": {
"command": "node",
"args": ["/absolute/path/to/spotify-playlist-generator/build/index.js"],
"env": {
"SPOTIFY_CLIENT_ID": "your_client_id_here",
"SPOTIFY_CLIENT_SECRET": "your_client_secret_here"
}
}
}
}
Configuración de Visual Studio Code con GitHub Copilot
Para usar este servidor MCP con GitHub Copilot en Visual Studio Code, debes configurarlo en la configuración de VS Code:
-
Abre la Configuración de VS Code: Pulsa
Ctrl+,(Windows/Linux) oCmd+,(macOS) -
Busca MCP: Escribe "mcp" en la barra de búsqueda
-
Añade la Configuración del Servidor MCP: Añade lo siguiente al JSON de configuración de VS Code:
{
"github.copilot.chat.mcp.servers": {
"spotify-playlist-generator": {
"command": "node",
"args": ["/absolute/path/to/spotify-playlist-generator/build/index.js"],
"env": {
"SPOTIFY_CLIENT_ID": "your_client_id_here",
"SPOTIFY_CLIENT_SECRET": "your_client_secret_here"
}
}
}
}
Alternativa: Usar la Interfaz de Configuración
- Ve a Archivo > Preferencias > Configuración (o usa
Ctrl+,) - Busca "GitHub Copilot MCP"
- Haz clic en "Editar en settings.json" junto a "Github › Copilot › Chat: Mcp Servers"
- Añade la configuración del servidor como se muestra arriba
Configuración de Variables de Entorno
Por seguridad, también puedes establecer variables de entorno a nivel de sistema en lugar de en la configuración:
Windows (PowerShell):
[Environment]::SetEnvironmentVariable("SPOTIFY_CLIENT_ID", "your_client_id_here", "User")
[Environment]::SetEnvironmentVariable("SPOTIFY_CLIENT_SECRET", "your_client_secret_here", "User")
Windows (Símbolo del sistema):
setx SPOTIFY_CLIENT_ID "your_client_id_here"
setx SPOTIFY_CLIENT_SECRET "your_client_secret_here"
macOS/Linux:
export SPOTIFY_CLIENT_ID="your_client_id_here"
export SPOTIFY_CLIENT_SECRET="your_client_secret_here"
# Add to ~/.bashrc, ~/.zshrc, or ~/.profile to persist
echo 'export SPOTIFY_CLIENT_ID="your_client_id_here"' >> ~/.bashrc
echo 'export SPOTIFY_CLIENT_SECRET="your_client_secret_here"' >> ~/.bashrc
Luego elimina la sección env de la configuración de VS Code:
{
"github.copilot.chat.mcp.servers": {
"spotify-playlist-generator": {
"command": "node",
"args": ["/absolute/path/to/spotify-playlist-generator/build/index.js"]
}
}
}
Uso en VS Code
Una vez configurado, puedes usar el servidor MCP a través del Chat de GitHub Copilot:
- Abre el Chat de Copilot (
Ctrl+Alt+Io haz clic en el icono de chat) - Usa lenguaje natural para interactuar con Spotify:
- "Busca pistas de música jazz"
- "Crea una nueva lista de reproducción llamada 'Mis Favoritos'"
- "Añade estas pistas a mi lista de reproducción"
- "Muéstrame detalles sobre esta pista de Spotify"
Herramientas Disponibles
Herramientas que Requieren OAuth (Todas las funciones requieren autenticación)
authenticate_spotify
Autentícate con OAuth de Spotify para habilitar la búsqueda de música y las funciones de gestión de listas de reproducción.
Parámetros:
getAuthUrl(booleano, predeterminado: falso): Establece en verdadero para obtener la URL de autorizaciónauthCode(cadena, opcional): Código de autorización del flujo OAuth
get_auth_status
Comprueba el estado actual de autenticación de Spotify.
Parámetros: Ninguno
search_tracks
Busca pistas musicales en Spotify.
Parámetros:
query(cadena): Consulta de búsqueda de pistaslimit(número, 1-50, predeterminado: 20): Número máximo de resultadosmarket(cadena, opcional): Código de país ISO 3166-1 alfa-2 para filtrar resultados
get_track_details
Obtén información detallada sobre una pista específica de Spotify.
Parámetros:
trackId(cadena): ID de la pista de Spotifymarket(cadena, opcional): Código de país ISO 3166-1 alfa-2 para el mercado
create_playlist
Crea una nueva lista de reproducción de Spotify (requiere autenticación).
Parámetros:
name(cadena): Nombre de la lista de reproduccióndescription(cadena, opcional): Descripción de la lista de reproducciónpublic(booleano, predeterminado: falso): Si la lista de reproducción debe ser públicacollaborative(booleano, predeterminado: falso): Si la lista de reproducción debe ser colaborativa
edit_playlist
Edita información de una lista de reproducción existente (requiere autenticación).
Parámetros:
playlistId(cadena): ID de la lista de reproducción a editarname(cadena, opcional): Nuevo nombre para la lista de reproduccióndescription(cadena, opcional): Nueva descripción para la lista de reproducciónpublic(booleano, opcional): Nueva configuración públicacollaborative(booleano, opcional): Nueva configuración colaborativa
Nota: Al menos un campo (nombre, descripción, público o colaborativo) debe proporcionarse para actualizar.
add_to_playlist
Añade pistas a una lista de reproducción de Spotify (requiere autenticación).
Parámetros:
playlistId(cadena): ID de la lista de reproducción de destinotrackUris(matriz de cadenas): Matriz de URI de pistas de Spotify para añadirposition(número, opcional): Posición para insertar pistas (índice basado en 0)
list_playlists
Lista las listas de reproducción de Spotify del usuario (requiere autenticación).
Parámetros:
limit(número, 1-50, predeterminado: 20): Número máximo de listas de reproducciónoffset(número, mínimo: 0, predeterminado: 0): Desplazamiento de índice para paginación
get_playlist_tracks
Obtén pistas de una lista de reproducción de Spotify (requiere autenticación).
Parámetros:
playlistId(cadena): ID de la lista de reproducción de la que obtener pistaslimit(número, 1-100, predeterminado: 50): Número máximo de pistas a devolveroffset(número, mínimo: 0, predeterminado: 0): Desplazamiento de índice para paginación
remove_from_playlist
Elimina pistas de una lista de reproducción de Spotify (requiere autenticación).
Parámetros:
playlistId(cadena): ID de la lista de reproducción de la que eliminar pistastrackUris(matriz de cadenas): Matriz de URI de pistas de Spotify para eliminarsnapshotId(cadena, opcional): ID de instantánea de la lista de reproducción para control de versiones
Configuración de Autenticación OAuth
Para toda la funcionalidad, necesitas configurar OAuth 2.0 con Spotify:
1. Configuración del Panel de Desarrollador de Spotify
- Ve al Panel de Desarrollador de Spotify
- Inicia sesión con tu cuenta de Spotify
- Haz clic en "Crear una aplicación"
- Completa el nombre y la descripción de la aplicación
- Añade
http://localhost:8888/callbacka las URI de redirección - Copia tu ID de Cliente y Secreto de Cliente
2. Configuración de Entorno
Añade tus credenciales OAuth al archivo .env:
SPOTIFY_CLIENT_ID=your_client_id_here
SPOTIFY_CLIENT_SECRET=your_client_secret_here
3. Flujo de Autenticación
- Usa la herramienta
authenticate_spotifycongetAuthUrl: true - Abre la URL proporcionada en tu navegador
- Inicia sesión en tu cuenta de Spotify y concede permisos
- Copia el código de autorización de la URL de devolución de llamada
- Usa la herramienta
authenticate_spotifynuevamente con el parámetroauthCode
4. Uso de Funciones Autenticadas
Una vez autenticado, puedes:
- Buscar pistas musicales
- Obtener información detallada de pistas
- Crear nuevas listas de reproducción
- Editar información de listas de reproducción existentes (nombre, descripción, privacidad)
- Añadir pistas a tus listas de reproducción
- Listar tus listas de reproducción
- Obtener pistas de listas de reproducción
- Eliminar pistas de listas de reproducción
Limitaciones de la API
- Límites de Velocidad: La API de Spotify tiene límites de velocidad (varían según el endpoint)
- Tokens OAuth: Los tokens de acceso expiran después de 1 hora y necesitan renovación
- Restricciones de Mercado: Algunas pistas pueden no estar disponibles en ciertos mercados
- Permisos: El alcance de OAuth determina las operaciones disponibles
Desarrollo
Compilación
npm run build
Modo de Desarrollo
npm run dev
Estructura del Proyecto
src/
└── index.ts # Main server implementation
build/ # Compiled JavaScript output
Contribuciones
- Haz un fork del repositorio
- Crea una rama de características
- Realiza tus cambios
- Prueba exhaustivamente
- Envía una solicitud de extracción
Licencia
Licencia MIT - consulta el archivo LICENSE para más detalles
Solución de Problemas
Problemas Comunes
-
"Se requieren las variables de entorno SPOTIFY_CLIENT_ID y SPOTIFY_CLIENT_SECRET"
- Asegúrate de haber establecido ambas variables de entorno
- Verifica que las credenciales sean válidas desde tu aplicación de Spotify
-
Errores de "Autenticación requerida"
- Usa la herramienta
authenticate_spotifypara autenticarte primero - Comprueba si tu token de acceso ha expirado y vuelve a autenticarte
- Usa la herramienta
-
Errores de "Límite de velocidad excedido"
- Espera a que se restablezca el límite de velocidad
- Reduce la frecuencia de las llamadas a la API
-
Errores de compilación
- Asegúrate de tener Node.js 18+ instalado
- Ejecuta
npm installpara asegurarte de que todas las dependencias estén instaladas - Comprueba la compilación de TypeScript con
npm run build
-
Errores de "Pista no disponible"
- Algunas pistas pueden no estar disponibles en tu mercado
- Intenta especificar un parámetro de mercado diferente
Consideraciones de Seguridad
- Nunca comprometas claves de API en el control de versiones
- Usa variables de entorno para configuración sensible
- Valida todas las entradas del usuario
- Implementa manejo adecuado de errores y registro
- Ten en cuenta los términos de servicio de la API de Spotify
Este proyecto fue creado usando GitHub Copilot