Qu'est-ce que le MCP (Model Context Protocol) et comment cela fonctionne
Un guide facile à comprendre du Model Context Protocol (MCP), expliquant comment il aide les LLMs à accéder à des ressources externes pour surmonter les limites de connaissances et construire des applications d'IA plus puissantes.
Qu'est-ce que le MCP ?
MCP (Model Context Protocol) est un protocole ouvert et universel qui standardise la manière dont les applications fournissent des informations contextuelles aux modèles de langage de grande taille (LLMs).
En termes simples, tout comme le protocole HTTP permet à différents sites web et navigateurs d'échanger des informations selon les mêmes règles, le MCP est comme le protocole HTTP du monde de l'IA. MCP permet à différents modèles d'IA de se connecter à diverses sources de données et outils de manière standardisée. Cette standardisation facilite la création d'applications d'IA pour les développeurs sans avoir à créer des interfaces spécialisées pour chaque modèle ou source de données.
Pourquoi avons-nous besoin du MCP ?
Les modèles de langage de grande taille (LLMs) sont puissants, mais ils font face à plusieurs limitations clés :
-
Limites de connaissance et défis de mise à jour : Les LLMs ne connaissent que les informations incluses dans leurs données d'entraînement. Par exemple, les connaissances de GPT-4 s'arrêtent en avril 2023. L'entraînement des modèles de langage de grande taille nécessite d'énormes ressources de calcul et du temps, prenant souvent six mois ou plus pour compléter une nouvelle version. Cela crée un problème difficile : les connaissances du modèle sont toujours "obsolètes", tandis que les mises à jour sont extrêmement coûteuses et chronophages. Au moment où un nouveau modèle finit son entraînement, ses connaissances ont déjà commencé à prendre du retard.
-
Manque de connaissances spécialisées dans un domaine : Les LLMs sont entraînés en utilisant des données générales disponibles publiquement. Ils ne peuvent pas comprendre profondément des données spécialisées et des informations dans des scénarios commerciaux spécifiques. Par exemple, les processus internes d'une institution médicale, le catalogue de produits d'une entreprise, ou les connaissances propriétaires d'une organisation ne sont pas dans le champ d'entraînement du modèle.
-
Pas de norme unifiée pour accéder aux données externes : Actuellement, il existe de nombreuses méthodes pour fournir des informations supplémentaires aux LLMs, telles que RAG (Récupération Augmentée de Génération), bases de connaissances locales, recherches Internet, etc. Différentes équipes de développement proposent différentes solutions d'intégration, entraînant des coûts d'intégration élevés entre les systèmes. Les systèmes avec des données de domaine spécialisées (comme CRM, ERP, systèmes de dossiers médicaux, etc.) sont difficiles à intégrer de manière transparente avec les LLMs. Chaque intégration nécessite un développement personnalisé, manquant d'une méthode commune et standardisée.
C'est pourquoi nous avons besoin du MCP. MCP fournit un protocole standardisé qui permet aux LLMs d'accéder aux informations externes et aux outils de manière cohérente, résolvant tous les problèmes ci-dessus. Grâce au MCP, nous pouvons obtenir les avantages clés suivants :
-
Intégrations préconstruites riches : MCP offre de nombreuses intégrations serveur prêtes à l'emploi, y compris des systèmes de fichiers, des bases de données (PostgreSQL, SQLite), des outils de développement (Git, GitHub, GitLab), des outils réseau (Brave Search, Fetch), des outils de productivité (Slack, Google Maps), et plus encore. Cela signifie que vous n'avez pas besoin de construire ces intégrations à partir de zéro. Vous pouvez simplement utiliser ces connecteurs préconstruits pour permettre aux LLMs d'accéder aux données dans ces systèmes.
-
Changement flexible entre les fournisseurs de LLM : Aujourd'hui, vous pourriez utiliser GPT-4, demain vous pourriez vouloir essayer Claude ou Gemini, ou utiliser différents LLMs pour différents scénarios. Avec MCP, vous n'avez pas besoin de réécrire toute la logique d'intégration de votre application. Vous devez seulement changer le modèle sous-jacent, et toutes les intégrations de données et d'outils restent inchangées.
-
Construction de flux de travail complexes en IA : Imaginez un système d'analyse de documents juridiques qui doit interroger plusieurs bases de données, utiliser des outils spécifiques pour la comparaison de documents, et générer des rapports. MCP vous permet de construire de tels agents et flux de travail complexes sur les LLMs.
Comment fonctionne le MCP
Dans le MCP, il y a trois rôles principaux : le serveur MCP (fournissant des outils et un accès aux données), le client MCP (intégré dans le LLM et communiquant avec le serveur MCP), et les hôtes MCP (applications qui intègrent les LLMs et les clients, tels que Claude Desktop, Cursor, etc.). Voyons ces trois rôles en détail pour comprendre comment ils fonctionnent ensemble.
Serveur MCP
Le serveur MCP est un programme qui fournit des outils et des capacités d'accès aux données que les LLMs peuvent utiliser. Contrairement aux serveurs API distants traditionnels, le serveur MCP peut s'exécuter comme une application locale sur l'appareil de l'utilisateur ou être déployé sur un serveur distant.
Chaque serveur MCP fournit un ensemble d'outils spécifiques responsables de la récupération d'informations à partir de données locales ou de services distants. Lorsqu'un LLM détermine qu'il doit utiliser un certain outil lors du traitement d'une tâche, il utilisera les outils fournis par le serveur MCP pour obtenir les données nécessaires et les retourner au LLM.
Client MCP
Le client MCP est le pont reliant les LLMs et les serveurs MCP. Intégré dans le LLM, il est responsable de :
- Recevoir les demandes du LLM
- Transmettre les demandes au serveur MCP approprié
- Retourner les résultats du serveur MCP au LLM
Vous pouvez consulter Développer un Client MCP pour en savoir plus sur l'intégration du client MCP avec les LLMs.
Hôtes MCP
Des programmes tels que Claude Desktop, des IDEs (Cursor, etc.), ou des outils IA qui souhaitent accéder aux données via le MCP. Ces applications fournissent aux utilisateurs des interfaces pour interagir avec les LLMs, tout en intégrant le client MCP pour se connecter aux serveurs MCP et étendre les capacités des LLMs en utilisant les outils fournis par les serveurs MCP.
Flux de travail MCP
Les trois rôles ci-dessus forment finalement une application IA construite sur le MCP.
Un exemple de flux de travail de ce système est le suivant :
Comment construire un Serveur MCP
Le serveur MCP est le maillon le plus critique du système MCP. Il détermine quels outils le LLM peut utiliser pour accéder à quelles données, affectant directement les limites fonctionnelles et les capacités de l'application IA.
Pour commencer à construire votre propre serveur MCP, il est recommandé de lire d'abord le guide de démarrage rapide officiel du MCP, qui détaille le processus complet de la configuration de l'environnement à l'implémentation et à l'utilisation du serveur MCP. Nous expliquerons uniquement les détails de base de l'implémentation.
Définir les outils fournis par le Serveur MCP
La fonctionnalité de base d'un serveur MCP est de définir des outils à travers la méthode server.tool(). Ces outils sont des fonctions que le LLM peut appeler pour obtenir des données externes ou effectuer des opérations spécifiques. Voyons un exemple simplifié utilisant Node.js :
Dans cet exemple, nous définissons un outil appelé search-documents
qui accepte une chaîne de requête et un nombre maximum de résultats en tant que paramètres. L'implémentation de l'outil se connecterait à un système de base de connaissances et retournerait les résultats de la requête.
Le LLM décidera d'utiliser ou non cet outil en fonction de la définition de l'outil et de la question de l'utilisateur. Si nécessaire, le LLM appellera cet outil, obtiendra les résultats, et générera une réponse en combinant les résultats avec la question de l'utilisateur.
Bonnes pratiques pour définir des outils
Lors de la création de tels outils, vous pouvez suivre ces bonnes pratiques :
- Descriptions claires : Fournissez des descriptions détaillées et précises pour chaque outil, en indiquant clairement sa fonctionnalité, les scénarios applicables, et les limitations. Cela aide non seulement le LLM à choisir le bon outil mais facilite également la compréhension et la maintenance du code par les développeurs.
- Validation des paramètres : Utilisez Zod ou des bibliothèques similaires pour valider strictement les paramètres d'entrée, en garantissant les types corrects, des plages de valeurs raisonnables, et rejetant les entrées non conformes. Cela empêche les erreurs de se propager aux systèmes backend et améliore la stabilité globale.
- Gestion des erreurs : Implémentez des stratégies complètes de gestion des erreurs, attrapez les exceptions possibles, et retournez des messages d'erreur conviviaux. Cela améliore l'expérience utilisateur et permet au LLM de fournir des réponses significatives basées sur des conditions d'erreur, plutôt que simplement échouer.
- Contrôle d'accès aux données : Assurez-vous que les API des ressources backend ont des mécanismes d'authentification et d'autorisation robustes, et concevez soigneusement les périmètres de permissions pour limiter le serveur MCP à n'accéder et retourner que les données pour lesquelles l'utilisateur est autorisé. Cela empêche les fuites d'informations sensibles et assure la sécurité des données.
Comment assurer la sécurité des échanges de données entre le MCP (modèles IA) et les systèmes externes
Lors de l'implémentation de serveurs MCP qui connectent des modèles IA à des systèmes externes, il y a deux principaux défis en matière de sécurité dans la mise en œuvre du MCP :
- Authentification : Contrairement aux applications traditionnelles, dans l'environnement MCP, l'utilisateur ne peut pas se connecter avec les flux de connexion traditionnels (comme nom d'utilisateur/mot de passe, email/code de vérification, etc.) pour accéder au système externe.
- Contrôle d'accès pour les demandes du serveur MCP : Les utilisateurs accédant aux systèmes via des outils IA sont les mêmes individus qui pourraient utiliser directement votre système. Le serveur MCP agit en leur nom lorsqu'ils interagissent via des outils IA. Reconcevoir un mécanisme de contrôle d'accès complet uniquement pour accommoder le serveur MCP nécessiterait des efforts et des coûts considérables.
La solution clé à ces défis est la mise en œuvre des Jetons d'Accès Personnel (PATs). Les PATs offrent un moyen sécurisé pour les utilisateurs de donner l'accès sans partager leurs identifiants ou nécessiter une connexion interactive.
Voici comment fonctionne le flux de travail :
Cette approche permet à votre service existant de maintenir ses mécanismes d'authentification tout en permettant une intégration sécurisée du MCP.
Vous pouvez vous référer à l'article de blog : Empower your business: Connect AI tools to your existing service with access control avec un exemple de code source complet pour apprendre à utiliser les Jetons d'Accès Personnel (PATs) de Logto combinés avec le Contrôle d'Accès Basé sur des Rôles (RBAC) pour restreindre les ressources auxquelles le MCP peut accéder à partir des services backend.
Résumé
MCP (Model Context Protocol) apporte des changements révolutionnaires à la combinaison des LLMs et des entreprises spécifiques. Il résout les problèmes de limites de connaissances des modèles de langage de grande taille, de manque de connaissances spécialisées dans un domaine, et de normes non unifiées pour l'accès aux données externes.
Utiliser le MCP pour connecter vos propres services ouvrira de nouvelles possibilités pour votre entreprise. MCP est le pont reliant l'IA à la valeur commerciale. Vous pouvez créer des assistants IA qui comprennent vraiment les connaissances internes de votre entreprise, développer des outils intelligents qui accèdent aux données les plus récentes, et construire des applications professionnelles qui répondent aux besoins spécifiques de l'industrie.