Amusez-vous avec MCP & Copilot grâce à Chuck Norris

Microsoft met à disposition un nouveau lab sympa pour tester la création et l’intégration de serveurs Model Context Protocol (MCP) dans Copilot Studio. Voici un exemple concret d’implémentation d’un serveur MCP, interrogeant ici un endpoint public qui renvoie une blague Chuck Norris aléatoire sous forme de JSON, et que l’on peut déployer localement ou sur Azure.

Qu’est-ce que le MCP ?

Pour rappel, le Model Context Protocol (MCP) est un standard ouvert qui permet de connecter simplement des sources de données ou des API à des modèles d’IA.

J’ai déjà publié plusieurs articles à ce sujet sur mon blog ; vous pouvez les retrouver juste ici :

MCP vs API traditionnelles : quelles différences ?

Pour comprendre l’importance du MCP, comparons-le aux API REST traditionnelles :

CaractéristiqueMCPAPI REST traditionnelles
CommunicationBidirectionnelle et en temps réelGénéralement requête-réponse unidirectionnelle
Découverte d’outilsAutomatique et dynamiqueConfiguration manuelle nécessaire
Conscience du contexteIntégréeLimitée ou inexistante
ExtensibilitéPlug-and-playEffort d’intégration linéaire
StandardisationProtocole unifié pour tous les modèlesVariable selon les services
OrientationConçu spécifiquement pour les modèles d’IAUsage général

Cette standardisation représente un changement de paradigme pour quiconque souhaite développer des applications IA véritablement connectées.

Architecture et fonctionnement du MCP :

L’architecture du MCP repose sur trois composants principaux qui interagissent de façon coordonnée :

Les composants clés du MCP

  1. Hôtes MCP : Ce sont les applications qui intègrent l’IA et ont besoin d’accéder à des données externes. Par exemple, Claude Desktop, un IDE comme Cursor, ou toute application intégrant un LLM.
  2. Clients MCP : Ce sont des intermédiaires qui maintiennent les connexions sécurisées entre l’hôte et les serveurs. Chaque client est dédié à un serveur spécifique pour garantir l’isolation.
  3. Serveurs MCP : Ce sont des programmes externes qui fournissent des fonctionnalités spécifiques et se connectent à diverses sources comme Google Drive, Slack, GitHub, ou des bases de données.

Le flux de communication MCP se déroule typiquement en quatre étapes bien définies :

  1. Découverte : L’hôte (comme Claude Desktop) identifie les serveurs MCP disponibles dans son environnement
  2. Inventaire des capacités : Les serveurs MCP déclarent leurs fonctionnalités disponibles (outils, ressources, prompts)
  3. Sélection et utilisation : Quand l’utilisateur pose une question nécessitant des données externes, l’IA demande l’autorisation d’utiliser un outil spécifique
  4. Exécution et retour : Le serveur MCP exécute l’action demandée (recherche web, accès à un fichier, etc.) et renvoie les résultats à l’IA qui peut alors formuler une réponse complète

Ce processus standardisé permet une communication fluide entre l’IA et les sources de données externes, tout en maintenant un contrôle transparent pour l’utilisateur.

Que propose Microsoft dans ce lab ?

Cette page explique comment tester un serveur MCP en local ou hébergé sur Azure :

Ce guide constitue donc un point de départ idéal pour expérimenter la connexion et l’interaction entre un serveur MCP et Copilot.

L’exercice consiste à configurer un serveur MCP, d’abord sur Azure puis en local, afin de comprendre son fonctionnement et tester ses outils :

  • La première partie de l’exercice consiste à déployer sur Azure Container Apps pour valider le bon fonctionnement du serveur MCP hébergé.
  • La seconde partie de l’exercice consiste à le redéployer en local cette fois-ci.
  • Dans les deux cas, vous expérimentez les actions soit directement au travers de prompts.

Microsoft propose également une vidéo YouTube qui illustre pas à pas la mise en place de ce lab MCP et son intégration dans Copilot Studio. Idéale pour suivre visuellement chaque étape :

Maintenant, il ne nous reste plus qu’à tester tout cela 😎

Etape 0 – Rappel des prérequis :

Pour réaliser l’exercice sur Azure ou en local, il vous faudra dans tous les cas disposer de :

Puis, pour un déploiement sur Azure, il vous faudra disposer en plus de :

  • Un tenant Microsoft
  • Un abonnement Azure valide

Enfin, pour un déploiement en Local, il vous faudra disposer en plus de :

Commençons par déployer notre serveur MCP de test sur Azure.

Etape I – Test de déploiement sur Azure :

Cliquez sur le bouton suivant pour créer un nouveau repository sur votre compte GitHub :

Nommez le repository, choisissez sa visibilité, puis cliquez sur Créer :

Dans une fenêtre Powershell, lancez la commande suivante pour installer le module Azure Developer CLI (azd) :

winget install microsoft.azd

Exécutez la commande suivante pour télécharger les fichiers du repository en adaptant la variable de votre compte :

git clone https://github.com/{account}/mcsmcp.git

Ouvrez Visual Studio Code et chargez le dossier correspondant à l’archive téléchargée :

Lancez la commande suivante pour vous connecter à votre compte Azure :

azd auth login

Complétez l’authentification via le navigateur Internet de votre choix :

Lancez la commande pour déployer les ressources sur Azure :

azd up

Donnez un nom à votre environnement Azure :

Sélectionnez la souscription Azure à utiliser :

Choisissez la région Azure appropriée :

Patientez quelques minutes pendant le déploiement :

Constatez l’apparition des ressources dans le portail Azure :

Attendez la confirmation de fin de déploiement avec succès :

Rafraîchissez la page des ressources Azure et cliquez sur le Container App déployé :

Vérifiez dans les réplicas que le conteneur de l’application est bien en statut Running :

Retournez sur la page principale pour récupérer l’URL de votre déploiement :

Collez cette URL dans un navigateur en ajoutant /mcp pour vérifier le message d’erreur attendu (preuve que le service tourne) :

Notre environnement Azure est maintenant en place, nous pouvons passer directement à l’étape III afin de déployer notre connecteur MCP dans un nouvel agent sur Copilot Studio.

