| 1 | # Dotnet Build/Test MCP — каталог тулов |
| 2 | |
| 3 | <!-- GENERATED:ToolCatalog START --> |
| 4 | |
| 5 | > Автогенерация из `ToolCatalog.Build()`. Не править этот блок вручную. |
| 6 | > |
| 7 | > Обновление: из каталога `dotnet-build-test-mcp` выполнить `dotnet run --project tools/ExportMcpManifest -- --write`. |
| 8 | > |
| 9 | > Тексты совпадают с полем `description` у инструментов MCP; полная схема — в `inputSchema`. |
| 10 | |
| 11 | ### `build_structured` |
| 12 | |
| 13 | Запустить dotnet build с single-flight очередью. По умолчанию возвращает компактный summary; полный raw_output только по include_raw_output=true. Поддерживает wait_for_completion=false (асинхронная job), timeout_seconds и queue backpressure (busy + retry_after_seconds). Опции: configuration (-c), framework (-f), no_restore, additional_arguments. |
| 14 | |
| 15 | ### `run_tests` |
| 16 | |
| 17 | Запустить dotnet test с single-flight очередью. По умолчанию возвращает компактный summary; full raw_output только по include_raw_output=true. Поддерживает wait_for_completion=false, timeout_seconds и queue backpressure (busy + retry_after_seconds). Опции: configuration, framework, no_restore, no_build, filter (--filter), additional_arguments. |
| 18 | |
| 19 | ### `publish_structured` |
| 20 | |
| 21 | Запустить dotnet publish с single-flight очередью. Разбор вывода как у build (ошибки/предупреждения MSBuild). Опции: output (-o), configuration, framework, no_restore, no_build, additional_arguments. |
| 22 | |
| 23 | ### `get_job_status` |
| 24 | |
| 25 | Получить статус ранее запущенной job: queued/running/done/failed/cancelled/timed_out + итоговый результат, когда job завершена. |
| 26 | |
| 27 | ### `get_job_log` |
| 28 | |
| 29 | Прочитать лог job чанками (offset/limit) для больших выводов. |
| 30 | |
| 31 | ### `cancel_job` |
| 32 | |
| 33 | Отменить queued/running job с понятной причиной отмены в статусе. |
| 34 | |
| 35 | <!-- GENERATED:ToolCatalog END --> |
| 36 | |
| 37 | ## Примеры аргументов (JSON) |
| 38 | |
| 39 | Фрагмент подключается к `MCP-TOOLS.md` при `dotnet run --project tools/ExportMcpManifest -- --write`. Редактируй этот файл, а не сгенерированный блок выше. |
| 40 | |
| 41 | ### `build_structured` — Release, без restore, доп. аргументы MSBuild |
| 42 | |
| 43 | ```json |
| 44 | { |
| 45 | "solution_path": "D:/repo/App.sln", |
| 46 | "configuration": "Release", |
| 47 | "no_restore": true, |
| 48 | "additional_arguments": ["-v", "m"] |
| 49 | } |
| 50 | ``` |
| 51 | |
| 52 | ### `build_structured` — решение `.slnx` по пути к файлу |
| 53 | |
| 54 | ```json |
| 55 | { |
| 56 | "solution_path": "D:/repo/CascadeIDE.slnx", |
| 57 | "configuration": "Debug" |
| 58 | } |
| 59 | ``` |
| 60 | |
| 61 | ### `run_tests` — фильтр по полному имени, без повторной сборки |
| 62 | |
| 63 | ```json |
| 64 | { |
| 65 | "solution_path": "D:/repo/Tests/Tests.csproj", |
| 66 | "filter": "FullyQualifiedName~MyNamespace.MyClass", |
| 67 | "no_build": true, |
| 68 | "configuration": "Debug" |
| 69 | } |
| 70 | ``` |
| 71 | |
| 72 | ### `run_tests` — целевой TFM и `--no-restore` |
| 73 | |
| 74 | ```json |
| 75 | { |
| 76 | "solution_path": "D:/repo/App.sln", |
| 77 | "framework": "net10.0", |
| 78 | "no_restore": true |
| 79 | } |
| 80 | ``` |
| 81 | |
| 82 | ### `publish_structured` — вывод в каталог |
| 83 | |
| 84 | ```json |
| 85 | { |
| 86 | "solution_path": "D:/repo/App/App.csproj", |
| 87 | "configuration": "Release", |
| 88 | "output": "D:/artifacts/publish", |
| 89 | "no_restore": false |
| 90 | } |
| 91 | ``` |
| 92 | |
| 93 | ### `get_job_status` / `get_job_log` / `cancel_job` |
| 94 | |
| 95 | ```json |
| 96 | { "job_id": "<id из ответа build_structured, run_tests или publish_structured>" } |
| 97 | ``` |
| 98 | |
| 99 | ```json |
| 100 | { "job_id": "<id>", "offset_lines": 0, "limit_lines": 200 } |
| 101 | ``` |
| 102 | |
| 103 | Очередь single-flight: при `status: busy` и `retry_after_seconds` повтори вызов позже. |
| 104 | |