mcp-spotify-cli
A CLI agent that controls Spotify through natural language commands, leveraging the Model Context Protocol to separate Spotify tools from the LLM client, and supporting multiple AI providers like Groq, Gemini, and OpenAI.
README
MCP Spotify CLI
Agente de línea de comandos (CLI) para controlar Spotify mediante lenguaje natural. Implementa la arquitectura Model Context Protocol (MCP) para separar el servidor de herramientas de Spotify del cliente LLM. Soporta múltiples proveedores de IA (Groq, Gemini, OpenAI).
Arquitectura
El proyecto consta de dos componentes principales:
mcp_spotify/server.py: Servidor MCP que expone la API de Spotify (Spotipy) como tools estandarizadas.mcp_spotify/agent.py: Cliente que interactúa con el usuario, procesa el lenguaje natural mediante adaptadores LLM y ejecuta las tools del servidor con un límite de iteraciones de seguridad para prevenir consumo excesivo de tokens.
Funcionalidades (Tools)
get_current_track: Obtiene información del track en reproducción.list_devices: Lista dispositivos activos.search_track/search_playlist: Búsqueda en el catálogo de Spotify.get_my_playlists: Retorna las playlists guardadas por el usuario autenticado.play,pause,next_track,previous_track: Control básico de reproducción.set_volume,set_shuffle,set_repeat: Control de estado y preferencias.
Requisitos
- Python 3.12+
- Gestor de paquetes
uv. - Cuenta de Spotify Premium (necesaria para los endpoints de control de reproducción).
- App registrada en Spotify Developer Dashboard para obtener Client ID y Client Secret.
- API Keys de los proveedores LLM a utilizar (Groq, Google GenAI, OpenAI).
Instalación
-
Clonar el repositorio.
-
Instalar dependencias utilizando
uv:uv sync(Dependencias principales: mcp, spotipy, google-genai, openai, python-dotenv).
-
Configurar el archivo
.enven la raíz del proyecto.
Configuración (.env)
Crear un archivo .env con las siguientes variables:
SPOTIPY_CLIENT_ID="tu_client_id"
SPOTIPY_CLIENT_SECRET="tu_client_secret"
SPOTIPY_REDIRECT_URI="[http://127.0.0.1:8080](http://127.0.0.1:8080)"
GROQ_API_KEY="tu_api_key_de_groq"
GEMINI_API_KEY="tu_api_key_de_google"
OPENAI_API_KEY="tu_api_key_de_openai"
Ejecución
Ejecutar el agente especificando el proveedor y, opcionalmente, el modelo.
Sintaxis:
uv run mcp-spotify <proveedor> [modelo]
Ejemplo:
Usar Groq (default: llama-3.3-70b-versatile)
uv run mcp-spotify groq
Usar Gemini (default: models/gemini-2.0-flash)
uv run mcp-spotify gemini
Usar Gemini con un modelo específico
uv run mcp-spotify gemini models/gemini-1.5-flash
Modelo de mayor capacidad de razonamiento
uv run mcp-spotify gemini models/gemini-2.5-pro
Usar un modelo específico de OpenAI
uv run mcp-spotify openai gpt-4o
Uso
Una vez iniciado, el prompt permite ingresar comandos en lenguaje natural:
"reproducir mi playlist 'nombre_de_tu_playlist' en modo shuffle"
"baja el volumen al 50% y pasá a la siguiente canción"
"¿qué está sonando?"
Créditos
🛠️ Nota de desarrollo y aprendizaje
Este proyecto es una iniciativa de aprendizaje personal con fines educativos. He desarrollado este agente utilizando el Model Context Protocol (MCP) y bibliotecas de Python, contando con la asistencia de Inteligencia Artificial para la estructura del código, la resolución de errores y la implementación de buenas prácticas de desarrollo.
Comparto este repositorio con la comunidad como una forma de documentar mi proceso de aprendizaje y con la esperanza de que pueda servir como punto de partida o referencia para alguien que esté explorando la integración de LLMs con APIs externas.
¡Cualquier feedback, sugerencia de mejora o pull request es más que bienvenido!
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.