Etape II – Test de déploiement en local :

Lancez la commande npm install pour installer les dépendances nécessaires du projet :

npm install

Exécutez la commande suivante pour compiler et démarrer le serveur MCP en local :

pm run build && npm run start

Copiez l’URL affichée par le serveur et ouvrez-la dans un navigateur pour vérifier le message d’erreur attendu (preuve que le serveur fonctionne) :

localhost:3000/mcp

Lancez la commande ngrok suivante pour exposer votre serveur MCP local sur Internet :

ngrok http http://localhost:3000

Copiez l’URL publique générée par ngrok :

Ouvrez-la dans un navigateur (en ajoutant /mcp) pour tester le bon fonctionnement du serveur :

Lancez la commande suivante pour démarrer l’outil MCP Inspector :

npx @modelcontextprotocol/inspector

Dans l’interface web de MCP Inspector, collez l’URL publique (ngrok) de votre serveur MCP puis cliquez sur Connecter :

Cliquez sur Lister les outils pour afficher les outils disponibles sur le serveur MCP :

Sélectionnez l’un des outils listés puis lancez-le pour exécuter une action :

Constatez l’apparition d’une blague Chuck Norris renvoyée par le serveur MCP, signe que tout fonctionne correctement :

Notre environnement Local est maintenant en place, nous pouvons passer directement à l’étape III afin de déployer notre connecteur MCP dans un nouvel agent sur Copilot Studio.

Etape III – Création de l’agent dans Copilot Studio :

Rendez-vous dans Copilot Studio pour créer un nouvel agent :

Donnez un nom à votre agent :

Jokester

Ajoutez une description à votre agent :

A humor-focused agent that delivers concise, engaging jokes only upon user request, adapting its style to match the user's tone and preferences. It remains in character, avoids repetition, and filters out offensive content to ensure a consistently appropriate and witty experience.

Définissez les instructions de l’agent :

You are a joke-telling assistant. Your sole purpose is to deliver appropriate, clever, and engaging jokes upon request. Follow these rules:
- Respond only when the user asks for a joke or something related (e.g., "Tell me something funny").
- Match the tone and humor preference of the user based on their input—clean, dark, dry, pun-based, dad jokes, etc.
- Never break character or provide information unrelated to humor.
- Keep jokes concise and clearly formatted.
- Avoid offensive, discriminatory, or NSFW content.
- When unsure about humor preference, default to a clever and universally appropriate joke.
- Do not repeat jokes within the same session.
- Avoid explaining the joke unless explicitly asked.
- Be responsive, witty, and quick.

Ajoutez des prompts suggérés pour guider l’usage :

Cliquez sur Créer pour finaliser la création de l’agent :

Attendez quelques secondes :

Allez dans l’onglet Outils et cliquez sur Ajouter un outil :

Sélectionnez le type Model Context Protocol, puis ajoutez un nouvel outil :

Sélectionnez le type Model Context Protocol pour ajouter un outil MCP :

Renseignez un nom, une description et l’URL publique terminant par /mcp, puis créez sans authentification :

Créez une nouvelle connexion pour ce serveur MCP :

Cliquez sur Créer pour valider la connexion

Cliquez sur Ajouter et configurer pour intégrer l’outil à l’agent :

Constatez l’apparition des outils MCP dans votre connecteur MCP :

Cliquez sur Tester et envoyez un prompt demandant une blague :

Tell me a Chuck Norris joke

Vérifiez la réponse renvoyée par le serveur MCP :

Cliquez sur Publier pour mettre votre agent à disposition :

Confirmez la publication en cliquant à nouveau sur Publier :

Patientez quelques secondes le temps que la publication se termine :

Ouvrez l’onglet Canaux pour activer la mise à disposition sur Teams et Microsoft 365 Copilot :

Cliquez sur Publier à nouveau pour confirmer l’activation :

Cliquez sur Publier à nouveau pour confirmer l’activation :

Patientez quelques secondes le temps que la publication se termine :

Rouvrez Teams / Microsoft 365 Copilot puis cliquez sur le lien suivant :

Dans Microsoft 365 Copilot Chat, cliquez sur Ajouter votre agent :

Testez les prompts suggérés mis à disposition :

Si un message d’erreur concernant du filtrage apparaît :

Retournez dans la configuration pour ajuster la modération de l’agent :

Cliquez de nouveau sur Publier après avoir modifié la modération :

Revenez sur Microsoft 365 Copilot Chat et retestez un prompt :

Vérifiez que la réponse s’affiche correctement :

Testez à nouveau avec d’autres prompts suggérés :

En voyant certaines blagues, je comprends que Copilot ai pu vouloir en filtrer 😂 :

Conclusion

Le Model Context Protocol (MCP) n’est plus une simple curiosité technique : il s’impose comme un standard ouvert pour connecter intelligemment nos IA aux sources de données et services externes.

Avec ce lab proposé par Microsoft, on peut expérimenter très concrètement l’intégration d’un serveur MCP dans Copilot Studio, que ce soit sur Azure ou en local.

Ce qui m’a particulièrement plu, c’est la simplicité du déploiement : quelques commandes suffisent pour tester un serveur, valider son fonctionnement, puis l’exposer directement à un agent Copilot.

Cela ouvre la voie à des scénarios bien plus avancés : connecter des bases de données internes, des outils métiers, ou encore enrichir vos assistants IA avec des fonctionnalités maison.

Testez un Custom MCP sur Copilot

Le protocole MCP continue toujours de gagner en popularité. Au travers de Copilot Studio, Microsoft propose, jour après jour, de plus en plus de connecteurs MCP, disponibles directement sur étagère. Mais qu’en est-il, lorsque le connecteur MCP vers la solution souhaitée n’existe pas encore ? Rassurez-vous, la mise en place d’un serveur MCP personnalisé est tout à fait possible dans Copilot Studio.

Il s’agit du 3ème article parlant du Model Context Protocol (MCP) écrit sur ce blog, dont voici un rappel des deux premiers :

