FSharp.Refactor — MCP-сервер для Claude Code
Офлайновый анализатор F#-кода, убирает лишние скобки, меняет медленные конструкции на быстрые и делает явным то, что агент или старый код спрятал за шумом.
Открыть на GitHubЧто делает FSharp.Refactor
Инструмент работает через CLI: fsharp-refactor Your.fsproj --dry-run --api-changes печатает все правки с указанием файла и позиции, fsharp-refactor Your.fsproj --api-changes применяет их. Без флага --api-changes публичные методы остаются нетронутыми. Внутри — полтораста правил: заменяет new FileStream на use, строковый Contains "x" на символьный Contains 'x', match b with | true -> 1 | false -> 0 на if b then 1 else 0, убирает new перед StringBuilder() и Attribute в конце атрибутов.
Требует проект, который компилируется: если исходник сломан, запуск не начнётся, если правка ломает сборку — остановится с ошибкой. Поставляется как глобальный dotnet-инструмент, VS Code-расширение, плагин для Visual Studio 2022–2026 и NuGet-пакет анализаторов. MCP-поддержка встроена в CLI-версию. Лицензия Unlicense.
Какие задачи решает
- убрать скобки и ключевое слово
newтам, где они не нужны - заменить
raise (Exception "текст")наfailwith "текст" - передвинуть
Seq.toListзаSeq.map, чтобы не копировать всю последовательность до маппинга - заменить
matchна булевом значении наif - добавить в
failwithинтерполяцию с переменными, которые помогут понять, где упало
Примеры запросов агенту
- Запусти
fsharp-refactor src/Main.fsproj --dry-run, покажи, что изменится - Примени все правки в
Core.fsprojкомандойfsharp-refactor Core.fsproj --api-changes - Прогони рефакторинг по всем проектам в
src/, не трогая публичные сигнатуры
Как установить FSharp.Refactor
Установка
Команды запуска нет в реестре MCP — смотрите README репозитория
По шагам, с командами для каждой платформы: Как подключить MCP-сервер: Claude Code, Codex, Cursor, VS Code, Gemini CLI и другие
Вопросы о FSharp.Refactor
Как установить FSharp.Refactor в Claude Code?
Поставь глобальный dotnet-инструмент командой dotnet tool install --global fsharp-refactor. MCP-поддержка встроена в CLI-версию, отдельных шагов для MCP не требуется.
Что делает FSharp.Refactor?
Анализирует F#-код и применяет полтораста правил: убирает лишние скобки и new, меняет медленные конструкции (Contains "x" → Contains 'x'), заменяет raise (Exception ...) на failwith, match на булевом — на if. Работает офлайн, ИИ не использует.
Можно ли запустить FSharp.Refactor на сломанном проекте?
Нет. Инструмент требует, чтобы проект компилировался до запуска, и останавливается, если правка вносит ошибку сборки.