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