Enfin, un autre article détaille le principe des instructions personnalisées et la mémoire disponibles sur Microsoft 365 Copilot et accessibles juste ici.

Mais qu’est-ce que MCP ?

Le Model Context Protocol (MCP) est un protocole qui permet à des assistants IA de se connecter de façon sécurisée à des sources de données et outils externes… bla bla … 🤣

Mais, si cette notion est nouvelle pour vous, je ne peux vous conseiller que de commencer par regarder cette excellente vidéo :

Comment tester un serveur MCP sur Copilot ?

Il est très simple et très rapide de tester un serveur MCP depuis l’application Desktop de Claude.

Les démonstrations mixant un serveur Custom MCP et Copilot sont encore un peu rares pour le moment, mais elles vont vite devenir légion. Mais, durant mes recherches, je suis tombé sur cet exercice, disponible sur un Bootcamp Copilot créé par Microsoft :

Cette petite démonstration MCP n’est pas révolutionnaire en soi, mais je la trouve bien pensée, car elle est très simple à mettre en place, et elle permet de comprendre comment Copilot va pouvoir se connecter avec les données de test via le serveur MCP.

Que contient cette démonstration ?

Nous allons commencer par déployer un serveur MCP de test servant à la gestion fictive de candidats RH. Le serveur est basé sur du .NET, et s’appuie sur le SDK MCP pour C#. Le serveur fournit des outils permettant de gérer la liste de candidats HR :

  • Lister les candidats
  • Rechercher un candidat
  • Ajouter un candidat
  • Mettre à jour un candidat
  • Supprimer un candidat

Une fois le serveur MCP en place, on va à l’intégrer à Microsoft 365 Copilot, via Copilot Studio, afin de gérer la liste de candidats RH via des prompts appelant ces outils MCP.

Aussi je vous propose donc de faire cet exercice ensemble 😎

Etape 0 – Rappel des prérequis :

Pour réaliser cet exercice, il vous faudra disposer des outils suivants sur votre poste :

Une fois ces prérequis installés sur votre poste. Nous allons pouvoir continuer en commençant par installer et configurer notre serveur MCP.

Etape I – Mise en place du serveur MCP :

Commencez par téléchargez l’archive du serveur MCP via ce lien GitHub :

Une fois l’archive ZIP sur votre poste, pensez à débloquer celle-ci via ses propriétés :

Décompressez-la dans un dossier local de votre choix :

Ouvrez Visual Studio Code, puis cliquez sur “Ouvrir un dossier” afin de sélectionner le dossier que vous venez de décompresser :

Prenez un moment pour parcourir la structure du projet.
Vous y trouverez :

  • un dossier Configuration avec le fichier HRMCPServerConfiguration.cs,
  • un dossier Data contenant candidates.json,
  • un dossier Services avec l’interface et l’implémentation CandidateService.cs,
  • un dossier Tools avec les définitions des outils et modèles (HRTools.cs, Models.cs),
  • et le fichier Program.cs, point d’entrée du projet.

Ouvrez une fenêtre de terminal intégrée dans Visual Studio Code, puis exécutez la commande suivante :

dotnet run

Copiez l’URL locale qui s’affiche dans le terminal :

http://localhost:47002/

Ouvrez le navigateur internet de votre choix, puis collez l’URL. Vous devriez voir apparaître un message d’erreur au format JSON : c’est le comportement attendu et cela confirme que le serveur est bien démarré.

Ngrok est un outil de tunnellisation qui permet d’exposer de manière sécurisée un serveur local à Internet via une URL publique, sans avoir à configurer manuellement votre réseau ou à ouvrir des ports dans votre pare-feu.

Pour cela, rendez-vous sur le site de Ngrok, puis inscrivez-vous chez eux afin d’avoir un compte gratuit :

Sur leur site, téléchargez l’installateur de Ngrok selon votre OS :

Copiez la commande suivante affichée sous l’installateur pour finaliser la configuration de votre Ngrok :

Depuis votre ordinateur, ouvrez Windows PowerShell, puis lancez la commande précédemment copiée afin de terminer la configuration Ngrok :

Créez un tunnel ngrok sécurisé depuis Internet vers votre serveur local qui écoute sur le port 47002, en générant une URL publique accessible depuis n’importe quel navigateur :

ngrok http http://localhost:47002

Copiez le nom de domaine commençant par https et finissant par ngrok-fre.app. Ne fermez pas cette fenêtre tant que le processus d’enrôlement API n’est pas entièrement fini :

Cliquez sur le lien public affiché par votre tunnel (ngrok / Dev Tunnel) afin de vérifier que l’URL redirige bien vers votre service local.

Constatez l’affichage de la même réponse JSON “d’erreur” que sur localhost : cela confirme que la liaison via le tunnel fonctionne correctement.

Ouvrez une fenêtre PowerShell, lancez la commande suivante afin de télécharger et exécuter le binaire MCP Inspector sans installation globale

npx @modelcontextprotocol/inspector

Patientez quelques secondes : MCP Inspector génère son URL locale et un token d’accès.

MCP ouvre automatiquement le navigateur web, collez l’URL publique de votre serveur MCP ngrok, puis cliquez sur Connecter :

Une fois connecté, cliquez sur le bouton pour lister les outils disponibles exposés par ce serveur MCP.

Sélectionnez un des outils proposés (par exemple list_candidates), puis cliquez ici pour l’exécuter :

Constatez l’apparition des résultats liés aux candidats RH retournés par le serveur MCP.

Le serveur MCP est opérationnel ; poursuivez dans Copilot Studio afin de créer votre agent et consommer les outils exposés par ce serveur.

Etape II – Création de l’agent Copilot :

Ouvrez le portail Microsoft Copilot Studio, puis cliquez ici pour créer un nouvel agent :

Cliquez sur Configurer, renseignez les informations de base, puis cliquez sur Créer :

  • Nom :
HR Candidate Management
  • Description :
An AI assistant that helps manage HR candidates using MCP server integration for comprehensive candidate management
  • Instructions :
You are a helpful HR assistant that specializes in candidate management. You can help users search for candidates, check their availability, get detailed candidate information, and add new 
candidates to the system. 
Always provide clear and helpful information about candidates, including their skills, experience, contact details, and availability status.

