Protocole de Contexte de Modèle

L’avènement des grands modèles de langage (LLM) a indéniablement révolutionné le paysage de l’intelligence artificielle. Cependant, un défi persistant demeure : l’intégration efficace de ces modèles avec des données propriétaires. Bien que les LLM soient compétents dans le traitement de vastes quantités d’informations provenant d’Internet, leur véritable potentiel réside dans leur capacité à servir d’interfaces en langage naturel pour nos applications et nos données, nous permettant d’exploiter leurs capacités prédictives et génératives dans un environnement contrôlé.

Pour garantir la fiabilité et la pertinence des résultats des LLM, diverses stratégies ont émergé, chacune étant conçue pour combler le fossé entre ces modèles et des ensembles de données spécifiques. Ces stratégies vont de la création d’intégrations personnalisées et de l’utilisation de techniques de génération augmentée par la récupération (RAG) - en tirant parti des bases de données graphiques pour découvrir des relations complexes au sein des données - à l’utilisation des LLM pour extraire et présenter des données obtenues via des appels OpenAPI déclenchés par des invites utilisateur. De plus, le modèle de plug-in popularisé par ChatGPT d’OpenAI offre une autre voie pour l’intégration des données. Parmi ces diverses approches, le Protocole de Contexte de Modèle (MCP) se distingue comme une solution prometteuse pour standardiser la connexion entre les LLM et les sources de données externes.

Dévoilement du Protocole de Contexte de Modèle

Le Protocole de Contexte de Modèle, dévoilé par Anthropic fin 2024, représente une étape importante vers la rationalisation de l’interaction entre les LLM et les données spécifiques à l’utilisateur. Ce protocole souligne le rôle essentiel du contexte dans les applications d’IA, reconnaissant que la capacité de l’IA à fournir des résultats cohérents et significatifs dépend de la disponibilité d’informations contextuelles pertinentes. S’appuyer uniquement sur des invites de discussion pour obtenir des réponses sensées est, au mieux, un exercice d’optimisme et, au pire, une recette pour des résultats inexacts ou trompeurs. Pour construire des agents robustes et semi-autonomes capables d’orchestrer des flux de travail autour de nos données, un mécanisme fiable pour fournir ces données à ces agents est essentiel.

En tant qu’initiative open source, MCP fournit des implémentations SDK pour un large éventail de langages de programmation, accompagnées d’une documentation complète dans son référentiel GitHub. Cette documentation permet aux développeurs d’implémenter ou d’utiliser efficacement les serveurs MCP. La description du projet du MCP comme un ‘port USB-C pour les applications d’IA’ capture parfaitement son essence, soulignant sa capacité à standardiser les connexions à diverses sources de données. Construit sur une base standardisée, MCP s’intègre facilement aux projets existants, s’interfaçant de manière transparente avec divers LLM et fournisseurs d’inférence.

L’architecture de MCP suit un modèle client/serveur bien établi, où un courtier assume la responsabilité de traduire les requêtes MCP en requêtes locales ou distantes. Cette conception reflète la fonctionnalité des langages de définition d’interface comme CORBA, transformant MCP en une couche d’interopérabilité polyvalente qui facilite la commutation transparente entre les sources d’informations et les applications LLM. Tirant parti d’une connexion JSON RPC, MCP permet un contrôle précis au niveau de l’utilisateur individuel grâce à des outils comme Azure API Management.

MCP favorise le développement d’interfaces génériques pour le code piloté par l’IA, comme en témoigne son adoption croissante sur les plateformes de développement d’IA de Microsoft. De son intégration dans l’outil d’orchestration de modèles Semantic Kernel à son déploiement en tant que serveurs MCP compatibles avec Azure OpenAI et Azure AI Foundry, MCP gagne rapidement du terrain. Microsoft améliore également Azure API Management avec des fonctionnalités permettant de contrôler l’accès aux données en fonction des informations d’identification de l’utilisateur, renforçant ainsi le rôle de MCP dans les déploiements d’IA sécurisés et régis.

Serveur Azure MCP: Une Première Implémentation

Le serveur Azure MCP open source, récemment publié en préversion publique, illustre une première implémentation de MCP sur la plateforme de Microsoft. Ce serveur sert de courtier commun pour l’accès de l’IA aux services clés d’Azure, adhérant aux principes open source adoptés par de nombreux projets Azure récents. Son code est facilement accessible sur GitHub. Le serveur Azure MCP fournit un accès à une partie importante de la plateforme Azure, y compris les bases de données, les solutions de stockage et les services comme Azure CLI.

L’inclusion de la prise en charge d’Azure CLI (et de Developer CLI) est particulièrement remarquable, car elle permet aux agents pilotés par MCP d’interagir directement avec Azure, traitant les appels MCP comme des opérateurs. Cette capacité ouvre la voie à la création d’agents qui offrent une interface en langage naturel en libre-service à Azure. Par exemple, un agent pourrait prendre une description d’une infrastructure et générer automatiquement les modèles ARM nécessaires à son déploiement. En étendant davantage ce concept, on pourrait imaginer un agent multimodal qui analyse un croquis de tableau blanc, dérive une description des ressources nécessaires, puis déploie l’infrastructure, permettant un développement de code immédiat. Les services d’administration système supplémentaires accessibles via le serveur Azure MCP comprennent la liste des groupes de ressources actuels et l’utilisation de KQL pour interroger les journaux de surveillance Azure.

Intégration du Serveur Azure MCP avec GitHub Copilot Chat

