Forge
markdowne9e34128
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
View only · write via MCP/CIDE