Attendez environ 1 minute que la création se termine, sans fermer la page.

Descendez en bas de la page, ajoutez des “Prompts suggérés” en lien avec la gestion des candidats RH , puis sauvegardez :

  • List all candidates
List all the candidates
  • Search candidates
Search for candidates with name [NAME_TO_SEARCH]
  • Add new candidate
Add a candidate with firstname [FIRSTNAME], lastname [LASTNAME], e-mail [EMAIL], role [ROLE], spoken languages [LANGUAGES], and skills [SKILLS]

Votre agent de base est prêt ; vous allez maintenant lui ajouter de la puissance en intégrant le serveur MCP.

Etape III – Connexion entre l’agent et le serveur MCP :

Toujours sur votre agent dans Copilot Studio, ouvrez l’onglet Outils, puis cliquez ici pour ajouter un nouvel outil :

Cliquez ici afin de créer un outil personnalisé :


Sélectionnez Model Context Protocol pour ajouter un serveur MCP :

Nommez le serveur MCP, ajoutez une description, collez l’URL publique générée par votre tunnel ngrok, laissez Authentication de base, puis cliquez sur Créer :

À la création, lancez l’établissement d’une connexion entre votre agent et l’outil MCP :

Cliquez sur Créer pour créer la connexion :

Cliquez ici pour ajouter et configurer l’outil dans l’agent :

Revenez sur la liste des outils, entrez dans l’outil MCP que vous venez d’ajouter en cliquant dessus :

Vérifiez la bonne connexion via la liste des outils exposés par le serveur MCP qui doit se récupérer correctement :

La connexion au serveur MCP est en place, il ne nous reste plus qu’à publier l’agent sur des canaux comme Teams.

Etape IV – Publication de l’agent :

Cliquez sur le bouton de test afin d’envoyer un prompt simple pour vérification :

Constatez l’apparition des résultats retournés par le serveur MCP dans le panneau de test :

Cliquez sur Publier pour publier votre agent :

Confirmez votre choix dans la boîte de dialogue :

Attendez la fin du processus de publication.

Ouvrez l’onglet des Canaux, cliquez sur Teams and Microsoft 365 Copilot, cochez l’option pour rendre l’agent disponible dans Microsoft 365 Copilot, puis cliquez sur Ajouter des canaux :

Patientez pendant l’enregistrement des paramètres du canal :

Revenez à l’agent et cliquez à nouveau sur republier en tenant compte du nouveau canal :

Confirmez votre choix dans la boîte de dialogue :

Votre agent est en ligne, il ne nous reste plus qu’à le tester dans Teams et Microsoft 365 Copilot.

Etape V – Tests dans Teams et Microsoft 365 Copilot :

Toujours sur la page de l’agent créé sur le portail de Copilot Studio, cliquez ici pour ajouter cet agent dans Microsoft 365 :

Cliquez sur Ajouter afin d’ajouter l’agent à votre portail Microsoft 365 Copilot :

Retrouvez l’agent dans la liste de gauche des agents disponibles :

Revenez sur Microsoft Copilot Studio pour ajouter le canal Teams :

Sur Teams, puis cliquez sur ici afin d’ajouter cet agent :

Dans Teams ou Microsoft 365 Copilot, lancez un prompt parmi les prompts suggérés :

Constatez l’apparition du résultat MCP lié au prompt exécuté.

Demandez à l’agent de retrouver un seul candidat via des critères précis, puis validez le résultat MCP affiché :

Demandez la suppression de ce candidat, vérifiez la confirmation :

Ouvrez MCP Inspector pour constater sa disparition de la liste :

Demandez l’ajout d’une caractéristique (par ex. une langue parlée) à un candidat, puis validez la mise à jour retournée par l’agent :

Revenez dans MCP Inspector, puis confirmez que la nouvelle caractéristique apparaît bien pour ce candidat :

Demandez l’ajout d’un nouveau candidat, puis constatez la confirmation :

Vérifiez dans MCP Inspector que l’enregistrement du nouveau candidat a bien été créé :

Demandez l’ajout d’un candidat en joignant un PDF de CV en exemple, puis validez le résultat fourni par l’agent :

Dans MCP Inspector, confirmez l’apparition du candidat associé au fichier PDF précédemment téléversé :

Conclusion

Vous avez mis en place un serveur MCP en local, l’avez exposé en URL publique via un tunnel, l’avez inspecté avec MCP Inspector, puis intégré dans Copilot Studio avant de le publier et de le tester dans Teams / Microsoft 365 Copilot.

À vous maintenant de créer un véritable agent opérationnel capable d’appeler des outils MCP pour gérer vos données directement depuis l’interface Copilot.

Pour aller plus loin, je vous recommande ce tutoriel pratique de Shervin Shaffie, qui montre comment créer un agent prêt pour la production sans écrire une seule ligne de code. Il vous montre comment connecter DocuSign, de la connexion à la publication, étape par étape :

Déployez un serveur MCP dans Azure

Le Model Context Protocol (MCP) ouvre la voie à une nouvelle façon de faire dialoguer les modèles d’IA et leurs outils. Que ce soit pour tester un environnement local ou déployer une architecture prête à l’emploi dans Azure, MCP apporte une approche standardisée, simple à expérimenter mais suffisamment flexible pour être adaptée à des besoins complexes.

Dans cet article, je vous propose un tutoriel pas à pas pour mettre en place un serveur MCP, le tester avec MCP Inspector, puis le déployer dans Azure afin d’explorer tout son potentiel.

Qu’est-ce que MCP ?

Mon premier article est un bon point de départ pour vous informer sur le sujet :

Le protocole MCP (Model Context Protocol) est un protocole qui permet à différents modèles et outils d’IA de communiquer entre eux. Il fournit un moyen standardisé pour les modèles de partager des informations et de collaborer sur des tâches. Le serveur MCP sert de pont entre différents modèles et outils, leur permettant de fonctionner ensemble de manière transparente.

GitHub

