| 1 | { |
| 2 | "schema_version" 1, |
| 3 | "mcp_id" "dotnet-debug-mcp", |
| 4 | "title" "Dotnet Debug MCP", |
| 5 | "tools" [ |
| 6 | { |
| 7 | "name" "debug_ping", |
| 8 | "description" "Проверка доступности сервера отладки. Возвращает текущее время и статус." |
| 9 | }, |
| 10 | { |
| 11 | "name" "debug_set_breakpoints", |
| 12 | "description" "Записать брейкпоинты для целевого проекта/exe. Файл .dotnet-debug-mcp-breakpoints.json в каталоге workspace_path. Дальше: передача в DAP при debug_launch." |
| 13 | }, |
| 14 | { |
| 15 | "name" "debug_list_breakpoints", |
| 16 | "description" "Показать сохранённые брейкпоинты. По умолчанию — все цели в workspace; можно указать target_path." |
| 17 | }, |
| 18 | { |
| 19 | "name" "debug_clear_breakpoints", |
| 20 | "description" "Удалить сохранённые брейкпоинты: для одной цели (target_path) или для всего workspace." |
| 21 | }, |
| 22 | { |
| 23 | "name" "debug_launch", |
| 24 | "description" "Запустить отладку через netcoredbg (DAP): загрузить сохранённые брейкпоинты для target, запустить программу под отладчиком. Требуется установленный netcoredbg (путь в netcoredbg_path или переменная NETCOREDBG_PATH)." |
| 25 | }, |
| 26 | { |
| 27 | "name" "debug_attach", |
| 28 | "description" "Подключиться к уже запущенному .NET-процессу по PID (DAP attach). Опционально target_path — загрузить сохранённые брейкпоинты для этого target." |
| 29 | }, |
| 30 | { |
| 31 | "name" "debug_continue", |
| 32 | "description" "Продолжить выполнение после остановки на брейкпоинте (DAP continue). Требуется активная сессия после debug_launch." |
| 33 | }, |
| 34 | { |
| 35 | "name" "debug_step_over", |
| 36 | "description" "Шаг через текущую строку (DAP next). Вызывать только когда выполнение уже остановлено на брейкпоинте (после события stopped). Требуется активная сессия после debug_launch." |
| 37 | }, |
| 38 | { |
| 39 | "name" "debug_step_into", |
| 40 | "description" "Шаг в (DAP stepIn): зайти в вызов. Только при остановке на брейкпоинте. Требуется активная сессия." |
| 41 | }, |
| 42 | { |
| 43 | "name" "debug_step_out", |
| 44 | "description" "Шаг из (DAP stepOut): выйти из текущего кадра. Только при остановке на брейкпоинте. Требуется активная сессия." |
| 45 | }, |
| 46 | { |
| 47 | "name" "debug_stop", |
| 48 | "description" "Завершить текущую отладочную сессию (dispose DAP-клиент, освободить ресурсы). После вызова нужен новый debug_launch для отладки." |
| 49 | }, |
| 50 | { |
| 51 | "name" "debug_stack_trace", |
| 52 | "description" "Стек вызовов текущего потока (DAP stackTrace). Вызывать когда выполнение остановлено на брейкпоинте. Возвращает кадры: имя, файл, строка. Опционально frame_index для debug_variables." |
| 53 | }, |
| 54 | { |
| 55 | "name" "debug_variables", |
| 56 | "description" "Переменные кадра (DAP variables). Когда остановлены. frame_index (0 = верхний) по debug_stack_trace. Для тяжёлых кадров: fast=true, format=json, малый max_depth, затем дети через debug_variable_children. Лимиты: max_depth (0..32, по умол. 4; fast=true => 0), max_children_per_node (1..256, по умол. 48; fast=true => 24), time_budget_ms (100..10000; по умол. 1800, fast=true => 700). При тайм-бюджете ответ помечается partial." |
| 57 | }, |
| 58 | { |
| 59 | "name" "debug_variable_children", |
| 60 | "description" "Один уровень вложенных переменных по variablesReference (из JSON debug_variables: не рекурсия). Снижает объём ответа. Подсказки indexed_variables / named_variables с родителя; max_children; json_indented." |
| 61 | } |
| 62 | ] |
| 63 | } |
| 64 | |