
MCP-сервер отладчика для исполняемых файлов Windows (x86 и x64). Предоставляет функциональность отладчика в виде MCP Tools для статического / динамического анализа отлаживаемой программы и инспекции памяти через чистый интерфейс.
Этот проект — самодельный легковесный MCP Debugger Server, разработанный для обучения и экспериментов. MCP Debugger Server предоставляет функциональность отладчика в виде MCP-инструментов, позволяя внешним MCP-клиентам управлять выполнением, инспектировать память и анализировать отлаживаемую программу через чистый интерфейс.
Отладчик написан на C++ и реализует основную функциональность отладки с нуля, не полагаясь на существующие отладочные фреймворки. Для декодирования инструкций используется дизассемблер Zydis. Отладчик интегрирован с MCP-сервером, написанным на C# и созданным на базе официального MCP C# SDK.
Ключевые слова:
MCP-сервер, отладчик, дизассемблер, статический анализ, динамический анализ, отладка, ИИ, EXE, исполняемый файл, Windows

Gemini CLI использовался в качестве MCP-клиента в демонстрации
В этом руководстве описан пошаговый процесс сборки и интеграции MCP.Server.exe в Visual Studio Code на Windows.
Перед настройкой VS Code необходимо скомпилировать MCP-сервер:
MCPDebugger.sln в Visual Studio.MCP.Server.exe существует в вашей подпапке \build\Release\x86 или \build\Release\x64.Убедитесь, что следующие расширения установлены и активны в VS Code:
Ctrl + Shift + P, чтобы открыть палитру команд.> и выберите «Add MCP Server».command (stdio) в качестве типа сервера.Введите полный путь к MCP.Server.exe, который вы собрали на шаге 1.
[!CAUTION] Одновременно в качестве MCP-сервера должна быть активна только одна архитектура (x86 или x64). Если вы переключаете архитектуру, сначала удалите предыдущую запись сервера.
| Архитектура | Пример пути для ввода |
|---|---|
| Windows x64 | C:\YourProject\bin\x64\MCP.Server.exe |
| Windows x86 | C:\YourProject\bin\x86\MCP.Server.exe |
Ctrl + Alt + I), переключитесь в Agent Mode и нажмите на значок Tools. Ваши MCP-инструменты теперь должны быть в списке и готовы к использованию. Здесь можно включать / отключать MCP-инструменты.

Для сложных задач отладки и реверс-инжиниринга с использованием этого MCP-отладчика Claude Opus 4.5 показал, безусловно, лучшие результаты по состоянию на ноябрь 2025 года. Он стабильно и более надёжно, чем другие протестированные модели, справлялся с большими трассами выполнения, детальным дизассемблированием и многошаговыми рассуждениями.
ChatGPT 4.1 и Gemini 2.5 Pro были достаточны для более простых сценариев анализа, таких как базовое пошаговое выполнение, просмотр инструкций и несложные рассуждения о потоке управления. Эти модели хорошо справлялись с примерами из папок Example_x64 и Example_x86, но показали ограничения при работе с более сложными или длительными сеансами отладки.
Производительность моделей может меняться со временем, но приведённое выше отражает наблюдаемое поведение на момент тестирования.
Отладка через MCP может привести к высокому расходу токенов и повышенным затратам. Взаимодействия с ИИ не сохраняют состояние, а это означает, что весь соответствующий контекст отладки (регистры, память, дизассемблированный код, модули и т.д.) должен передаваться повторно с каждым запросом.
Операции, которые часто останавливают выполнение и возвращают детальное состояние — такие как пошаговое выполнение и временные точки останова, — могут значительно увеличить расход токенов.
Если требуется низкая стоимость эксплуатации, настоятельно рекомендуется сосредоточиться на статическом анализе и отключить следующие MCP-инструменты:
Отключение этих инструментов уменьшает объём повторной передачи состояния и помогает держать расход токенов под контролем.
Репозиторий включает примеры проектов, которые помогут начать работу со статическим анализом и отладкой; они находятся в следующих папках:
Example_x64 и Example_x86
Проекты Example_x64 и Example_x86 представляют собой простое консольное приложение, используемое в качестве начальной цели для отладки. Приложение запрашивает у пользователя пароль во время выполнения. Правильный пароль для обоих примеров — secret.
MCP_Debugging_Sessions
Папка, содержащая более сложные сеансы отладки, в которых используются динамический анализ и отладка. В этих сеансах использовался Claude Opus 4.5. Цели можно загрузить здесь. Обратите внимание, что перед использованием MCP-отладчика цели были распакованы с помощью UPX -d.
MCP-сервер предоставляет следующие инструменты для взаимодействия с отладчиком:
Debugger_Start
Запускает отладчик для указанного исполняемого файла и останавливается на начальной системной точке останова.
Debugger_Stop
Останавливает отладчик и завершает процесс отлаживаемой программы.
Debugger_Continue
Продолжает выполнение, когда отлаживаемая программа остановлена на точке останова.
Debugger_ContinueToEntryPoint
Продолжает выполнение от системной точки останова до точки входа в программу.
Debugger_ContinueToBreakpoint
Продолжает выполнение до достижения временной точки останова по указанному виртуальному адресу.
Debugger_ContinueToApiBreakpoint
Продолжает выполнение до достижения временной точки останова на указанной API-функции.
Debugger_StepInto
Выполняет шаг с заходом в следующую инструкцию, входя в вызовы функций.
Debugger_StepOver
Выполняет шаг с обходом вызовов функций и переходит к следующей инструкции.
Debugger_Disassemble
Дизассемблирует память по заданному виртуальному адресу и возвращает инструкции вместе с информацией о символах.
Debugger_TryResolveString
Пытается распознать и прочитать строку из памяти отлаживаемой программы.
Debugger_ReadMemory
Читает сырые байты памяти из процесса отлаживаемой программы.
Debugger_WriteMemory
Записывает произвольные байты в память отлаживаемой программы.
Debugger_GetModules
Возвращает список текущих загруженных модулей процесса отлаживаемой программы.
Debugger_GetModuleImports
Возвращает импортируемые функции указанного модуля.
Debugger_GetModuleExports
Возвращает экспортируемые функции указанного модуля.
Debugger_GetModuleSections
Возвращает информацию о секциях указанного модуля.
Решение Visual Studio организовано в виде следующих проектов:
MCP.Debugger
Основной отладчик, реализованный на C++. Он включает мост C++/CLI для предоставления управляемого интерфейса .NET-клиентам.
MCP.Debugger.Tester
Простое приложение WinForms, используемое для тестирования отладчика через управляемый .NET-интерфейс.
MCP.Debugger.Types
Сборка типов, определяющая общие структуры и типы данных для переходов между управляемым и нативным кодом при взаимодействии отладчика с .NET-клиентами.
MCP.Server
MCP-сервер на C#, предоставляющий функциональность отладчика в виде MCP-инструментов для внешних клиентов.