Je peux également vous conseiller de voir cette vidéo, mais également de consulter la page officielle du protocole MCP :

Vous trouverez ci-dessous le schéma d’architecture d’une configuration type de serveur MCP :

Enfin cette page rassemble une collection d’implémentations de serveurs MCP, qu’il s’agisse de versions officielles (références) ou proposées par la communauté. Elle sert de bibliothèque centrale pour explorer et découvrir des exemples de serveurs MCP capables de fournir aux modèles d’IA un accès contrôlé à des outils ou sources de données.

Qu’est-ce que MCP Inspector ?

MCP Inspector est un outil graphique fourni par l’équipe du Model Context Protocol qui sert à tester, déboguer et explorer un serveur MCP.

Il permet notamment de :

  • Se connecter à un serveur MCP local ou distant
  • Lister les outils (tools) que le serveur met à disposition.
  • Tester ces outils en leur envoyant des requêtes et en visualisant les réponses.
  • Explorer d’autres ressources exposées par le serveur, comme les prompts ou les files.
  • Vérifier en temps réel le statut de connexion et les échanges de données.

En résumé, c’est l’équivalent d’une console d’administration interactive qui te permet de voir comment ton serveur MCP réagit et d’expérimenter ses fonctionnalités sans devoir écrire du code côté client.

Envie de tester le déploiement d’un serveur MCP sur Azure ?

Cette page explique comment tester un serveur MCP en local ou hébergé sur Azure à l’aide de clients MCP sur desktop, comme Visual Studio Code ou MCP Inspector :

Ce guide constitue donc un point de départ idéal pour expérimenter la connexion et l’interaction avec un serveur MCP.

Afin de rendre la démonstration plus complète, j’y ai effectué quelques modifications, et j’ai publié le tout sur mon GitHub :

L’exercice consiste à configurer un serveur MCP, d’abord en local puis sur Azure, afin de comprendre son fonctionnement et tester ses outils :

  • Vous expérimentez ensuite les actions soit directement via ces outils, soit au travers de prompts, en observant le code généré à chaque étape.
  • La seconde partie de l’exercice consiste à déployer sur Azure Container Apps pour valider le bon fonctionnement du serveur MCP hébergé.

Maintenant, il ne nous reste plus qu’à tester tout cela 😎

Etape 0 – Rappel des prérequis :

Pour réaliser cet exercice, il vous faudra disposer de :

  • Un abonnement Azure valide
  • Un tenant Microsoft
  • Un modèle c’IA déployé sur Azure OpenAI

Commençons par tester la solution en local.

Etape I – Déploiement du serveur MCP en local :

Avant cela, rendez-vous sur la page Azure OpenAI, puis copiez une des clés d’API :

Copiez également le point de terminaison depuis cette même page :

Accédez au portail Azure AI Foundry, créez un modèle, puis copiez son nom :

Sur votre poste, ouvrez une fenêtre Terminal :

Lancez la commande suivante pour vérifier si Git est installé :

git --version

Si Git n’est pas encore installé, exécutez la commande suivante pour le faire :

winget install --id Git.Git -e --source winget

Attendez la fin de l’installation de Git :

Vérifiez que l’installation de Git s’est bien effectuée :

Lancez la commande suivante pour récupérer le package au format Git depuis mon dépôt GitHub :

git clone https://github.com/jlou07/mcp-intelligent-server.git

Accédez au dossier du package téléchargé :

cd .\mcp-intelligent-server\

Ouvrez Visual Studio Code avec la commande suivante :

Code .

Dans Visual Studio Code, ouvrez le terminal intégré :

Exécutez la commande suivante pour installer NPM (gestionnaire de paquets Node.js) :

npm install

Attendez la fin de l’installation des différents packages NPM :

Lancez le script suivant pour générer un token sur le serveur MCP :

npm run generate-token

Vérifiez la création du fichier .env et copiez la valeur du token généré :

Ajoutez la ligne suivante pour renseigner le point de terminaison Azure OpenAI, puis sauvegardez :

# Azure OpenAI Configuration (optional but recommended for intelligent prompts)
AZURE_OPENAI_API_KEY=your-azure-openai-api-key-here
AZURE_OPENAI_ENDPOINT=https://your-resource-name.openai.azure.com
AZURE_OPENAI_MODEL=gpt-4o

Lancez localement le serveur MCP avec la commande NPM suivante :

npm run dev

Vérifiez la création de la base de données SQLite en mémoire, ainsi que le lancement réussi du serveur MCP :

Notre environnement en local est maintenant déployé. Nous allons maintenant utiliser MCP Inspector pour explorer les fonctionnalités du serveur MCP.

Etape II – Tests du serveur MCP local :

Ouvrez une seconde fenêtre de Terminal :

Lancez l’outil MCP Inspector avec la commande suivante :

npm run inspect

Récupérez l’URL du proxy MCP Inspector contenant son propre token d’accès :

Ouvrez cette URL dans un navigateur et vérifiez la présence du token MCP Inspector :

Copiez ensuite la valeur du token du serveur MCP et ajoutez-la dans le fichier .env :

Complétez les champs requis pour la connexion au serveur MCP local, puis cliquez ici pour vous connecter :

Vérifiez dans les logs l’authentification réussie du client vers le serveur MCP :

Dans MCP Inspector, vérifiez le statut Connected, puis cliquez sur l’onglet Tools :

Cliquez sur Lister les Tools pour afficher les outils déclarés :

Constatez l’apparition de la liste des outils disponibles :

Observez les opérations effectuées du côté du serveur MCP :

Utilisez l’outil List_ToDo, lancez-le et vérifiez le résultat obtenu :

Analysez les logs générés par le serveur MCP pour cette opération :

Utilisez l’outil Add _ToDo pour créer une nouvelle tâche, puis constatez l’opération :

Observez les logs correspondant à l’ajout de la nouvelle tâche dans la base SQLite :

Ajoutez plusieurs tâches supplémentaires :


Relancez List_ToDo :

Analysez les logs générés par le serveur MCP pour cette opération :

Utilisez Complete_ToDo pour marquer une tâche comme complétée :

Vérifiez les logs correspondant à cette mise à jour :

