
Un serveur de débogage MCP pour exécutables Windows (x86 et x64). Expose les fonctionnalités de débogage en tant qu'outils MCP pour l'analyse statique/dynamique du débogué et l'inspection de la mémoire via une interface propre.
Ce projet est un serveur de débogage MCP léger et fait maison, développé pour l'apprentissage et l'expérimentation. Le serveur de débogage MCP expose les fonctionnalités du débogueur sous forme d'outils MCP, permettant à des clients MCP externes de contrôler l'exécution, d'inspecter la mémoire et d'analyser le débogué via une interface propre.
Le débogueur est écrit en C++ et implémente les fonctionnalités de débogage de base à partir de zéro, sans s'appuyer sur des frameworks de débogage existants. Pour le décodage des instructions, le désassembleur Zydis est utilisé. Le débogueur est intégré à un serveur MCP écrit en C#, construit à l'aide du SDK MCP C# officiel.
Mots-clés :
Serveur MCP, débogueur, désassembleur, analyse statique, analyse dynamique, débogage, IA, EXE, exécutable, Windows

Gemini CLI a été utilisé comme client MCP dans la démo
Ce guide fournit un processus étape par étape pour compiler et intégrer dans Visual Studio Code sur .
Avant de configurer VS Code, vous devez compiler le serveur MCP :
MCPDebugger.sln dans Visual Studio.MCP.Server.exe existe dans votre sous-dossier \build\Release\x86 ou \build\Release\x64.Assurez-vous que les extensions suivantes sont installées et actives dans VS Code :
Ctrl + Shift + P pour ouvrir la palette de commandes.> et sélectionnez "Ajouter un serveur MCP".commande (stdio) comme type de serveur.Entrez le chemin complet vers MCP.Server.exe que vous avez compilé à l'étape 1.
[!ATTENTION] Une seule **architecture (x86 ou x64) doit être active en tant que serveur MCP à la fois. Si vous changez d'architecture, supprimez d'abord l'entrée du serveur précédent.
| Architecture | Exemple de chemin à saisir |
|---|---|
| Windows x64 | C:\VotreProjet\bin\x64\MCP.Server.exe |
| Windows x86 | C:\VotreProjet\bin\x86\MCP.Server.exe |
Ctrl + Alt + I), passez en Mode Agent et cliquez sur l'icône Outils. Vos outils MCP devraient maintenant apparaître et être prêts à l'emploi. Les outils MCP peuvent être activés/désactivés ici.

Pour les tâches complexes de débogage et de rétro-ingénierie utilisant ce débogueur MCP, Claude Opus 4.5 a donné de loin les meilleurs résultats en date de novembre 2025. Il a systématiquement géré les grandes traces d'exécution, le désassemblage détaillé et le raisonnement en plusieurs étapes de manière plus fiable que les autres modèles testés.
ChatGPT 4.1 et Gemini 2.5 Pro étaient suffisants pour des scénarios d'analyse plus simples, comme le pas à pas basique, l'inspection d'instructions et le raisonnement simple sur le flux de contrôle. Ces modèles ont bien fonctionné pour les exemples fournis dans les dossiers Example_x64 et Example_x86, mais ont montré des limites lorsqu'il s'agissait de sessions de débogage plus complexes ou de longue durée.
Les performances des modèles peuvent changer avec le temps, mais ce qui précède reflète le comportement observé au moment des tests.
Le débogage via MCP peut entraîner une utilisation élevée de tokens et des coûts accrus. Les interactions IA sont sans état, ce qui signifie que tout le contexte de débogage pertinent (registres, mémoire, désassemblage, modules, etc.) doit être transféré à plusieurs reprises avec chaque requête.
Les opérations qui arrêtent fréquemment l'exécution et renvoient un état détaillé – comme le pas à pas et les points d'arrêt temporaires – peuvent considérablement amplifier la consommation de tokens.
Si un faible coût de fonctionnement est nécessaire, il est fortement recommandé de se concentrer sur l'analyse statique et de désactiver les outils MCP suivants :
La désactivation de ces outils réduit la quantité de transfert d'état répété et aide à maîtriser l'utilisation des tokens.
Le dépôt inclut des projets d'exemple pour aider à démarrer avec l'analyse statique et le débogage, situés dans les dossiers suivants :
Example_x64 et Example_x86
Les projets Example_x64 et Example_x86 fournissent une simple application console utilisée comme cible de débogage d'introduction. L'application invite l'utilisateur à saisir un mot de passe lors de l'exécution. Le mot de passe correct pour les deux exemples est secret.
MCP_Debugging_Sessions
Un dossier contenant des sessions de débogage plus complexes qui exploitent l'analyse dynamique et le débogage. Dans ces sessions, Claude Opus 4.5 a été utilisé. Les cibles peuvent être téléchargées ici. Veuillez noter que les cibles ont été décompressées avec UPX -d avant d'utiliser le débogueur MCP.
Le serveur MCP expose les outils suivants pour interagir avec le débogueur :
Debugger_Start
Démarre le débogueur pour l'exécutable spécifié et s'arrête sur le point d'arrêt système initial.
Debugger_Stop
Arrête le débogueur et termine le processus débogué.
Debugger_Continue
Reprend l'exécution lorsque le débogué est arrêté sur un point d'arrêt.
Debugger_ContinueToEntryPoint
Reprend l'exécution depuis le point d'arrêt système jusqu'au point d'entrée du programme.
Debugger_ContinueToBreakpoint
Reprend l'exécution jusqu'à ce qu'un point d'arrêt temporaire à une adresse virtuelle spécifiée soit atteint.
Debugger_ContinueToApiBreakpoint
Reprend l'exécution jusqu'à ce qu'un point d'arrêt temporaire sur une fonction API spécifiée soit atteint.
Debugger_StepInto
Exécute pas à pas l'instruction suivante en entrant dans les appels de fonction.
Debugger_StepOver
Passe au-dessus des appels de fonction et continue jusqu'à l'instruction suivante.
Debugger_Disassemble
Désassemble la mémoire à une adresse virtuelle donnée et retourne les instructions incluant les informations de symbole.
Debugger_TryResolveString
Tente de résoudre et de lire une chaîne à partir de la mémoire du débogué.
Debugger_ReadMemory
Lit les octets bruts de la mémoire du processus débogué.
Debugger_WriteMemory
Écrit des octets arbitraires dans la mémoire du débogué.
Debugger_GetModules
Retourne une liste des modules actuellement chargés pour le processus débogué.
Debugger_GetModuleImports
Retourne les fonctions importées d'un module spécifié.
Debugger_GetModuleExports
Retourne les fonctions exportées d'un module spécifié.
Debugger_GetModuleSections
Retourne les informations de section d'un module spécifié.
La solution Visual Studio est organisée en projets suivants :
MCP.Debugger
Le débogueur principal implémenté en C++. Il inclut un pont C++/CLI pour exposer une interface managée aux clients .NET.
MCP.Debugger.Tester
Une simple application WinForms utilisée pour tester le débogueur via l'interface .NET managée.
MCP.Debugger.Types
Un assembly de types qui définit les structures et types de données partagés pour les transitions managées/natives entre le débogueur et les clients .NET.
MCP.Server
Le serveur MCP en C# qui expose les fonctionnalités du débogueur sous forme d'outils MCP pour les clients externes.