
Un server debugger MCP per eseguibili Windows (x86 e x64). Espone funzionalità di debug come strumenti MCP per l'analisi statica/dinamica del processo debugged e l'ispezione della memoria tramite un'interfaccia pulita.
Questo progetto è un MCP Debugger Server leggero e fatto in casa, sviluppato per apprendimento e sperimentazione. Il MCP Debugger Server espone funzionalità di debug come strumenti MCP, consentendo a client MCP esterni di controllare l'esecuzione, ispezionare la memoria e analizzare il debuggee tramite un'interfaccia pulita.
Il debugger è scritto in C++ e implementa funzionalità di debug fondamentali da zero, senza basarsi su framework di debug esistenti. Per la decodifica delle istruzioni viene utilizzato il disassemblatore Zydis. Il debugger è integrato con un server MCP scritto in C#, costruito utilizzando l'SDK ufficiale MCP C#.
Parole chiave:
MCP server, debugger, disassembler, static analysis, dynamic analysis, debugging, AI, EXE, executable, Windows

Gemini CLI è stato usato come client MCP nella demo
Questa guida fornisce un processo passo-passo per compilare e integrare in Visual Studio Code su .
Prima di configurare VS Code, è necessario compilare il server MCP:
MCPDebugger.sln in Visual Studio.MCP.Server.exe esista nella sottocartella \build\Release\x86 o \build\Release\x64.Assicurarsi che le seguenti estensioni siano installate e attive in VS Code:
Ctrl + Shift + P per aprire il pannello comandi.> e selezionare "Add MCP Server".command (stdio) come tipo di server.Inserire il percorso completo di MCP.Server.exe compilato nel passaggio 1.
[!CAUTION] Solo una architettura (x86 o x64) dovrebbe essere attiva come server MCP alla volta. Se si cambia architettura, rimuovere prima la voce del server precedente.
| Architettura | Esempio di percorso da inserire |
|---|---|
| Windows x64 | C:\YourProject\bin\x64\MCP.Server.exe |
| Windows x86 | C:\YourProject\bin\x86\MCP.Server.exe |
Ctrl + Alt + I), passare alla Modalità Agente, e fare clic sull'icona Strumenti. I tuoi strumenti MCP dovrebbero ora essere elencati e pronti per l'uso. Gli strumenti MCP possono essere attivati/disattivati qui.

Per attività complesse di debug e reverse-engineering che utilizzano questo debugger MCP, Claude Opus 4.5 ha fornito di gran lunga i migliori risultati a partire da novembre 2025. Ha gestito in modo costante grandi tracce di esecuzione, disassemblaggio dettagliato e ragionamento multi-step in modo più affidabile rispetto ad altri modelli testati.
ChatGPT 4.1 e Gemini 2.5 Pro sono stati sufficienti per scenari di analisi più semplici, come lo stepping di base, l'ispezione delle istruzioni e il ragionamento semplice sul flusso di controllo. Questi modelli hanno funzionato bene per gli esempi forniti nelle cartelle Example_x64 e Example_x86, ma hanno mostrato limitazioni quando si trattava di sessioni di debug più complesse o di lunga durata.
Le prestazioni del modello possono cambiare nel tempo, ma quanto sopra riflette il comportamento osservato al momento del test.
Il debug tramite MCP può comportare un elevato utilizzo di token e costi maggiori. Le interazioni AI sono senza stato, il che significa che tutto il contesto di debug rilevante (registri, memoria, disassemblaggio, moduli, ecc.) deve essere trasferito ripetutamente con ogni richiesta.
Le operazioni che interrompono frequentemente l'esecuzione e restituiscono uno stato dettagliato, come lo stepping e i punti di interruzione temporanei, possono amplificare significativamente il consumo di token.
Se è richiesto un funzionamento a basso costo, si consiglia vivamente di concentrarsi sull'analisi statica e disabilitare i seguenti strumenti MCP:
Disabilitare questi strumenti riduce la quantità di trasferimento di stato ripetuto e aiuta a tenere sotto controllo l'utilizzo dei token.
Il repository include progetti di esempio per iniziare con l'analisi statica e il debug e si trovano nelle seguenti cartelle:
Example_x64 e Example_x86
I progetti Example_x64 e Example_x86 forniscono una semplice applicazione console utilizzata come bersaglio di debug introduttivo. L'applicazione richiede all'utente di inserire una password durante l'esecuzione. La password corretta per entrambi gli esempi è secret.
MCP_Debugging_Sessions
Una cartella contenente sessioni di debug più complesse che sfruttano l'analisi dinamica e il debug. In queste sessioni è stato utilizzato Claude Opus 4.5. I target possono essere scaricati qui. Si noti che i target sono stati decompressi utilizzando UPX -d prima di utilizzare il debugger MCP.
Il server MCP espone i seguenti strumenti per interagire con il debugger:
Debugger_Start
Avvia il debugger per l'eseguibile specificato e si ferma al breakpoint di sistema iniziale.
Debugger_Stop
Arresta il debugger e termina il processo debuggee.
Debugger_Continue
Continua l'esecuzione quando il debuggee è fermo a un breakpoint.
Debugger_ContinueToEntryPoint
Continua l'esecuzione dal breakpoint di sistema al punto di ingresso del programma.
Debugger_ContinueToBreakpoint
Continua l'esecuzione fino al raggiungimento di un breakpoint temporaneo a un indirizzo virtuale specificato.
Debugger_ContinueToApiBreakpoint
Continua l'esecuzione fino al raggiungimento di un breakpoint temporaneo su una funzione API specificata.
Debugger_StepInto
Esegue un passo all'interno dell'istruzione successiva, entrando nelle chiamate di funzione.
Debugger_StepOver
Esegue un passo oltre le chiamate di funzione e continua alla prossima istruzione.
Debugger_Disassemble
Disassembla la memoria a un dato indirizzo virtuale e restituisce le istruzioni, incluse le informazioni sui simboli.
Debugger_TryResolveString
Tenta di risolvere e leggere una stringa dalla memoria del debuggee.
Debugger_ReadMemory
Legge byte di memoria raw dal processo debuggee.
Debugger_WriteMemory
Scrive byte arbitrari nella memoria del debuggee.
Debugger_GetModules
Restituisce una lista dei moduli attualmente caricati per il processo debuggee.
Debugger_GetModuleImports
Restituisce le funzioni importate di un modulo specificato.
Debugger_GetModuleExports
Restituisce le funzioni esportate di un modulo specificato.
Debugger_GetModuleSections
Restituisce le informazioni sulle sezioni di un modulo specificato.
La soluzione Visual Studio è organizzata nei seguenti progetti:
MCP.Debugger
Il debugger principale implementato in C++. Include un bridge C++/CLI per esporre un'interfaccia gestita per client .NET.
MCP.Debugger.Tester
Una semplice applicazione WinForms utilizzata per testare il debugger tramite l'interfaccia .NET gestita.
MCP.Debugger.Types
Un assembly di tipi che definisce strutture e tipi di dati condivisi per le transizioni gestite-native tra il debugger e i client .NET.
MCP.Server
Il server MCP in C# che espone le funzionalità del debugger come strumenti MCP per client esterni.