Relancez List_ToDo pour constater que la tâche est complétée :

Observez les logs correspondant à cette liste mise à jour :

Passez à l’onglet Prompts, puis cliquez ici pour lister les assistants IA disponibles :

Vérifiez les logs générés par cette action :

Cliquez sur ToDo Assistant, entrez un exemple de requête (ex. : lister les tâches), puis constatez la réponse générée :

Observez les logs correspondant à ce prompt :

Testez un prompt de suppression d’une tâche, puis exécutez-le :

Vérifiez les logs générés et l’action effectuée sur la base SQLite :

Relancez List_ToDo pour constater que la tâche a bien été supprimée :

Testez un prompt de mise à jour de toutes les tâches :

Constatez le résultat dans les logs :

Créez une nouvelle tâche via un prompt :

Observez les logs correspondant à l’ajout de cette nouvelle tâche :

La démonstration sur l’environnement local est terminée, passons maintenant au déploiement sur Azure.

Etape III – Déploiement du serveur MCP sur Azure :

Rendez-vous sur l’URL de téléchargement de Docker Desktop, puis téléchargez la version correspondant à votre OS :

Lancez l’exécutable compatible avec votre architecture :

Suivez l’installation :

Cochez les options proposées puis cliquez sur OK :

Attendez la fin de l’installation (de 5 à 10 minutes) :

Cliquez sur Fermer, puis redémarrez l’ordinateur :

Après le redémarrage, ouvrez Docker Desktop, puis laissez le téléchargement des composants additionnels se terminer :

Patientez si des mises à jour sont nécessaires, puis redémarrez si demandé :

Attendez le démarrage complet de Docker Engine :

Vous devez voir l’écran principal de Docker Desktop avec un tableau de bord vide de conteneurs :

Ouvrez Visual Studio Code, puis ouvrez un nouveau terminal :

Lancez la commande azd pour vérifier si Azure Developer CLI est installé :

azd version

Si Azure Developer CLI n’est pas installé, exécutez la commande pour l’installer :

winget install microsoft.azd

Attendez la fin de l’installation :

Fermez puis rouvrez Visual Studio Code et vérifiez que azd est bien installé :

Depuis le dossier du serveur MCP, lancez la commande azd up pour déployer l’infrastructure sur Azure :

Connectez-vous avec votre compte Azure :

Patientez pendant la préparation de l’image du conteneur :

Constatez la création locale des images Docker dans Docker Desktop :

Donnez un nom à votre application unique sur Azure :

Choisissez votre souscription Azure :

Saisissez les informations liées à Azure OpenAI :

Sélectionnez la région Azure :

Attendez la fin du déploiement des ressources Azure :

Sur le portail Azure, vérifiez la création complète des ressources :

Quelques minutes plus tard :

Attendez encore la fin du déploiement de l’image :

Constatez le déploiement terminé dans Visual Studio Code :

Retournez sur Azure et ouvrez la page de votre Azure Container App :

Copiez l’URL publique de votre application :

Dans la section Revisions and Replicas, vérifiez que le conteneur est démarré :

Dans Environment Variables, récupérez ou vérifiez la présence du token d’application :

Depuis Visual Studio Code, relancez MCP Inspector en local :

npm run inspect

Copiez l’URL avec le token de MCP Inspector :

Connectez MCP Inspector à votre Azure Container App avec l’URL et le token :

Effectuez à nouveau des opérations List_ToDo et créez de nouvelles tâches :

Testez différents prompts de listing et de complétion :

Testez également la partie prompting :

Vérifiez que la base temporaire SQLite est bien mise à jour :

Conclusion

Avec ce déploiement, vous disposez désormais d’un serveur MCP pleinement opérationnel, capable de dialoguer avec vos modèles d’IA et de gérer des outils de manière sécurisée, que ce soit en local ou dans le cloud Azure.

Et la suite ?

Si le sujet vous intéresse, je vous recommande vivement de consulter cette page, vous y trouverez d’autres serveurs MCP déjà mis à disposition, que vous pourrez tester pour découvrir leurs capacités, et dont la liste ne cesse de s’allonger.

Enfin, il peut également être intéressant d’explorer la création de serveurs MCP personnalisés dans l’environnement Microsoft 365, d’autant qu’une vidéo très pertinente sur le sujet est également disponible :

Ajoutez du MCP à votre IA !

Alex Wolf, de la chaîne YouTube The Code Wolf, continue de peaufiner son application DBChatPro version après version et dévoile la v6 ! Cette nouvelle version intègre maintenant un serveur MCP, exposant les fonctionnalités clés de DBChatPro à d’autres outils d’IA (GitHub Copilot, etc.) ou même à vos propres applications. Dans cet article, nous explorons les fondamentaux du MCP, puis nous détaillons l’installation du serveur MCP de DBChatPro.

Avant toute manipulation technique, et pour bien saisir l’intérêt d’une architecture MCP, je vous recommande la lecture de l’excellent billet disponible sur Digidop, écrit par Thibaut Legrand. Voici un extrait de ce billet qui illustre parfaitement l’avantage d’une architecture MCP :

Qu’est-ce que le Model Context Protocol (MCP) ?

Le Model Context Protocol (MCP) est un standard ouvert conçu par Anthropic (l’entreprise à l’origine de Claude) qui offre aux modèles d’IA un accès sécurisé à diverses sources de données et outils externes.

Il fonctionne comme un « USB-C universel » pour l’IA, facilitant la communication avec n’importe quel service ou base de données.

Pourquoi le MCP a été créé ?

Avant le MCP, relier un LLM à des sources externes était laborieux et non standardisé. Les grands modèles de langage (GPT, Claude, Gemini…) présentent deux limites majeures :

  1. Limite de contexte : Ils ne peuvent raisonner que sur les informations présentes dans leur contexte immédiat
  2. Impossibilité d’action : Ils peuvent générer du texte mais ne peuvent pas agir sur le monde extérieur

La métaphore du « problème M×N » illustre parfaitement cette situation : pour connecter un nombre M modèles d’IA à un nombre N outils externes, il fallait créer M×N intégrations différentes. Le MCP transforme cette équation en M+N, réduisant drastiquement la complexité d’intégration.

