Dans cet article, je vous présente étape par étape comment j’ai pensé et construit ce use case MCP / Spotify, avec Claude Desktop et les différents outils connectés.
Bienvenue dans ce troisième épisode de notre série autour des MCP.
Pour rappel, le Model Context Protocol (MCP) est un protocole standardisé conçu pour permettre aux modèles de langage (LLM - Large Language Models) d'interagir de manière structurée avec des outils et des systèmes externes.
Dans le contexte de ce projet, le Spotify Model Context Protocol permet à l’assistant Claude Desktop d'interagir directement avec l’API Spotify. Cela permet de commander et d'interagir directement avec l’application et suivant les besoins de pouvoir créer des playlists, les remplir avec des titres, d’utiliser la puissance des LLMs pour de la recommandation basée sur ses souhaits ou sur son historique, etc Tout est possible suivant les besoins de l'utilisateur en codant soi-même des MCP. Dans le cas précis de cet article, Claude Desktop agit comme client, mais on aurait pu imaginer utiliser Cursor AI ou un autre client.
Claude Desktop a à sa disposition une série d’outils qu’il peut utiliser dans l’ordre qu’il souhaite suivant ce que l’utilisateur écrit dans le prompt. En prenant lui-même des décisions, le LLM se comporte réellement comme un agent.
Dans cet article, je vous présente étape par étape comment j’ai pensé et construit ce use-case, avec Claude Desktop et les différents outils connectés.
Dans cet article, je vous présente étape par étape comment j’ai pensé et construit ce use case, avec Claude Desktop et les différents outils connectés.
Grâce aux serveurs MCP, Claude peut communiquer avec Spotify, et décider des actions à suivre :
L'architecture du projet repose - en plus de Claude Desktop et Spotify - sur trois composants principaux :
L'interaction entre ces composants suit un modèle en couches bien défini, où chaque requête traverse la chaîne suivante : Claude → Serveur MCP → Client Spotify API → API Web Spotify
Le serveur MCP agit comme point d'entrée principal et expose cinq outils fondamentaux :
Le client API encapsule toute la logique d'interaction avec Spotify via la bibliothèque spotipy. Il gère :
Le processus d'authentification suit le protocole OAuth 2.0 :
Dans le cadre de cet article, voici la liste des différents outils qui ont été implémentés afin de contrôler et/ou d'interagir avec Spotify. Le LLM a maintenant accès à une liste d’outils qu’il faut voir comme une liste d’actions/requêtes qu’il pourra choisir dans l’ordre qu’il voudra afin de répondre au prompt et à ce que vous lui demanderez.
Ces outils sont accessibles via une interface en ligne ou une API, permettant une interaction fluide avec Spotify, que ce soit pour rechercher des titres, créer des playlists dynamiques en fonction des préférences de l’utilisateur ou encore générer des recommandations musicales basées sur des modèles avancés de machine learning.
Dans la classe Playback, le LLM pourra choisir différentes actions comme start, get, stop, etc. pour commander l’application suivant le prompt. spotify_uri étant l’id d’un album ou d’un titre.
Permet le contrôle granulaire de la lecture avec :
Cet outil permet de mettre des titres dans la file d’attente de l’application.
Offre des capacités de :
Cet outil va permettre de rechercher des titres, albums, artistes ou playlists via le prompt.
Implémente une recherche multi-critères pour :
Si nous voulons utiliser la puissance des LLM pour de la recommandation via notre historique d’écoute, il faut pouvoir récupérer l’historique des écoutes sur une certaine période voulue. Par exemple, nous cherchons à récupérer le top10 de nos écoutes sur les 6 derniers mois. Par la suite, le LLM pourra grâce à cela recommander différents artistes ou titres.
Dans le gestionnaire d'outils (handle_call_tool), TopItems est traité comme suit :
Cet outil permet simplement de créer une playlist et de la remplir avec nos souhaits. L’outil va tout d’abord vérifier que le nom de la playlist n’existe pas déjà et si non, il va la créer et la peupler avec différents titres, par exemple à partir de recommandations basées sur notre historique.
Le système implémente une gestion robuste des erreurs avec :
Optimisations notables :
L'architecture modulaire permet :
Le Spotify MCP représente une solution technique élégante pour l'intégration entre les assistants IA et Spotify. Son architecture modulaire, sa gestion robuste des erreurs et ses fonctionnalités complètes en font un outil puissant pour le contrôle programmatique de Spotify. Bien sûr, on peut imaginer des MCP server connectés à d’autres services comme Calendar, Google Maps, WhatsApp et bien d’autres applications.