Remarque
L’accès à cette page requiert une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page requiert une autorisation. Vous pouvez essayer de modifier des répertoires.
Le protocole MCP (Model Context Protocol) est un protocole ouvert conçu pour normaliser les intégrations entre les applications IA et les outils externes et les sources de données. En utilisant MCP, les développeurs peuvent améliorer les fonctionnalités des modèles IA, ce qui leur permet de produire des réponses plus précises, pertinentes et contextuelles.
Par exemple, à l’aide de MCP, vous pouvez connecter votre LLM à des ressources telles que :
- Bases de données de documents ou services de stockage.
- API web qui exposent des données métier ou une logique.
- Outils qui gèrent les fichiers ou effectuent des tâches locales sur l’appareil d’un utilisateur.
De nombreux produits Microsoft prennent déjà en charge MCP, notamment :
Vous pouvez utiliser le Kit de développement logiciel (SDK) C# MCP pour créer rapidement vos propres intégrations MCP et basculer entre différents modèles IA sans modifications significatives du code.
Architecture client-serveur de MCP
MCP utilise une architecture client-serveur qui permet à une application basée sur l’IA (l’hôte) de se connecter à plusieurs serveurs MCP via des clients MCP :
- Hôtes MCP : outils IA, éditeurs de code ou autres logiciels qui améliorent leurs modèles IA à l’aide de ressources contextuelles via MCP. Par exemple, GitHub Copilot dans Visual Studio Code peut agir en tant qu’hôte MCP et utiliser des clients et des serveurs MCP pour développer ses fonctionnalités.
- Clients MCP : clients utilisés par l’application hôte pour se connecter aux serveurs MCP pour récupérer des données contextuelles.
- Serveurs MCP : services qui exposent des fonctionnalités aux clients via MCP. Par exemple, un serveur MCP peut fournir une abstraction sur une API REST ou une source de données locale pour fournir des données métier au modèle IA.
Le diagramme suivant illustre cette architecture :
Le client et le serveur MCP peuvent échanger un ensemble de messages standard :
| Message | Descriptif |
|---|---|
InitializeRequest |
Cette demande est envoyée par le client au serveur lors de sa première connexion, en lui demandant de commencer l’initialisation. |
ListToolsRequest |
Envoyé par le client pour demander la liste des outils dont dispose le serveur. |
CallToolRequest |
Utilisé par le client pour appeler un outil fourni par le serveur. |
ListResourcesRequest |
Envoyé par le client pour demander la liste des ressources serveur disponibles. |
ReadResourceRequest |
Envoyé par le client au serveur pour lire un URI de ressource spécifique. |
ListPromptsRequest |
Envoyé par le client pour demander une liste d’invites disponibles et de modèles d’invite à partir du serveur. |
GetPromptRequest |
Utilisé par le client pour obtenir une invite fournie par le serveur. |
PingRequest |
Un test ping, émis par le serveur ou le client, pour vérifier que l’autre partie est toujours active. |
CreateMessageRequest |
Demande du serveur pour échantillonner un LLM via le client. Le client dispose d’une discrétion totale sur le modèle à sélectionner. Le client doit également informer l’utilisateur avant de commencer l’échantillonnage, pour lui permettre d’inspecter la demande (humaine dans la boucle) et de décider s’il faut l’approuver. |
SetLevelRequest |
Demande du client au serveur, d’activer ou d’ajuster la journalisation. |
Développer avec le Kit de développement logiciel (SDK) C# MCP
En tant que développeur .NET, vous pouvez utiliser MCP en créant des clients et des serveurs MCP pour améliorer vos applications avec des intégrations personnalisées. MCP réduit la complexité liée à la connexion d’un modèle IA à différents outils, services et sources de données.
Le SDK C# MCP officiel est disponible via NuGet et vous permet de créer des clients et des serveurs MCP pour les applications et bibliothèques .NET. Le Kit de développement logiciel (SDK) est géré par le biais de la collaboration entre Microsoft, Anthropic et l’organisation du protocole ouvert MCP.
Pour commencer, ajoutez le SDK C# MCP à votre projet :
dotnet add package ModelContextProtocol --prerelease
Au lieu de créer des connecteurs uniques pour chaque point d’intégration, vous pouvez souvent tirer parti ou référencer des intégrations prédéfinies de différents fournisseurs tels que GitHub et Docker :
Intégration à Microsoft.Extensions.AI
Le SDK C# MCP dépend des bibliothèques de Microsoft.Extensions.AI pour gérer différentes interactions et tâches d’IA. Ces bibliothèques d’extensions fournissent des types et des abstractions de base pour l’utilisation des services IA, afin que les développeurs puissent se concentrer sur le codage sur des fonctionnalités d’IA conceptuelles plutôt que sur des plateformes ou des implémentations de fournisseurs spécifiques.
Affichez les dépendances du Kit de développement logiciel (SDK) C# MCP sur la page du package NuGet.
Autres ressources de développement MCP .NET
Différents outils, services et ressources d’apprentissage sont disponibles dans les écosystèmes .NET et Azure pour vous aider à créer des clients et des serveurs MCP ou à intégrer des serveurs MCP existants.
Prise en main des outils de développement suivants :
- Agent Framework prend en charge l’intégration avec les serveurs MCP, ce qui permet à vos agents d’accéder aux outils et services externes. Agent Framework fonctionne avec le SDK C# MCP officiel pour permettre aux agents de se connecter aux serveurs MCP, récupérer les outils disponibles et les utiliser par le biais d’appels de fonction pour étendre les fonctionnalités d’agent avec des sources de données et des services externes.
- Les serveurs MCP distants Azure Functions combinent des normes MCP avec l’architecture flexible d’Azure Functions. Visitez l’exemple de référentiel de fonctions MCP distantes pour obtenir des exemples de code.
- Azure MCP Server implémente la spécification MCP pour connecter en toute transparence des agents IA à des services Azure clés tels que Stockage Azure, Cosmos DB, etc.