# 🐙 Module 4 : DĂ©veloppement Pratique MCP - Serveur de Clone GitHub PersonnalisĂ© ![Duration](https://img.shields.io/badge/Duration-30_minutes-blue?style=flat-square) ![Difficulty](https://img.shields.io/badge/Difficulty-Intermediate-orange?style=flat-square) ![MCP](https://img.shields.io/badge/MCP-Custom%20Server-purple?style=flat-square&logo=github) ![VS Code](https://img.shields.io/badge/VS%20Code-Integration-blue?style=flat-square&logo=visualstudiocode) ![GitHub Copilot](https://img.shields.io/badge/GitHub%20Copilot-Agent%20Mode-green?style=flat-square&logo=github) > **⚡ DĂ©marrage rapide :** Construisez un serveur MCP prĂȘt pour la production qui automatise le clonage des dĂ©pĂŽts GitHub et l’intĂ©gration VS Code en seulement 30 minutes ! ## 🎯 Objectifs d’apprentissage À la fin de ce laboratoire, vous serez capable de : - ✅ CrĂ©er un serveur MCP personnalisĂ© pour des workflows de dĂ©veloppement rĂ©els - ✅ ImplĂ©menter la fonctionnalitĂ© de clonage de dĂ©pĂŽts GitHub via MCP - ✅ IntĂ©grer des serveurs MCP personnalisĂ©s avec VS Code et Agent Builder - ✅ Utiliser GitHub Copilot en mode Agent avec des outils MCP personnalisĂ©s - ✅ Tester et dĂ©ployer des serveurs MCP personnalisĂ©s en environnement de production ## 📋 PrĂ©requis - Avoir complĂ©tĂ© les laboratoires 1 Ă  3 (fondamentaux MCP et dĂ©veloppement avancĂ©) - Abonnement Ă  GitHub Copilot ([inscription gratuite disponible](https://github.com/github-copilot/signup)) - VS Code avec les extensions Microsoft Foundry Toolkit et GitHub Copilot installĂ©es - Git CLI installĂ© et configurĂ© ## đŸ—ïž PrĂ©sentation du projet ### **DĂ©fi de dĂ©veloppement rĂ©el** En tant que dĂ©veloppeurs, nous utilisons frĂ©quemment GitHub pour cloner des dĂ©pĂŽts et les ouvrir dans VS Code ou VS Code Insiders. Ce processus manuel implique : 1. Ouvrir un terminal ou invite de commandes 2. Naviguer vers le rĂ©pertoire dĂ©sirĂ© 3. ExĂ©cuter la commande `git clone` 4. Ouvrir VS Code dans le rĂ©pertoire clonĂ© **Notre solution MCP rationalise tout cela en une seule commande intelligente !** ### **Ce que vous allez construire** Un **serveur MCP de clonage GitHub** (`git_mcp_server`) qui offre : | FonctionnalitĂ© | Description | Avantage | |----------------|-------------|----------| | 🔄 **Clonage intelligent de dĂ©pĂŽts** | Cloner les dĂ©pĂŽts GitHub avec validation | VĂ©rification d’erreurs automatisĂ©e | | 📁 **Gestion intelligente des rĂ©pertoires** | VĂ©rifier et crĂ©er les rĂ©pertoires en toute sĂ©curitĂ© | Évite l’écrasement | | 🚀 **IntĂ©gration multiplateforme VS Code** | Ouvrir les projets dans VS Code/Insiders | Transition fluide dans le workflow | | đŸ›Ąïž **Gestion robuste des erreurs** | GĂ©rer les problĂšmes rĂ©seau, permissions, et chemins | FiabilitĂ© prĂȘte pour la production | --- ## 📖 ImplĂ©mentation Ă©tape par Ă©tape ### Étape 1 : CrĂ©er un agent GitHub dans Agent Builder 1. **Lancez Agent Builder** via l’extension Microsoft Foundry Toolkit 2. **CrĂ©ez un nouvel agent** avec la configuration suivante : ``` Agent Name: GitHubAgent ``` 3. **Initialisez le serveur MCP personnalisĂ© :** - Allez dans **Outils** → **Ajouter un outil** → **Serveur MCP** - SĂ©lectionnez **"CrĂ©er un nouveau serveur MCP"** - Choisissez le **modĂšle Python** pour une flexibilitĂ© maximale - **Nom du serveur :** `git_mcp_server` ### Étape 2 : Configurer GitHub Copilot en mode Agent 1. **Ouvrez GitHub Copilot** dans VS Code (Ctrl/Cmd + Maj + P → "GitHub Copilot : Ouvrir") 2. **SĂ©lectionnez le modĂšle Agent** dans l’interface Copilot 3. **Choisissez le modĂšle Claude 3.7** pour des capacitĂ©s de raisonnement avancĂ©es 4. **Activez l’intĂ©gration MCP** pour accĂ©der aux outils > **💡 Astuce de pro :** Claude 3.7 offre une comprĂ©hension supĂ©rieure des workflows de dĂ©veloppement et des modĂšles de gestion d’erreurs. ### Étape 3 : ImplĂ©menter les fonctionnalitĂ©s principales du serveur MCP **Utilisez la consigne dĂ©taillĂ©e suivante avec GitHub Copilot en mode Agent :** ``` Create two MCP tools with the following comprehensive requirements: 🔧 TOOL A: clone_repository Requirements: - Clone any GitHub repository to a specified local folder - Return the absolute path of the successfully cloned project - Implement comprehensive validation: ✓ Check if target directory already exists (return error if exists) ✓ Validate GitHub URL format (https://github.com/user/repo) ✓ Verify git command availability (prompt installation if missing) ✓ Handle network connectivity issues ✓ Provide clear error messages for all failure scenarios 🚀 TOOL B: open_in_vscode Requirements: - Open specified folder in VS Code or VS Code Insiders - Cross-platform compatibility (Windows/Linux/macOS) - Use direct application launch (not terminal commands) - Auto-detect available VS Code installations - Handle cases where VS Code is not installed - Provide user-friendly error messages Additional Requirements: - Follow MCP 1.9.3 best practices - Include proper type hints and documentation - Implement logging for debugging purposes - Add input validation for all parameters - Include comprehensive error handling ``` ### Étape 4 : Tester votre serveur MCP #### 4a. Tester dans Agent Builder 1. **Lancez la configuration de dĂ©bogage** dans Agent Builder 2. **Configurez votre agent avec cette consigne systĂšme :** ``` SYSTEM_PROMPT: You are my intelligent coding repository assistant. You help developers efficiently clone GitHub repositories and set up their development environment. Always provide clear feedback about operations and handle errors gracefully. ``` 3. **Testez avec des scĂ©narios utilisateurs rĂ©alistes :** ``` USER_PROMPT EXAMPLES: Scenario : Basic Clone and Open "Clone {Your GitHub Repo link such as https://github.com/kinfey/GHCAgentWorkshop } and save to {The global path you specify}, then open it with VS Code Insiders" ``` ![Agent Builder Testing](../../../../translated_images/fr/DebugAgent.81d152370c503241.webp) **RĂ©sultats attendus :** - ✅ Clonage rĂ©ussi avec confirmation du chemin - ✅ Lancement automatique de VS Code - ✅ Messages d’erreur clairs pour les scĂ©narios invalides - ✅ Gestion correcte des cas limites #### 4b. Tester dans MCP Inspector ![MCP Inspector Testing](../../../../translated_images/fr/DebugInspector.eb5c95f94c69a8ba.webp) --- **🎉 FĂ©licitations !** Vous avez créé avec succĂšs un serveur MCP pratique et prĂȘt pour la production qui rĂ©sout de rĂ©els problĂšmes de workflow de dĂ©veloppement. Votre serveur de clonage GitHub personnalisĂ© dĂ©montre la puissance de MCP pour automatiser et amĂ©liorer la productivitĂ© des dĂ©veloppeurs. ### 🏆 SuccĂšs dĂ©bloquĂ© : - ✅ **DĂ©veloppeur MCP** - CrĂ©ation d’un serveur MCP personnalisĂ© - ✅ **Automatisation des workflows** - Simplification des processus de dĂ©veloppement - ✅ **Expert en intĂ©gration** - Connexion de multiples outils de dĂ©veloppement - ✅ **PrĂȘt pour la production** - Solutions prĂȘtes au dĂ©ploiement --- ## 🎓 Fin du workshop : Votre parcours avec le Model Context Protocol **Cher participant au workshop,** FĂ©licitations pour avoir complĂ©tĂ© les quatre modules du workshop Model Context Protocol ! Vous avez parcouru un long chemin, depuis la comprĂ©hension des concepts fondamentaux de Microsoft Foundry Toolkit jusqu’à la crĂ©ation de serveurs MCP prĂȘts pour la production qui rĂ©pondent Ă  des dĂ©fis rĂ©els de dĂ©veloppement. ### 🚀 RĂ©capitulatif de votre parcours d’apprentissage : **[Module 1](../lab1/README.md)** : Vous avez dĂ©butĂ© par l’exploration des fondamentaux de Microsoft Foundry Toolkit, les tests de modĂšles, et la crĂ©ation de votre premier agent IA. **[Module 2](../lab2/README.md)** : Vous avez appris l’architecture MCP, intĂ©grĂ© Playwright MCP, et construit votre premier agent d’automatisation de navigateur. **[Module 3](../lab3/README.md)** : Vous ĂȘtes passĂ© au dĂ©veloppement de serveurs MCP personnalisĂ©s avec le serveur mĂ©tĂ©o MCP et maĂźtrisĂ© les outils de dĂ©bogage. **[Module 4](../lab4/README.md)** : Vous avez maintenant appliquĂ© tout cela pour crĂ©er un outil d’automatisation pratique du workflow de dĂ©pĂŽt GitHub. ### 🌟 Ce que vous avez maĂźtrisĂ© : - ✅ **ÉcosystĂšme Microsoft Foundry Toolkit** : ModĂšles, agents, et modĂšles d’intĂ©gration - ✅ **Architecture MCP** : Architecture client-serveur, protocoles de transport, et sĂ©curitĂ© - ✅ **Outils dĂ©veloppeurs** : De Playground Ă  Inspector jusqu’au dĂ©ploiement en production - ✅ **DĂ©veloppement personnalisĂ©** : Construction, test, et dĂ©ploiement de vos propres serveurs MCP - ✅ **Applications pratiques** : RĂ©solution de dĂ©fis rĂ©els de workflow avec l’IA ### 🔼 Vos prochaines Ă©tapes : 1. **Construisez votre propre serveur MCP :** Appliquez ces compĂ©tences pour automatiser vos workflows uniques 2. **Rejoignez la communautĂ© MCP :** Partagez vos crĂ©ations et apprenez des autres 3. **Explorez l’intĂ©gration avancĂ©e :** Connectez les serveurs MCP aux systĂšmes d’entreprise 4. **Contribuez Ă  l’open source :** Aidez Ă  amĂ©liorer les outils et la documentation MCP Rappelez-vous, ce workshop n’est que le dĂ©but. L’écosystĂšme Model Context Protocol Ă©volue rapidement, et vous ĂȘtes maintenant Ă©quipĂ© pour ĂȘtre Ă  la pointe des outils de dĂ©veloppement propulsĂ©s par l’IA. **Merci pour votre participation et votre engagement Ă  apprendre !** Nous espĂ©rons que ce workshop a suscitĂ© des idĂ©es qui transformeront votre façon de construire et d’interagir avec les outils IA dans votre parcours de dĂ©veloppement. **Bon codage !** --- ## Quelle est la suite FĂ©licitations pour avoir terminĂ© tous les laboratoires du Module 10 ! - Retour Ă  : [Aperçu du Module 10](../README.md) - Continuer vers : [Module 11 : Laboratoires pratiques MCP Server](../../11-MCPServerHandsOnLabs/README.md) --- **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.