Prenons un exemple concret :

une entreprise utilisant 4 modèles d’IA différents (Claude, GPT-4, Gemini, Deepseek) qui souhaite les connecter à 5 services externes (GitHub, Slack, Google Drive, Salesforce, base de données interne).

Sans MCP, cela nécessiterait 4×5=20 intégrations personnalisées. Avec MCP, on passe à seulement 4+5=9 composants (4 clients MCP et 5 serveurs MCP), soit une réduction de 55% de la complexité et du temps de développement.

MCP vs API traditionnelles : quelles différences ?

Pour comprendre l’importance du MCP, comparons-le aux API REST traditionnelles :

CaractéristiqueMCPAPI REST traditionnelles
CommunicationBidirectionnelle et en temps réelGénéralement requête-réponse unidirectionnelle
Découverte d’outilsAutomatique et dynamiqueConfiguration manuelle nécessaire
Conscience du contexteIntégréeLimitée ou inexistante
ExtensibilitéPlug-and-playEffort d’intégration linéaire
StandardisationProtocole unifié pour tous les modèlesVariable selon les services
OrientationConçu spécifiquement pour les modèles d’IAUsage général

Cette standardisation représente un changement de paradigme pour quiconque souhaite développer des applications IA véritablement connectées.

Architecture et fonctionnement du MCP

L’architecture du MCP repose sur trois composants principaux qui interagissent de façon coordonnée :

Les composants clés du MCP

  1. Hôtes MCP : Ce sont les applications qui intègrent l’IA et ont besoin d’accéder à des données externes. Par exemple, Claude Desktop, un IDE comme Cursor, ou toute application intégrant un LLM.
  2. Clients MCP : Ce sont des intermédiaires qui maintiennent les connexions sécurisées entre l’hôte et les serveurs. Chaque client est dédié à un serveur spécifique pour garantir l’isolation.
  3. Serveurs MCP : Ce sont des programmes externes qui fournissent des fonctionnalités spécifiques et se connectent à diverses sources comme Google Drive, Slack, GitHub, ou des bases de données.

Le flux de communication MCP se déroule typiquement en quatre étapes bien définies :

  1. Découverte : L’hôte (comme Claude Desktop) identifie les serveurs MCP disponibles dans son environnement
  2. Inventaire des capacités : Les serveurs MCP déclarent leurs fonctionnalités disponibles (outils, ressources, prompts)
  3. Sélection et utilisation : Quand l’utilisateur pose une question nécessitant des données externes, l’IA demande l’autorisation d’utiliser un outil spécifique
  4. Exécution et retour : Le serveur MCP exécute l’action demandée (recherche web, accès à un fichier, etc.) et renvoie les résultats à l’IA qui peut alors formuler une réponse complète

Ce processus standardisé permet une communication fluide entre l’IA et les sources de données externes, tout en maintenant un contrôle transparent pour l’utilisateur.

Serveurs MCP existants

Plutôt que de développer vos propres serveurs MCP depuis zéro, vous pouvez exploiter l’écosystème grandissant de serveurs préexistants. Ces solutions prêtes à l’emploi vous permettent d’intégrer rapidement des fonctionnalités avancées dans vos projets IA :

Serveurs officiels et communautaires

  • GitHub : Ce serveur MCP vous permet d’interagir avec des dépôts de code directement depuis votre application IA. Vous pouvez rechercher des fichiers, créer des issues, analyser des pull requests, ou même générer des commits et du code. Idéal pour les assistants de développement qui nécessitent une compréhension du contexte du code.
  • Google Drive : Offre un accès complet aux documents stockés sur Google Drive. Votre modèle d’IA peut ainsi lire, créer, modifier ou organiser des documents, présentations et feuilles de calcul, en conservant le contexte des informations partagées.
  • Slack : Permet à vos modèles d’IA d’interagir avec les canaux et conversations Slack. Ils peuvent envoyer des messages, surveiller des chaînes spécifiques, ou même répondre automatiquement à certains types de requêtes, créant ainsi une intégration transparente dans les flux de communication d’équipe.
  • Puppeteer : Un puissant serveur MCP qui apporte la capacité de naviguer sur le web. Vos modèles d’IA peuvent visiter des sites, remplir des formulaires, capturer des captures d’écran et extraire des données, ouvrant la voie à l’automatisation avancée des tâches web.
  • Brave Search : Donne à vos modèles d’IA la capacité d’effectuer des recherches web en temps réel via le moteur Brave. Cela permet de répondre à des questions sur l’actualité récente ou d’accéder à des informations au-delà de la date limite de formation du modèle.
  • PostgreSQL : Connecte vos modèles d’IA directement à vos bases de données PostgreSQL. Les modèles peuvent effectuer des requêtes SQL, analyser des données et même assister à la conception de schémas de base de données.
  • SQLite : Variante plus légère pour les bases de données locales, particulièrement utile pour les applications de bureau ou les projets avec des exigences de stockage plus modestes.
  • Qdrant : Serveur spécialisé pour les bases de données vectorielles, essentiel pour les applications IA nécessitant une recherche sémantique ou par similarité.

Afin de voir comment cela marche, voici les différentes étapes que nous allons suivre sur un environnement de test :

Maintenant, il nous reste plus qu’à tester tout cela 😎

Etape 0 – Rappel des prérequis :

Pour réaliser cet exercice, il vous faudra disposer de :

  • Un tenant Microsoft
  • Une souscription Azure valide

Commençons par créer quelques ressources (IA et DB) sur Azure et Entra.

Etape I – Création des ressources Azure :

Connectez-vous au portail Entra Admin Center pour enregistrer une nouvelle application, puis récupérez ensuite l’Application ID et le Tenant ID :

Créez un secret client puis copiez immédiatement sa valeur car elle ne sera plus visible par la suite :

Ouvrez une session Windows PowerShell, puis définissez trois variables d’environnement pour l’App ID, le Directory ID et le Client Secret :

