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