angular-signal-forms-migration-mcp
angular-signal-forms-migration-mcp
MCP-сервер, который помогает ИИ-агенту по написанию кода мигрировать Angular Reactive Forms на Angular Signal Forms.
Он находит конструкции Reactive Forms в вашем коде, отделяет безопасные механические переписывания от тех, которые требуют участия человека, и вы даёте рецепты «до→после», проверенные на реальном релизе Angular, а не выдуманные по памяти.
Установка
Требуется Node.js 20+. Клонировать нечего — npx подтянет пакет по запросу.
claude mcp add signal-forms-migration -- npx -y angular-signal-forms-migration-mcp@latestИли добавьте его в конфигурацию любого MCP-клиента:
{
"mcpServers": {
"signal-forms-migration": {
"command": "npx",
"args": ["-y", "angular-signal-forms-migration-mcp@latest"]
}
}
}Благодаря @latest npx выполняет разрешение заново при каждом запуске, поэтому после перезапуска редактора подхватываются новые релизы. Без этого npx продолжит отдавать ту версию, которую закэшировал первой, — либо укажите в конфиге @latest, либо очистите кэш командой npm cache clean --force.
Сервер также раз в день проверяет наличие более новой версии и пишет однострочное уведомление в stderr. Проверка ограничена по частоте, истекает по таймауту через 2 секунды, никогда не трогает stdout и остаётся молчаливой при любой ошибке. Чтобы отключить её, добавьте "env": { "SIGNAL_FORMS_MCP_NO_UPDATE_CHECK": "1" } в блок конфигурации выше. Чтобы увидеть, какая версия реально запущена:
npx angular-signal-forms-migration-mcp@latest --version[!IMPORTANT] Не выполняйте
npm installэтого пакета в свой проект Angular. Это отдельный процесс, который запускает ваш редактор, а не библиотека, от которой зависит ваш проект.npxхранит его в кэше полностью вне вашего проекта.
[!NOTE] Сервер обнаруживает и подсказывает. Он никогда не изменяет ваш код. Здесь нет инструмента, который пишет в ваши исходные файлы, и никогда не будет. Сервер возвращает находки и рецепты; ваш агент решает, что менять, и вносит изменения, так что каждое изменение по-прежнему проходит через ваше обычное ревью и систему контроля версий.
Related MCP server: VA Form Generation MCP Server
Как это выглядит
> Migrate the forms in src/app/checkout to Signal Forms.
1. find_form_candidates { path: ".../src/app/checkout" }
→ 9 findings across 2 files: 6 mechanical, 3 judgment
(the FormArray of line items is judgment — its shape changes)
2. get_signalforms_recipe { construct: "FormBuilder.group" }
→ before/after + caveats
3. the agent applies the edits, you review the diff
4. verify_migration { path: ".../checkout.component.ts" }
→ traps that compile and are still wrongПредусловия, которые проверяются перед любыми рекомендациями
Отчёт о миграции начинается с того, что делает миграцию невозможной, потому что план, который нельзя выполнить, хуже отсутствия плана:
Angular 21+.
@angular/forms/signalsне существует до v21. Ниже этого уровня сервер возвращает план обновления вместо плана миграции.Заявленная и установленная версии совпадают. Старая ветка, проверенная поверх новых
node_modules, пересекает границу v21. Если мигрировать против установленной версии, то следующийnpm ciоткатит вас к версии, где нужного API нет, — поэтому сервер отказывается выбирать сторону и прямо об этом сообщает.moduleResolutionс поддержкойexports(bundler,node16илиnodenext).@angular/forms/signals— это подпуть в package exports; легаси-node-разрешение не может его увидеть, и импорт падает с ошибкой, похожей на отсутствующую зависимость.
Инструменты
Инструмент | Что он даёт |
| Где в коде конструкции Reactive Forms, и какие из них требуют участия человека |
| Какой из рецептов «до → после» проверен для данного конструкта |
| Насколько велик объём работы и с какого файла стоит начать |
| Полный отчёт одним markdown-документом |
| Я уже перенёс это — что компилируется, но ещё работает неправильно |
| Я ниже v21. Как перейти на версию, где это поддерживается |
Полное описание параметров, форматы ответов и ограничения по объёму: docs/TOOLS.md.
Как проверяются рецепты
Signal Forms — новая возможность, которой нет в обучающих данных моделей; рецепты, написанные по памяти, ошибочны в то, как выглядят правдоподобно. Поэтому ни одного из них здесь нет.
Рецепты проверяются на Angular v22 с помощью официального MCP-сервера Angular CLI, перекрёстно сверяются с angular.dev и несут структурированную информацию о происхождении (verifiedAgainstVersion, retrievedISO, sources), которая приходит в ответе инструмента, чтобы ваш агент мог судить, насколько совет актуален. Рецепт с пустым списком sources не проходит CI.
По вопросам, на которые документация отвечает, рецепт прямо говорит в caveats, а не выдумывает ответ: UNVERIFIED — подтверждать по <url>, или UNVERIFIED — руководство, созданное инструментом для случаев, когда у Angular нет задокументированного маршрута (основной пример — три уровня RxJS-потоков: примитивы задокументированы и компилируются, но выбор между ними — суждение этого инструмента, а не Angular). 14 из 37 рецептов сейчас отмечены таким маркером. Это честная часть вывода, а не недоработка — и тест сохраняет это число актуальным.
Рецепты также компилируются. CI устанавливает настоящий @angular/forms@22 и проверяет типы на примерах, которые используют все API из рецептов, так что рецепт, либо вызывающий функцию, которого нет, либо с неверной формой аргументов, валит сборку. Именно так была установлена сигнатура v22 disabled(path, { when }); документация не демонстрирует ни её, ни вложенную композицию schema() + apply().
Две вещи, в которых память ошибается:
Связывающая директива — это есть
[formField]/FormField, а не[control]/Control, которая встречалась в материтах предрелиза v21 и именно её воспроизводят модели.disabled()/hidden()в v22 получили форму объекта параметров и пометили голый колбэк@deprecated, а не удалили его, поэтому правило, рассчитанное на v21, статья компилируется, но с предупреждением. Это установлено сравнением поставляемых перегрузок, а не по гайдам.
Рецепты, поведение которых действительно различается между релизами, несут маркер VERSION-SENSITIVE, в котором указано, какую форму принимпонентное то или иная версия; сервер выбирает нужный вариант под обнаруженную версию вашего проекта. Читайте массив caveats — там находятся все острые углы.
Процедура повторной проверки при новом релизе Angular: REVERIFICATION.md.
Он сообщает, когда нет однозначного ответа
Не у каждого паттерна Reactive Forms есть аналог в Signal Forms, и миграционный инструмент, который делает вид, что это не так, хуже, чем никакой. Формные потоки классифицируются по набору RxJS-операторов в цепи .pipe():
Уровень | Операторы | Ответ |
простой | нет / голый |
|
средний |
|
|
сложный |
| прямого эквивалента нет |
Для сложного уровня рецепт прямо это говорит и предлагает три настоящие стратегии — асинхронные правила валидации, rxResource или хранение RxJS за toObservable/toSignal, — а не выдуманную однострочную замену, которая не существует.
Как и addControl() / removeControl() вообще не имеют аналога: дерево полей выводится из типа сигнала модели. Рецепт объясняет три реальных варианта вместо того, чтобы подразумевать API, которое не скомпилируется.
Что он делать не будет
Редактировать ваши файлы. Не будет никогда, намеренно и навсегда.
Доказывать, что миграция корректна.
verify_migrationдоказывает отсутствие известных дефектов. Запускайте его послеtsc, а не вместо него.Мигрировать шаблонные формы. Миграция
ngModelне задокументирована вышестоящим проектом; угадывать её — это ровно тот режим отказа, ради которого существует этот проект.Читать шаблон-литералы с подстановкой
${...}, И их текст — это не то, что видит компилятор Angular. Местове инлайн-строкиtemplate:без подстановок сканируются.Сканировать CSS/SCSS или резолвить типы между файлами; это однофайловой синтаксический проход, а не
ts.Program.
ROADMAP.md отслеживает это; миграционный отчёт повторяет их в своём разделе «Scope», чтобы общее количество не создавало иллюзию полноты.
Почему не просто официальный Angular MCP-сервер?
Используйте оба. Официальный MCP-сервер @angular/cli разбирается в Angular; этот разбирается в миграции — какие конструкции есть в вашем коде, какие из них механические, а какие требуют решения, и что является проверенной заменой. Ваш агент может взять находки и рецепты здесь, затем свериться сей с актуальной там версией проекта перед внесением управлений.
Статус
Функциональная версия завершена на M16. Работает шесть инструментов с проверенными рецептами, покрытыми базовые конструкции, массивы, изменение формы в рантайме, асинхронные валидаторы, пользовательские контролы, три уровня RxJS-потоков, чтение и запись состояния формы, отправка, ограничения формы модели, CSS-классы статусов, миграция спец-файлов и шаблонный слой .html — привязки, чтение состояния, блокировку <select multiple> и скрытое переименование ключа ошибок.
Транспорт — stdio, поэтому stdout зарезервирован для протокола, а вся диагностикилicense идёт в stderr.
Вклад и локальная разработка: CONTRIBUTING.md.
Лицензия
MIT
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseAqualityCmaintenanceEnables LLMs to apply Martin Fowler's 71+ refactoring patterns to codebases through a pluggable, language-agnostic architecture. Supports previewing and applying refactorings, analyzing code smells, and inspecting code structure with safe-by-default operations.54MIT
- FlicenseBqualityDmaintenanceProvides tools for auditing and fixing scaffolded VA forms to ensure they follow best practices and VA.gov content standards. Enables automated validation, agent prompt generation, and orchestration of form fixes across any vets-website workspace.51
- AlicenseNot gradedqualityFmaintenanceHelps migrate projects from AI SDK 4.x to 5.0 by generating a migration checklist and searching the official migration guide for code and data changes.14MIT
- AlicenseBqualityDmaintenanceEnables AI agents to safely upgrade JavaScript and TypeScript projects through dependency analysis, upgrade path detection, breaking change identification, codemod application, and PR summary generation.1428MIT
Related MCP Connectors
Lints + auto-fixes how AI coding agents discover any new product. 24 rules, 6 tools, score 0-100.
AI Agent with Architectural Memory. Impact analysis (free), tests and code from the graph (pro).
Code intelligence for coding agents: semantic, AST, graph, and full-text search. 279+ languages.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Alvi97/angular-signal-forms-migration-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server