setx AZURE_CLIENT_ID    "xxx"
setx AZURE_TENANT_ID    "yyy"
setx AZURE_CLIENT_SECRET "zzz"

Vérifiez ces variables dans les Propriétés système de Windows, section « Variables d’environnement », afin de confirmer leur bonne configuration :

Créez un service Azure OpenAI depuis le portail Azure, puis ajoutez votre application en tant que « Cognitive Services OpenAI User » dans « Contrôle d’accès (IAM) » :

Revenez à la page principale de votre service Azure OpenAI, puis cliquez sur Ouvrir dans la Fonderie pour accéder à l’interface de déploiement :

Dans la Fonderie, ouvrez l’onglet Déploiements et cliquez sur Nouveau déploiement, puis nommez-le (par ex : gpt-4o) et copiez l’URL de l’endpoint :

Créez une base de données Azure SQL Database avec des données en exemple, puis copiez la chaîne de connexion complète pour la réutiliser plus tard :

Notre environnement Azure est prêt. Nous allons maintenant pouvoir déployer l’application DBChatPro sur notre poste en local.

Etape II – Déploiement et test de l’application DBChatPro :

Accédez au dépôt GitHub de l’application via le lien, puis téléchargez l’archive ZIP sur votre poste :

Extrayez l’archive ZIP, puis placez-vous dans le dossier extrait pour préparer l’ouverture du projet :

Lancez Visual Studio Code, puis cliquez ici pour sélectionner le dossier du projet :

Sélectionnez le dossier extrait contenant le projet, puis validez pour l’ouvrir dans VS Code :

Observez la nouvelle architecture de DBChatPro avec la partie MCP distincte de l’interface graphique, puis passez à la configuration UI :

Commencez par l’interface graphique en renseignant les endpoints de votre choix dans le fichier de configuration, puis sauvegardez vos modifications :

Dans mon cas, j’ai utilisé le modèle Azure OpenAI :

Ouvrez la console intégrée Terminal de VS Code, positionnez-vous dans le dossier racine de l’application, lancez l’application, puis patientez quelques secondes pour que le serveur local démarre :

Copiez l’URL locale générée par l’application, puis ouvrez-la dans votre navigateur préféré :

Dans le navigateur, constatez que la base de données n’est pas encore configurée, puis cliquez sur Connexion :

Collez votre chaîne de connexion SQL en modifiant le mot de passe, puis cliquez sur Check Connection pour tester la liaison :

Vérifiez la découverte automatique du schéma de la base de données, puis cliquez ici pour sauvegarder pour valider l’import :

Dans le terminal, observez également l’import du plan et du schéma de votre base SQL :

Sur la page principale de l’application, sélectionnez le modèle et la plateforme d’IA, puis saisissez votre prompt :

Patientez quelques secondes pour afficher le résultat généré par le modèle :

Consultez l’onglet Insight pour obtenir des informations complémentaires sur la réponse, puis analysez les données fournies :

Sur l’onglet SQL Editor, constatez la transformation de votre requête en SQL :

Observez les résultats sous forme de tableau retournés par la requête SQL :

Accédez à l’historique des requêtes exécutées, puis identifiez celles que vous souhaitez réutiliser :

La fonction Chat vous permet de relancez une seconde requête basée sur les résultats de la première :

Testez cette seconde requête et constatez les résultats :

Au final, on constate que l’interface graphique de DBChatPro ne cesse d’évoluer pour offrir plus de facilité et une meilleure gestion des bases de données.

Passons maintenant à la partie MCP qui nous intéresse également.

Etape III – Déploiement du serveur MCP :

Revenez sur Visual Studio Code dans le programme MCP afin de paramétrer l’endpoint Azure OpenAI :

Collez également votre connexion SQL complète :

Cliquez sur le bouton Démarrer pour lancer le serveur MCP, puis patientez quelques instants :

Vérifiez que le serveur est démarré et affiche l’état Running :

Ouvrez la fenêtre Chat dans Visual Studio Code :

Assurez-vous que vous êtes en mode agent pour l’intelligence artificielle :

Dans la boîte à outils, confirmez que le serveur MCP et ses sous-modules sont actifs, puis refermez le panneau :

Effectuez un test de base pour vérifier que l’IA vous répond :

Lancez un prompt en spécifiant l’utilisation de DBChatPro avec un modèle et une plateforme AI, puis validez l’alerte :

use DbChatPro to get 10 customers from the database using AzureOpenAI and gpt-4o

Constatez que la connexion à la base de données et au modèle a bien fonctionné :

Observez en chat l’input et l’output de la requête :

Visualisez le résultat sous forme de tableau retourné par l’IA :

Lancez un second prompt sans redéfinir les paramètres du modèle, puis constatez que la réponse est tout de même générée :

Effectuez un autre test avec un prompt différent sur la même base :

Observez le résultat structuré cette fois en liste :

Si vous le souhaitez, testez la plateforme IA de GitHub en paramétrant un token d’accès sur cette page, puis copiez-le :

Sur ce token, autorisez l’accès en lecture pour interroger les modèles GitHub Copilot, puis confirmez cette permission :

Renseignez le modèle GitHub dans la configuration MCP et redémarrez le serveur, puis patientez quelques instants :

Relancez un prompt en utilisant le modèle GitHub Copilot comme plateforme IA :

Constatez le retour de résultats :

Envoyez cette fois un prompt combiné, interrogeant le serveur MCP via les deux modèles d’IA, puis constatez la fusion des réponses :

Enfin, découvrez sur sa vidéo, toujours depuis Visual Studio Code, des fonctions de troubleshooting très pratiques :

Conclusion

L’intégration du MCP transforme votre assistant en un véritable pont entre l’IA et le monde réel. Fini les intégrations sur mesure : grâce à ce protocole standard, un modèle peut interagir avec des bases de données, GitHub Copilot ou tout autre outil compatible.

On passe d’une complexité M×N à un système modulaire, extensible et sécurisé.

En adoptant le Model Context Protocol dès aujourd’hui, vous préparez vos solutions à l’IA de demain : une IA connectée, actionnable et interopérable, capable de faire bien plus que répondre, mais également d’interagir.