Перейти к основному содержимому

Обзор

@reformer/mcp — MCP-сервер (Model Context Protocol) для библиотеки @reformer/*. Он снабжает AI-ассистентов (Claude Code, Cursor, другие MCP-клиенты) per-package документацией, JSDoc-индексом публичных символов и эталонными примерами форм — прямо в контексте диалога.

Идея в том, что ассистенту достаточно самого сервера, чтобы собрать форму на ReFormer: не нужно читать исходники библиотеки. Сервер отдаёт документацию как ресурсы, справочные и генерирующие инструменты (подбор API, план и сборка формы, проверка кода) и workflow-промпты по единому контракту формы: модель → одна схема → одна сборка createForm → правила → поведение → визард (поток шагов) → отрисовка.

Что такое MCP?​

Model Context Protocol — открытый стандарт от Anthropic для интеграции AI-ассистентов с внешними инструментами и данными. MCP-сервер объявляет клиенту:

  • Resources — доступ к документации и данным
  • Tools — инструменты, которые AI может вызывать
  • Prompts — готовые workflow-сценарии

Установка / подключение​

# Глобально
npm install -g @reformer/mcp

# Или через npx без установки
npx @reformer/mcp

Бинарь называется reformer-mcp. Регистрация в Claude Code:

# Глобальный install
claude mcp add --transport stdio reformer -- reformer-mcp

# Через npx
claude mcp add --transport stdio reformer -- npx @reformer/mcp

Проверить подключение — claude mcp list. Настройка других IDE (Cursor, Windsurf, Cline) — в Быстром старте. Debug-режим включается переменной окружения REFORMER_DEBUG=true (добавляет tool debug, ресурс reformer://debug и одноимённый промпт).

Инструменты (tools)​

ToolРоль
get_contextСобранный контекст для одного шага сборки формы: оператор, сигнатура, пример, правила и анти-паттерны в бюджете токенов.
choose_apiВыбрать оператор под требование своими словами («поле B доступно, только когда заполнено A») — с примером и частыми путаницами.
get_symbol_docsПолный JSDoc публичного символа любого @reformer/*: сигнатура, параметры, все @example, исходник.
find_recipeРецепт по ключевому слову сценария (wizard, form-array, json-schema) или @example символа.
search_docsПолнотекстовый поиск по документации всех пакетов, когда задачу можно описать, но не назвать.
list_symbolsПубличные символы по виду, пакету или части имени.
plan_formСпека формы (markdown) или описание → FormIntent: поля, массивы, правила, поведение, раскладка.
generate_formFormIntent → набор файлов формы (model.ts, form.schema.ts, form.validation.ts, form.behavior.ts, …) с перекрёстной проверкой.
validate_formПроверка до запуска: код (kind: "code"), JSON-схема, циклы поведения, весь набор и имена файлов модуля (kind: "layout").
report_issueСохранить найденную проблему и её решение отдельным JSON-отчётом в <корень проекта>/.reformer/issue_reports.
debugТолько при REFORMER_DEBUG=true — внутренний tool для разработки самого сервера.

Промпты (prompts)​

  • start-here — точка входа: канонический workflow единого контракта и карта, каким промптом, инструментом или ресурсом пользоваться на каждом шаге.
  • discover-context — определить целевой стек проекта (core / renderer-react / renderer-json) по описанию формы и каталогу проекта.
  • plan-form — прочитать спеку формы (markdown) и вернуть план разработки.
  • create-form — создать форму по описанию (description, target).
  • add-feature — добавить в готовую форму одну возможность: feature = validation | behavior | array | wizard.
  • to-renderer — сменить способ отрисовки: FormRenderer по той же TS-схеме (renderer-react) или схема документом JSON формата 2 + реестр (renderer-json); модель, правила, поведение и вызов createForm остаются.
  • review — кросс-пакетный чек-лист код-ревью.
  • debug — только при REFORMER_DEBUG=true.

Промпты доходят не до каждого клиента: у некоторых агентов prompts/list недоступен. Поэтому то же содержание есть в инструментах (get_context, plan_form, generate_form) и в ресурсе reformer://guide.

Ресурсы (resources)​

  • reformer://guide — самодокументация сервера: workflow, раскладка файлов формы, какой инструмент и ресурс брать на каждом шаге.
  • reformer://catalog — JSON-карта пакетов и их разделов (slug + заголовок) — откуда брать URI разделов.
  • reformer://docs/<pkg> — документация одного пакета целиком, например reformer://docs/cdk. <pkg> — имя без префикса @reformer/: core, cdk, ui-kit, renderer-react, renderer-json, …
  • reformer://docs/<pkg>/<section> — отдельный раздел по slug'у (список — в reformer://catalog).

Списка символов и сигнатур в ресурсах нет — используй list_symbols / get_symbol_docs; для рецептов по сценарию — find_recipe, для поиска по словам — search_docs.

Дальше​