Introduction au Model Context Protocol (MCP)
Introduction
Depuis la démocratisation des IAs génératives avec l’apparition de ChatGPT en novembre 2022, nous avons droit à pléthore de promesses sur comment elles pourraient accélérer telle ou telle tâche et booster la productivité des professionnels dans tous les domaines. Néanmoins, pour être utile dans la “vraie vie”, les IAs ont besoins de comprende les besoins spécifiques de chaque utilisateur. Que ce soit pour la gestion d’un agenda, la synthèse de données ou le développement logiciel, les IAs ont besoin d’accéder à des données ou des systèmes logiciels externes.
Le model Context Protocol, crée par la startup américaine Anthropic, a ainsi été conçu pour améliorer la manière dont les modèles de langage interagissent avec leur environnement.
Architecture et fonctionnement
Pour garantir des interactions à la fois sûres et flexibles, l’architecture du Model Context Protocol (MCP) repose sur une séparation stricte des responsabilités. Elle s’organise selon un modèle client-hôte-serveur où chaque composant a une mission unique, ce qui permet à un même hôte de piloter plusieurs clients en parallèle tout en maintenant des barrières de sécurité claires. Sur le plan technique, le protocole s’appuie sur JSON-RPC pour créer des sessions de communication stateful. Celles-ci conservent l’historique de l’interaction, une capacité essentielle pour coordonner efficacement le partage de contexte et les sollicitations du modèle d’IA.
Cette architecture s'articule autour de trois rôles bien définis :
- L’Hôte (Host) Ce composant est le processus central qui orchestre l’ensemble des interactions MCP. C’est au sein de l’Hôte que le modèle d’IA est exécuté. Il a la responsabilité de lancer, de superviser et de gérer les permissions de chaque instance client. L’Hôte agit comme un intégrateur, consolidant les informations de contexte provenant de toutes les sessions actives et appliquant une politique de sécurité globale à l’ensemble du système.
- Le Client MCP Un Client MCP est une instance de communication dédiée, initiée par l’Hôte pour se connecter à un unique serveur. Il est responsable de la gestion d’une session isolée et continue. Ses fonctions techniques incluent la négociation des capacités du serveur (les outils et ressources qu’il propose) et la transmission des messages entre l’Hôte et le Serveur. Il joue un rôle de passerelle de communication sécurisée et spécifique à une source de données.
- Le Serveur MCP Ce composant est un point d’extrémité modulaire qui rend les capacités d’un outil externe (une API, une base de données, etc.) disponibles pour le protocole. Son rôle est d’exposer ces fonctionnalités sous forme de primitives standardisées (ressources, outils). Chaque serveur fonctionne de manière indépendante, répondant aux requêtes du client auquel il est connecté, tout en se conformant aux contraintes de sécurité dictées par l’Hôte.
Lorsqu’un utilisateur interagit avec l’IA, celle-ci peut, via le MCP, découvrir et utiliser les “serveurs” disponibles pour accéder à des informations à jour ou pour effectuer des actions dans des systèmes tiers.
Les concepts clés du MCP
La connexion d’une intelligence artificielle à des applications nécessite des règles claires. Comment garantir que l’IA se limite aux actions autorisées ? Le Model Context Protocol (MCP) apporte une solution en classifiant chaque interaction possible en trois catégories distinctes mais efficaces.
Maîtriser ces trois concepts permet de comprendre comment développer des agents IA qui sont à la fois performants et dignes de confiance.
1. Les Ressources
Les Ressources représentent l’ensemble des informations que l’IA est autorisée à consulter pour comprendre son environnement. C’est son contexte informationnel, sa bibliothèque de connaissances en lecture seule.
Le principe fondamental est que l’accès à une Ressource ne modifie jamais la donnée. L’IA peut consulter un rapport, mais cette consultation ne lui permet pas de le modifier.
Exemples : Les données d’un profil utilisateur, le contenu d’un fichier de configuration, un article de blog, ou l’état actuel d’un produit en stock.
2. Les Outils
Si les Ressources servent à “voir”, les Outils permettent de ”faire”. Un Outil représente une action concrète que l’IA peut exécuter pour influencer un système externe.
Utiliser un outil signifie provoquer un changement : transmettre une information, modifier un état ou créer quelque chose de nouveau. C’est à ce moment que l’IA devient véritablement un agent actif.
Exemples : Envoyer une notification, modifier le statut d’une commande de “en cours” à “expédiée”, ou ajouter un contact dans un CRM.
3. Les invites (Prompts)
Les invites (ou prompts) sont des scénarios prédéfinis qui simplifient les tâches complexes. Elles fonctionnent comme des raccourcis intelligents, guidant l’IA ou l’utilisateur à travers une séquence d’étapes structurées.
Cette approche permet d’assembler plusieurs actions et consultations de données pour atteindre un objectif global sans devoir tout recréer à chaque utilisation.
Exemples : Un processus “Intégration d’un nouvel employé” qui dirige l’IA pour créer un compte email (Outil), ajouter la personne aux canaux de communication appropriés (Outil), et lui envoyer un document de bienvenue (Ressource + Outil).
En distinguant nettement ces trois types d’interactions, le MCP offre un contrôle précis sur ce que vos agents IA peuvent connaître et réaliser, transformant une technologie sophistiquée en un outil de développement fiable et sécurisé.
Exemple concret avec un assistant de codage
Imaginons un développeur qui tape la requête suivante dans son éditeur de code (comme VS Code) :
“Refactorise la fonction getUser dans le fichier api.js pour qu’elle soit asynchrone, puis lance les tests.”
Sans le MCP, l’IA aurait besoin d’un accès potentiellement dangereux et illimité au système de fichiers et au terminal. Voyons comment le MCP structure cette opération de manière sécurisée et efficace.
1. La Mise en Place des Composants
- L’Hôte : C’est l’éditeur de code (VS Code). Il exécute le modèle d’IA et gère l’interface avec le développeur.
- Le Client MCP : Intégré à l’extension de l’assistant IA dans l’éditeur, il sert de communicant pour l’Hôte.
- Le Serveur MCP : Un programme léger qui s’exécute en arrière-plan sur l’ordinateur du développeur. Autorisé à accéder au dossier du projet en cours, il expose deux capacités principales :
- Une Ressource :
lireFichier(chemin)qui permet de lire le contenu d’un fichier. - Deux Outils :
ecrireFichier(chemin, contenu)pour modifier un fichier etlancerTests()pour exécuter une commande dans le terminal.
- Une Ressource :
2. Le Déroulement de la Requête, étape par étape
- Analyse de l’Intention : L’Hôte (l’éditeur) envoie la requête du développeur à l’IA. Le modèle comprend qu’il doit d’abord lire un fichier, puis le modifier, et enfin lancer une commande.
- Lecture du Contexte (utilisation d’une ressource) :
- L’IA, via le Client MCP, demande au Serveur MCP d’utiliser la Ressource
lireFichier('api.js'). - Le Serveur lit le fichier et renvoie son contenu. L’IA dispose maintenant du contexte nécessaire.
- L’IA, via le Client MCP, demande au Serveur MCP d’utiliser la Ressource
- Génération du Code : L’IA analyse la fonction
getUseret la réécrit en version asynchrone. Elle a désormais le nouveau code prêt à l’emploi. - Modification du Fichier (Utilisation d’un Outil) :
- L’IA demande au Client MCP d’utiliser l’Outil
ecrireFichier('api.js', nouveauCode). - Le Serveur MCP vérifie les permissions et écrit le nouveau contenu dans
api.js. L’IA n’a jamais eu d’accès direct au système de fichiers, seulement à un outil autorisé.
- L’IA demande au Client MCP d’utiliser l’Outil
- Lancement des Tests (Utilisation d’un autre Outil) :
- L’IA demande au Client d’utiliser l’Outil
lancerTests(). - Le Serveur exécute la commande de test (ex:
npm test) et capture le résultat.
- L’IA demande au Client d’utiliser l’Outil
- Réponse Finale : Le Serveur transmet le résultat des tests à l’IA, qui peut alors informer le développeur : “J’ai refactorisé la fonction
getUseret tous les tests passent avec succès.”
Grâce à cette architecture, l'interaction est parfaitement maîtrisée. L'IA n'obtient pas un accès général et risqué, mais utilise des capacités spécifiques et bien définies ( lire, écrire, tester). C'est toute la puissance du MCP : permettre des actions complexes tout en gardant le contrôle.
Conclusion
En résumé, le Model Context Protocol établit un cadre standardisé pour l’interaction entre une intelligence artificielle et des outils externes. En séparant nettement la consultation de données de l’exécution d’actions, il crée un environnement à la fois sécurisé et prévisible, indispensable pour des opérations complexes. Cette architecture permet de transformer les modèles de langage : au lieu d’être de simples interfaces conversationnelles, ils deviennent des composants fonctionnels intégrés au cœur même des applications.