# 🔧 Module 3 : DĂ©veloppement MCP AvancĂ© avec Microsoft Foundry Toolkit ![DurĂ©e](https://img.shields.io/badge/Duration-20_minutes-blue?style=flat-square) ![Microsoft Foundry Toolkit](https://img.shields.io/badge/Microsoft_Foundry_Toolkit-Required-orange?style=flat-square) ![Python](https://img.shields.io/badge/Python-3.10+-green?style=flat-square) ![MCP SDK](https://img.shields.io/badge/MCP_SDK-1.9.3-purple?style=flat-square) ![Inspector](https://img.shields.io/badge/MCP_Inspector-0.14.0-blue?style=flat-square) ## 🎯 Objectifs d'apprentissage À la fin de ce labo, vous serez capable de : - ✅ CrĂ©er des serveurs MCP personnalisĂ©s avec Microsoft Foundry Toolkit - ✅ Configurer et utiliser le dernier SDK Python MCP (v1.9.3) - ✅ Mettre en place et utiliser MCP Inspector pour le dĂ©bogage - ✅ DĂ©boguer des serveurs MCP dans les environnements Agent Builder et Inspector - ✅ Comprendre les workflows avancĂ©s de dĂ©veloppement serveur MCP ## 📋 PrĂ©requis - Avoir complĂ©tĂ© le Labo 2 (Fondamentaux MCP) - VS Code avec l’extension Microsoft Foundry Toolkit installĂ©e - Environnement Python 3.10+ - Node.js et npm pour la configuration de l’Inspector ## đŸ—ïž Ce que vous allez construire Dans ce labo, vous crĂ©erez un **Serveur MCP MĂ©tĂ©o** qui dĂ©montre : - L’implĂ©mentation d’un serveur MCP personnalisĂ© - L’intĂ©gration avec Microsoft Foundry Toolkit Agent Builder - Des workflows de dĂ©bogage professionnels - L’utilisation moderne du SDK MCP --- ## 🔧 Vue d’ensemble des composants principaux ### 🐍 SDK Python MCP Le SDK Python du protocole Model Context fournit la base pour construire des serveurs MCP personnalisĂ©s. Vous utiliserez la version 1.9.3 avec des capacitĂ©s de dĂ©bogage amĂ©liorĂ©es. ### 🔍 MCP Inspector Un outil puissant de dĂ©bogage qui fournit : - Surveillance en temps rĂ©el du serveur - Visualisation de l’exĂ©cution des outils - Inspection des requĂȘtes/rĂ©ponses rĂ©seau - Environnement de test interactif --- ## 📖 Mise en Ɠuvre Ă©tape par Ă©tape ### Étape 1 : CrĂ©er un WeatherAgent dans Agent Builder 1. **Lancez Agent Builder** dans VS Code via l’extension Microsoft Foundry Toolkit 2. **CrĂ©ez un nouvel agent** avec la configuration suivante : - Nom de l’agent : `WeatherAgent` ![CrĂ©ation d’agent](../../../../translated_images/fr/Agent.c9c33f6a412b4cde.webp) ### Étape 2 : Initialiser le projet MCP Server 1. **Allez dans Outils** → **Ajouter un outil** dans Agent Builder 2. **SĂ©lectionnez "MCP Server"** parmi les options disponibles 3. **Choisissez "CrĂ©er un nouveau MCP Server"** 4. **SĂ©lectionnez le template `python-weather`** 5. **Nommez votre serveur :** `weather_mcp` ![SĂ©lection du template Python](../../../../translated_images/fr/Pythontemplate.9d0a2913c6491500.webp) ### Étape 3 : Ouvrir et examiner le projet 1. **Ouvrez le projet gĂ©nĂ©rĂ©** dans VS Code 2. **Passez en revue la structure du projet :** ``` weather_mcp/ ├── src/ │ ├── __init__.py │ └── server.py ├── inspector/ │ ├── package.json │ └── package-lock.json ├── .vscode/ │ ├── launch.json │ └── tasks.json ├── pyproject.toml └── README.md ``` ### Étape 4 : Mettre Ă  jour vers le dernier SDK MCP > **🔍 Pourquoi mettre Ă  jour ?** Nous souhaitons utiliser le dernier SDK MCP (v1.9.3) et le service Inspector (0.14.0) pour des fonctionnalitĂ©s amĂ©liorĂ©es et un meilleur dĂ©bogage. #### 4a. Mettre Ă  jour les dĂ©pendances Python **Modifiez `pyproject.toml` :** mettez Ă  jour [./code/weather_mcp/pyproject.toml](../../../../10-StreamliningAIWorkflowsBuildingAnMCPServerWithAIToolkit/lab3/code/weather_mcp/pyproject.toml) #### 4b. Mettre Ă  jour la configuration de l’Inspector **Modifiez `inspector/package.json` :** mettez Ă  jour [./code/weather_mcp/inspector/package.json](../../../../10-StreamliningAIWorkflowsBuildingAnMCPServerWithAIToolkit/lab3/code/weather_mcp/inspector/package.json) #### 4c. Mettre Ă  jour les dĂ©pendances de l’Inspector **Modifiez `inspector/package-lock.json` :** mettez Ă  jour [./code/weather_mcp/inspector/package-lock.json](../../../../10-StreamliningAIWorkflowsBuildingAnMCPServerWithAIToolkit/lab3/code/weather_mcp/inspector/package-lock.json) > **📝 Remarque :** Ce fichier contient des dĂ©finitions de dĂ©pendances Ă©tendues. Ci-dessous, la structure essentielle - le contenu complet garantit une rĂ©solution correcte des dĂ©pendances. > **⚡ Package Lock complet :** Le package-lock.json complet contient environ 3000 lignes de dĂ©finitions de dĂ©pendances. Ce qui prĂ©cĂšde montre la structure clĂ© - utilisez le fichier fourni pour une rĂ©solution complĂšte. ### Étape 5 : Configurer le dĂ©bogage dans VS Code *Note : Veuillez copier le fichier dans le chemin spĂ©cifiĂ© pour remplacer le fichier local correspondant* #### 5a. Mettre Ă  jour la configuration de lancement **Modifiez `.vscode/launch.json` :** ```json { "version": "0.2.0", "configurations": [ { "name": "Attach to Local MCP", "type": "debugpy", "request": "attach", "connect": { "host": "localhost", "port": 5678 }, "presentation": { "hidden": true }, "internalConsoleOptions": "neverOpen", "postDebugTask": "Terminate All Tasks" }, { "name": "Launch Inspector (Edge)", "type": "msedge", "request": "launch", "url": "http://localhost:6274?timeout=60000&serverUrl=http://localhost:3001/sse#tools", "cascadeTerminateToConfigurations": [ "Attach to Local MCP" ], "presentation": { "hidden": true }, "internalConsoleOptions": "neverOpen" }, { "name": "Launch Inspector (Chrome)", "type": "chrome", "request": "launch", "url": "http://localhost:6274?timeout=60000&serverUrl=http://localhost:3001/sse#tools", "cascadeTerminateToConfigurations": [ "Attach to Local MCP" ], "presentation": { "hidden": true }, "internalConsoleOptions": "neverOpen" } ], "compounds": [ { "name": "Debug in Agent Builder", "configurations": [ "Attach to Local MCP" ], "preLaunchTask": "Open Agent Builder", }, { "name": "Debug in Inspector (Edge)", "configurations": [ "Launch Inspector (Edge)", "Attach to Local MCP" ], "preLaunchTask": "Start MCP Inspector", "stopAll": true }, { "name": "Debug in Inspector (Chrome)", "configurations": [ "Launch Inspector (Chrome)", "Attach to Local MCP" ], "preLaunchTask": "Start MCP Inspector", "stopAll": true } ] } ``` **Modifiez `.vscode/tasks.json` :** ``` { "version": "2.0.0", "tasks": [ { "label": "Start MCP Server", "type": "shell", "command": "python -m debugpy --listen 127.0.0.1:5678 src/__init__.py sse", "isBackground": true, "options": { "cwd": "${workspaceFolder}", "env": { "PORT": "3001" } }, "problemMatcher": { "pattern": [ { "regexp": "^.*$", "file": 0, "location": 1, "message": 2 } ], "background": { "activeOnStart": true, "beginsPattern": ".*", "endsPattern": "Application startup complete|running" } } }, { "label": "Start MCP Inspector", "type": "shell", "command": "npm run dev:inspector", "isBackground": true, "options": { "cwd": "${workspaceFolder}/inspector", "env": { "CLIENT_PORT": "6274", "SERVER_PORT": "6277", } }, "problemMatcher": { "pattern": [ { "regexp": "^.*$", "file": 0, "location": 1, "message": 2 } ], "background": { "activeOnStart": true, "beginsPattern": "Starting MCP inspector", "endsPattern": "Proxy server listening on port" } }, "dependsOn": [ "Start MCP Server" ] }, { "label": "Open Agent Builder", "type": "shell", "command": "echo ${input:openAgentBuilder}", "presentation": { "reveal": "never" }, "dependsOn": [ "Start MCP Server" ], }, { "label": "Terminate All Tasks", "command": "echo ${input:terminate}", "type": "shell", "problemMatcher": [] } ], "inputs": [ { "id": "openAgentBuilder", "type": "command", "command": "ai-mlstudio.agentBuilder", "args": { "initialMCPs": [ "local-server-weather_mcp" ], "triggeredFrom": "vsc-tasks" } }, { "id": "terminate", "type": "command", "command": "workbench.action.tasks.terminate", "args": "terminateAll" } ] } ``` --- ## 🚀 ExĂ©cution et test de votre serveur MCP ### Étape 6 : Installer les dĂ©pendances AprĂšs avoir fait les modifications de configuration, exĂ©cutez les commandes suivantes : **Installer les dĂ©pendances Python :** ```bash uv sync ``` **Installer les dĂ©pendances de l’Inspector :** ```bash cd inspector npm install ``` ### Étape 7 : DĂ©boguer avec Agent Builder 1. **Appuyez sur F5** ou utilisez la configuration **"Debug in Agent Builder"** 2. **SĂ©lectionnez la configuration composĂ©e** dans le panneau de dĂ©bogage 3. **Attendez que le serveur dĂ©marre** et que Agent Builder s’ouvre 4. **Testez votre serveur MCP mĂ©tĂ©o** avec des requĂȘtes en langage naturel Saisissez une invite comme ceci SYSTEM_PROMPT ``` You are my weather assistant ``` USER_PROMPT ``` How's the weather like in Seattle ``` ![RĂ©sultat du dĂ©bogage dans Agent Builder](../../../../translated_images/fr/Result.6ac570f7d2b1d538.webp) ### Étape 8 : DĂ©boguer avec MCP Inspector 1. **Utilisez la configuration "Debug in Inspector"** (Edge ou Chrome) 2. **Ouvrez l’interface Inspector** Ă  `http://localhost:6274` 3. **Explorez l’environnement de test interactif :** - Visualisez les outils disponibles - Testez l’exĂ©cution des outils - Surveillez les requĂȘtes rĂ©seau - DĂ©boguez les rĂ©ponses du serveur ![Interface MCP Inspector](../../../../translated_images/fr/Inspector.5672415cd02fe873.webp) --- ## 🎯 RĂ©sultats clĂ©s de l’apprentissage En complĂ©tant ce labo, vous avez : - [x] **Créé un serveur MCP personnalisĂ©** en utilisant les templates Microsoft Foundry Toolkit - [x] **Mis Ă  niveau vers le dernier SDK MCP** (v1.9.3) pour des fonctionnalitĂ©s amĂ©liorĂ©es - [x] **ConfigurĂ© des workflows de dĂ©bogage professionnels** pour Agent Builder et Inspector - [x] **Mis en place MCP Inspector** pour des tests interactifs de serveur - [x] **MaĂźtrisĂ© les configurations de dĂ©bogage VS Code** pour le dĂ©veloppement MCP ## 🔧 FonctionnalitĂ©s avancĂ©es explorĂ©es | FonctionnalitĂ© | Description | Cas d’utilisation | |--------------------------------|--------------------------------|---------------------------------| | **SDK Python MCP v1.9.3** | DerniĂšre implĂ©mentation du protocole | DĂ©veloppement serveur moderne | | **MCP Inspector 0.14.0** | Outil de dĂ©bogage interactif | Tests serveur en temps rĂ©el | | **DĂ©bogage VS Code** | Environnement de dĂ©veloppement intĂ©grĂ© | Workflow professionnel de dĂ©bogage | | **IntĂ©gration Agent Builder** | Connexion directe Microsoft Foundry Toolkit | Tests agents de bout en bout | ## 📚 Ressources supplĂ©mentaires - [Documentation MCP Python SDK](https://modelcontextprotocol.io/docs/sdk/python) - [Guide de l’extension Microsoft Foundry Toolkit](https://code.visualstudio.com/docs/ai/ai-toolkit) - [Documentation du dĂ©bogage VS Code](https://code.visualstudio.com/docs/editor/debugging) - [SpĂ©cification Model Context Protocol](https://modelcontextprotocol.io/docs/concepts/architecture) --- **🎉 FĂ©licitations !** Vous avez terminĂ© avec succĂšs le Labo 3 et pouvez dĂ©sormais crĂ©er, dĂ©boguer et dĂ©ployer des serveurs MCP personnalisĂ©s en utilisant des workflows professionnels de dĂ©veloppement. ### 🔜 Poursuivez vers le module suivant PrĂȘt Ă  appliquer vos compĂ©tences MCP dans un workflow de dĂ©veloppement rĂ©el ? Continuez vers **[Module 4 : DĂ©veloppement MCP Pratique - Serveur Clone GitHub PersonnalisĂ©](../lab4/README.md)** oĂč vous allez : - Construire un serveur MCP prĂȘt pour la production qui automatise les opĂ©rations de dĂ©pĂŽt GitHub - ImplĂ©menter la fonctionnalitĂ© de clonage de dĂ©pĂŽt GitHub via MCP - IntĂ©grer des serveurs MCP personnalisĂ©s avec VS Code et GitHub Copilot Agent Mode - Tester et dĂ©ployer des serveurs MCP personnalisĂ©s en environnement de production - Apprendre l’automatisation pratique des workflows pour dĂ©veloppeurs --- **Avertissement** : Ce document a Ă©tĂ© traduit Ă  l'aide du service de traduction automatique [Co-op Translator](https://github.com/Azure/co-op-translator). Bien que nous nous efforçions d'assurer l'exactitude, veuillez noter que les traductions automatisĂ©es peuvent contenir des erreurs ou des inexactitudes. Le document original dans sa langue native doit ĂȘtre considĂ©rĂ© comme la source faisant autoritĂ©. Pour les informations critiques, il est recommandĂ© de recourir Ă  une traduction professionnelle rĂ©alisĂ©e par un humain. Nous ne saurions ĂȘtre tenus responsables des malentendus ou erreurs d'interprĂ©tation dĂ©coulant de l'utilisation de cette traduction.