Skip to main content
Glama
primax79

VSCode Debug MCP

by primax79

VSCode Debug MCP

Eine VS Code-Erweiterung und CLI, die das Debug Adapter Protocol (DAP) von VS Code als MCP-Tools bereitstellen, sodass ein KI-Codierungsagent Breakpoints setzen, durch Code schreiten, Variablen inspizieren und Ausnahmen in einer echten Debug-Sitzung lesen kann.

Danksagungen

Dieses Projekt ist eine vollständige Neufassung, die als Analyse eines und inspiriert von mcp-debug-tools von Hwanyong Yoo begann. Es wurde kein Quellcode wörtlich kopiert (abgesehen von einigen kleinen, funktional trivialen Hilfsdateien); die VS Code- Integrationspunkte (Aktivierung, Befehle, Beiträge) und der CLI/Erkennungsansatz wurden als Referenz verwendet, während die DAP-Verfolgung, Sitzungsverwaltung und Serversicherheit von Grund auf neu gestaltet wurden. Lizenziert unter GPL-3.0, wie das Original.

Related MCP server: Debug-MCP

Warum eine Neufassung

Eine Analyse des ursprünglichen Tools ergab mehrere Probleme, die es nicht wert waren, punktuell repariert zu werden:

  • DAP-Nachrichtenverfolgung war ein Stub, der immer vorgefertigte Platzhalter für get-dap-log, get-debug-console und get-exception-info zurückgab - niemals echte Daten.

  • Eine einzelne gemeinsam genutzte McpServer-Instanz bearbeitete jede Client-Sitzung, was dazu führte, dass eine zweite gleichzeitige Verbindung auf unbestimmte Zeit hängen blieb.

  • Der HTTP-Server hatte keine Authentifizierung und deaktivierte den DNS-Rebinding-Schutz.

  • logMessage (Logpoints) wurde akzeptiert, aber nie tatsächlich angewendet.

  • Das Stoppen/Neustarten des Servers per Befehl ließ die Konfigurationsdatei auf der Festplatte auf einen veralteten Port verweisen.

  • Zwei package.json-Dateien wurden vor jedem Build ausgetauscht, was dazu führte, dass eine erforderliche Laufzeitabhängigkeit in jeder veröffentlichten Version nicht deklariert war.

All diese Probleme sind hier behoben; siehe CHANGELOG.md für die Liste.

Entwicklung

npm install
npm run build       # esbuild -> out/extension.js, out/cli.js
npm run typecheck    # tsc --noEmit
npm run lint

Führen Sie die Erweiterung aus: Öffnen Sie diesen Ordner in VS Code und drücken Sie F5 (Extension Development Host).

Führen Sie die CLI eigenständig aus: node out/cli.js <command> [args] - siehe resources/skills/dap-cli-debugging.md für die vollständige Befehls-/Tool-Referenz.

Verpackung & Installation

Um ein installierbares .vsix-Paket für VS Code zu erstellen:

npx @vscode/vsce package

Dadurch wird eine Datei vscode-mcp-dap-debugger-X.Y.Z.vsix im Repository-Stammverzeichnis generiert. Sie können es in VS Code über die Benutzeroberfläche installieren (Erweiterungen -> ... -> Install from VSIX...) oder über die Befehlszeile:

code --install-extension vscode-mcp-dap-debugger-*.vsix

Sicherheitsmodell

Der HTTP-Server bindet nur an 127.0.0.1, behält den DNS-Rebinding-Schutz aktiviert und erfordert einen pro-Instanz-Authentifizierungstoken (beim Start generiert, in die .vscode-mcp-dap-debugger/config.json des Arbeitsbereichs und in ~/.vscode-mcp-dap-debugger/active-configs.json geschrieben) bei jeder Anfrage. Die CLI findet den Token auf die gleiche Weise wie sie den Port findet. Dies ist nicht als starke Authentifizierung gedacht - es ist eine Barriere gegen einen anderen lokalen Prozess oder Benutzer, der auf den Port stößt und den Debugger steuert (einschließlich der Ausführung beliebiger Ausdrücke über evaluate-expression), ohne zuvor Dateisystemzugriff auf diesen Arbeitsbereich gehabt zu haben.

Related MCP Connectors

Related MCP Servers