| 1 | # Roslyn MCP — каталог тулов |
| 2 | |
| 3 | <!-- GENERATED:ToolCatalog START --> |
| 4 | |
| 5 | > Автогенерация из `ToolCatalog.Build()` в репозитории. Не править этот блок вручную. |
| 6 | > |
| 7 | > Обновление: из каталога `roslyn-mcp` выполнить `dotnet run --project tools/ExportMcpManifest -- --write`. |
| 8 | > |
| 9 | > Тексты совпадают с полем `description` у инструментов MCP; полная схема аргументов — в `inputSchema` (например через `list_tools`). |
| 10 | |
| 11 | ### `roslyn_ping` |
| 12 | |
| 13 | Проверка доступности сервера. |
| 14 | |
| 15 | ### `roslyn_get_document_symbols` |
| 16 | |
| 17 | Структура C# файла: namespace, class, method, property, field с номерами строк. |
| 18 | |
| 19 | ### `roslyn_get_symbol_at_position` |
| 20 | |
| 21 | Символ в позиции (файл, строка, столбец — 1-based): kind и имя. |
| 22 | |
| 23 | ### `roslyn_find_usages` |
| 24 | |
| 25 | Все ссылки на символ в solution/project. line/column — на идентификаторе (имя метода, класса и т.д.), не на типе в сигнатуре. |
| 26 | |
| 27 | ### `roslyn_go_to_definition` |
| 28 | |
| 29 | Переход к определению символа: по позиции возвращает file:line:column объявления (1-based). Параметры: solution_or_project_path, file_path, line, column. |
| 30 | |
| 31 | ### `roslyn_rename` |
| 32 | |
| 33 | Переименовать символ по solution. apply: false — превью; true — записать. Чтобы затронуть комментарии/строки/перегрузки/файл — передай rename_in_comments, rename_in_strings, rename_overloads, rename_file (bool). |
| 34 | |
| 35 | ### `roslyn_get_code_actions` |
| 36 | |
| 37 | Список Quick Actions / рефакторингов в позиции (как лампочка в VS). Параметры: solution_or_project_path, file_path, line, column. Возвращает нумерованный список; применить — roslyn_apply_code_action с action_index. |
| 38 | |
| 39 | ### `roslyn_apply_code_action` |
| 40 | |
| 41 | Применить выбранное code action по индексу из roslyn_get_code_actions. Параметры: solution_or_project_path, file_path, line, column, action_index (0-based). |
| 42 | |
| 43 | ### `roslyn_get_diagnostics` |
| 44 | |
| 45 | Диагностики компиляции и анализаторов по solution/project (file:line:column, severity, id, message). Предпочтительно использовать вместо ReadLints/ручного просмотра для поиска неиспользуемых переменных (CS0219), предупреждений компилятора и анализаторов. Чтобы исправить: roslyn_get_code_actions по file:line:column из ответа, затем roslyn_apply_code_action (или fix_all_scope). Параметры: solution_or_project_path, опционально file_path. |
| 46 | |
| 47 | ### `roslyn_get_solution_structure` |
| 48 | |
| 49 | Структура solution: список проектов (имя, путь к .csproj). Параметр: solution_or_project_path (.sln или .csproj). Обходной путь для реп с .slnx: передай путь к главному .csproj — вернётся полный список подгруженных проектов. Использовать, чтобы узнать состав решения и пути для остальных тулов. |
| 50 | |
| 51 | ### `roslyn_get_workspace_navigation_context` |
| 52 | |
| 53 | Семантическая навигация по solution (связанные файлы): режимы related и subgraph. Файлы из MSBuildWorkspace, эвристики как в Cascade IDE, но без .cascade/workspace.toml и без дерева IDE — только аргументы и встроенные пресеты (peers_only, no_namespace_noise, tests_and_peers, structure_only). Параметры: solution_or_project_path, file_path (якорь), mode; опционально line, column, max_*, include_kinds, exclude_kinds, preset. |
| 54 | |
| 55 | ### `roslyn_sync_namespaces` |
| 56 | |
| 57 | Привести объявления namespace к структуре папок (RootNamespace + путь). Вызывать после переименования или перемещения папок в C# проекте: сначала dry_run для превью, затем без dry_run для применения. Обновляет также using в остальных файлах. Параметры: solution_or_project_path; опционально project_path, dry_run. |
| 58 | |
| 59 | ### `roslyn_resolve_breakpoint` |
| 60 | |
| 61 | По имени символа (метод, свойство, конструктор) в файле вернуть file:line первой исполняемой строки — место для брейкпоинта. Параметры: solution_or_project_path, file_path, symbol_name. |
| 62 | |
| 63 | ### `roslyn_generate_interface_from_class` |
| 64 | |
| 65 | Сгенерировать C# интерфейс по классу (без диалогов Roslyn). Позиция на класс в file_path:line:column. Опционально: interface_name, output_file_path, member_names (массив). |
| 66 | |
| 67 | ### `roslyn_generate_base_class_from_class` |
| 68 | |
| 69 | Сгенерировать абстрактный базовый класс по классу (без диалогов). Выбранные public-члены — abstract в новом классе. Опционально: base_class_name, output_file_path, member_names. |
| 70 | |
| 71 | ### `roslyn_generate_overrides` |
| 72 | |
| 73 | Generate Overrides без диалога: по позиции на класс генерирует override виртуальных/абстрактных членов базового типа. Опционально: member_names, insert_into_file. |
| 74 | |
| 75 | ### `roslyn_generate_constructor_from_members` |
| 76 | |
| 77 | Generate constructor from members без диалога: по позиции на класс — конструктор по полям/свойствам. Опционально: member_names, insert_into_file. |
| 78 | |
| 79 | ### `roslyn_generate_equals_gethashcode` |
| 80 | |
| 81 | Generate Equals and GetHashCode без диалога: по позиции на класс — override по выбранным полям/свойствам. Опционально: member_names, insert_into_file. |
| 82 | |
| 83 | ### `roslyn_move_members_to_partial_file` |
| 84 | |
| 85 | Перенести выбранные члены класса/структуры в новый .cs файл как вторую часть partial: те же using/namespace, в исходнике добавляется partial. member_names: имена методов/полей/свойств; конструктор — имя типа или .ctor; индексатор — this; перегрузки одного имени уходят вместе. output_file_path — путь нового файла (не должен существовать при apply). apply: false — превью, true — запись через TryApplyChanges (и новый файл в проекте). add_dependent_upon: по умолчанию true — после apply проставить DependentUpon в .csproj на исходный файл. |
| 86 | |
| 87 | ### `roslyn_sync_dependent_upon_partials` |
| 88 | |
| 89 | Массово проставить DependentUpon для partial-файлов вида Type.Part.cs под Type.cs в той же папке (эвристика как в IDE). solution_or_project_path — .sln или .csproj; опционально project_path — один проект; dry_run — только отчёт без записи. |
| 90 | |
| 91 | <!-- GENERATED:ToolCatalog END --> |
| 92 | |
| 93 | |