Parce qu’il adhère à la norme MCP, le serveur Azure MCP s’intègre de manière transparente à tout outil d’IA prenant en charge MCP, tel que le mode agent GitHub Copilot. En ajoutant simplement le serveur à votre locataire, vous pouvez commencer à poser des questions via Copilot, directement ou via l’intégration de Visual Studio Code. Cette dernière option constitue un moyen efficace d’apprendre à tirer parti de MCP et à construire des invites pour vos propres applications d’IA basées sur MCP.

Actuellement, Microsoft n’a pas encore publié d’outil MCP dédié à ses langages de programmation, ce qui nécessite l’utilisation de SDK officiels pour développer du code personnalisé. Avec la prise en charge de TypeScript, C# et Python, les développeurs ont accès aux outils nécessaires pour créer leurs propres agents Azure MCP. L’expérimentation peut être menée dans Visual Studio Code, en utilisant les informations d’identification Azure existantes.

Le serveur fonctionne sur votre PC de développement et nécessite Node.js. L’installation se fait directement à partir du référentiel GitHub du projet dans VS Code. Une fois installé, assurez-vous que les extensions GitHub Copilot et GitHub Copilot Chat sont configurées pour utiliser le mode agent expérimental (accessible via l’outil de paramètres VS Code). Ensuite, ouvrez le volet de discussion GitHub Copilot et passez en mode agent. Vérifiez que le serveur Azure MCP est installé dans la liste déroulante des outils. Vous pouvez maintenant soumettre des requêtes, telles que ‘Répertorier mes abonnements Azure.’

L’outil qui en résulte s’avère précieux pour quiconque travaille avec Azure et s’étend au-delà de l’intégration de Copilot. Le serveur Azure MCP peut être installé partout où Node.js est pris en charge, ce qui permet son intégration dans des agents personnalisés.

Rôle de MCP dans Azure AI Foundry

Microsoft élargit rapidement son portefeuille d’outils MCP, exposant les fonctionnalités existantes via MCP ou permettant leur consommation dans des applications agentiques. Ce déploiement rapide comprend des outils pour le développement d’agents sans code de Copilot Studio, annoncés lors de la rédaction de cet article.

Azure AI Foundry, la principale plateforme de développement de Microsoft pour le développement d’applications d’IA à grande échelle, développe également activement un serveur MCP pour compléter le service d’agent d’IA d’Azure. Cette intégration vise à connecter les agents s’exécutant dans Azure AI Foundry avec les clients fonctionnant dans le cadre d’autres applications d’IA.

Ce service vous permet de réutiliser rapidement le code et les services d’IA existants et de les lier à de nouvelles applications. Des services tels que Fabric exposent leurs fonctionnalités d’agent en tant que points de terminaison AI Agent Service, permettant aux applications d’IA de se connecter de manière transparente aux données de base du secteur d’activité, fournissant une base essentielle pour atténuer les risques d’hallucinations et d’erreurs.

Une fois installé, le serveur fournit un ensemble d’actions MCP pour se connecter aux agents et leur envoyer des requêtes. Il peut également répertorier les agents disponibles ou utiliser un agent par défaut pour des tâches spécifiques. La prise en charge des fils de conversation est incluse, offrant aux agents une mémoire sémantique de base pour les conversations contextuelles. Vous aurez besoin des identifiants d’agent du service d’agent d’IA d’Azure pour les invoquer à l’aide de MCP.

Le serveur est implémenté en Python et peut être installé à l’aide d’Azure CLI via pip. Alternativement, une version TypeScript est disponible pour ceux qui la préfèrent. Semblable au serveur Azure MCP, ce serveur fonctionne en dehors de l’environnement AI Foundry, ce qui lui permet d’être installé sur un PC de développement ou dans le cadre d’une application hébergée dans le cloud au sein de son propre conteneur ou VM, avec la prise en charge de Windows, macOS et Linux.

Exploitation des Serveurs MCP à partir des Applications Semantic Kernel AI

En tant que norme ouverte, MCP permet la compatibilité du serveur avec n’importe quel client. Le référentiel GitHub fournit des instructions sur la façon d’établir une connexion à l’aide de Claude Desktop d’Anthropic, mais la véritable valeur réside dans la création de flux de travail d’agent personnalisés dans Semantic Kernel.

Microsoft fournit un exemple de code démontrant comment intégrer la prise en charge de MCP dans une orchestration Semantic Kernel, en le traitant comme un plug-in de noyau qui s’intègre aux appels de fonction familiers. Ces intégrations peuvent être encapsulées en tant qu’agents et accessibles selon les besoins. Bien que l’intégration de MCP dans Semantic Kernel soit encore en cours de développement, elle s’intègre de manière transparente à son ensemble de fonctionnalités existant, nécessitant un minimum de code supplémentaire pour exposer les outils MCP d’un serveur aux applications d’IA.

Les outils comme MCP sont des composants essentiels d’une pile d’IA moderne, fournissant une approche standardisée pour la création d’interfaces détectables pour les applications locales et distantes. Une fois définis, les outils MCP sont facilement invoqués, un serveur fournissant une liste des outils disponibles et MCP fournissant aux LLM un moyen standardisé d’appeler ces outils et d’utiliser leurs sorties. Cette approche contribue de manière significative à fournir un outil de base universel pour les applications d’IA, fonctionnant avec des API standard, des requêtes de base de données et des agents d’IA.

Le MCP offre un moyen standardisé de connecter les LLM à diverses sources de données, permettant aux LLM d’accéder à des informations spécifiques à l’utilisateur et de les exploiter. Cela permet aux développeurs de créer des applications d’IA plus robustes et fiables, capables de fournir des résultats pertinents et précis. Le protocole MCP est une technologie prometteuse qui peut transformer la façon dont nous interagissons avec l’IA et créer des applications d’IA plus intelligentes et plus utiles.