InstantCMS MCP Server
This server does not currently have a deployable release on Glama. Follow the repository's setup instructions to install and configure it for your MCP client, including any required credentials and local dependencies.
InstantCMS MCP Server
MCP-сервер и набор переносимых AI-workflows для разработки дополнений, виджетов, шаблонов и layout-схем InstantCMS 2.

Сервер предоставляет структурированную базу API InstantCMS, безопасные генераторы, валидатор пакетов, диагностические инструменты и MCP resources. Runtime-данные синхронизированы с официальным репозиторием instantsoft/icms2, последняя проверенная стабильная версия — InstantCMS 2.18.2.
Текущий релиз: v1.8.0. Генераторы проверяются в рантайме на живом InstantCMS (npm run verify:generated): CRUD, API с токенами, виджеты, маршруты, ЧПУ по slug, фильтры, cron, формы и гриды. Сгенерированные API-дополнения при отсутствии метода модели отвечают 501 NOT_IMPLEMENTED, а не падают; scaffold_crud с with_api_model добавляет нужный контракт и токены. MCP работает автономно: доступ к GitHub нужен только сопровождающим проекта для обновления базы знаний.
Установка
npm install @maxisoft/instantcms-mcpnpm-пакет: @maxisoft/instantcms-mcp. Автоматическая публикация использует Trusted Publishing (GitHub Actions OIDC). Готовая сборка также доступна в GitHub Release ZIP:
curl -L -O https://github.com/instantcms-dev/instantcms-mcp/releases/download/v1.8.0/instantcms-mcp-v1.8.0.zip
unzip instantcms-mcp-v1.8.0.zip && cd instantcms-mcp-*/release
npm install --production
node dist/index.jsПодробности секции Установка.
Возможности
справочник хуков с параметрами, типами и примерами;
справочник основных классов InstantCMS;
генерация пяти вариантов дополнений;
генерация темы и YAML layout-схем;
проверка полных installation package paths и плоских controller paths;
диагностические коды для автоматического исправления;
экранирование пользовательских данных для XML, INI, PHP и YAML;
AI-инструкции и skills без дублирования базы знаний.
101 MCP-инструментов и четыре встроенных MCP resource;
воспроизводимая генерация runtime-справочников из зафиксированного commit InstantCMS;
автоматическая еженедельная проверка обновлений и Pull Request с изменившимися данными;
CI на Node.js 22 и 24 (Stryker 10 требует ≥22).

Related MCP server: PrestaShop MCP Server
Требования и установка
Node.js 22 или новее (см.
package.json:engines); Node.js 18 и 20 больше не поддерживаются — Stryker 10 требует ≥22.npm.
git clone https://github.com/instantcms-dev/instantcms-mcp.git
cd instantcms-mcp
npm ci
npm run buildЛибо скачайте готовый ZIP из последнего GitHub Release.
Подключение к MCP-клиенту:
{
"mcpServers": {
"instantcms": {
"command": "node",
"args": ["/absolute/path/to/instantcms-mcp/dist/index.js"]
}
}
}Для разработки:
npm run dev
npm run inspector
npm run checknpm run check выполняет проверку provenance/generated metadata, TypeScript, unit-тестов, порогов покрытия и конфигураций AI-клиентов. Интеграционный MCP smoke-test запускается отдельно командой npm run test:integration.
HTTP-транспорт (опционально)
По умолчанию сервер работает через stdio. Для удалённых клиентов доступен Streamable HTTP:
node dist/index.js --http # http://127.0.0.1:3001/mcp
node dist/index.js --http --port 8080 # порт флагом или MCP_HTTP_PORT
MCP_HTTP_TOKEN=secret node dist/index.js --http # требовать Authorization: Bearer secret
MCP_HTTP_HOST=0.0.0.0 node dist/index.js --http # слушать внешний интерфейс
node dist/index.js --http --session # stateful: сессии Mcp-Session-Id (GET/DELETE)
MCP_HTTP_RATE_LIMIT=120 node dist/index.js --http # лимит 120 запросов/мин с одного IP (429 + Retry-After)--session/MCP_HTTP_SESSION=1: MCP-сессия живёт между запросами; initialize выдаётMcp-Session-Id, GET держит SSE, DELETE закрывает сессию. /--sessionkeeps MCP sessions alive across requests; initialize issuesMcp-Session-Id, GET opens SSE, DELETE closes. /--session使 MCP 会话跨请求存续;initialize 下发Mcp-Session-Id,GET 打开 SSE,DELETE 关闭会话。MCP_HTTP_RATE_LIMIT: фиксированное окно на IP, применяется до авторизации (брутфорс токена тоже ограничен). / Per-IP fixed-window rate limit applied before auth (token brute force is throttled too). / 基于 IP 的固定窗口限流,先于鉴权执行(令牌爆破同样受限)。За обратным прокси лимит считается по адресу прокси — используйте
MCP_HTTP_HOSTтолько с доверенным прокси. / Behind a reverse proxy the limit counts the proxy address — bind 0.0.0.0 only behind a trusted proxy. / 在反向代理之后按代理地址计数——仅在可信代理之后绑定 0.0.0.0。
Режим stateless (без сессий, только POST), по умолчанию привязка к 127.0.0.1 — сервер не доступен извне без явного MCP_HTTP_HOST. / HTTP mode is stateless (POST only) and binds to 127.0.0.1 by default. / HTTP 模式为无状态(仅 POST),默认绑定 127.0.0.1。
Профиль инструментов (опционально)
Определения инструментов (tools/list) уходят в контекст модели на каждый запрос, поэтому выключение неиспользуемых групп прямо снижает расход токенов:
INSTANTCMS_MCP_DISABLE=templates,sources node dist/index.jsГруппы:
meta, generators, knowledge, database, sources, languages, extensions, project, templates. Неизвестные группы игнорируются с предупреждением в лог. / Groups:meta, generators, knowledge, database, sources, languages, extensions, project, templates. Unknown groups are ignored with a log warning. / 分组:meta, generators, knowledge, database, sources, languages, extensions, project, templates。未知分组会被忽略并记录警告。Мета-инструменты (
find_tool,get_workflow) могут упоминать выключенные инструменты — их вызов вернёт ошибку клиента. / Meta tools (find_tool,get_workflow) may still mention disabled tools — calling them returns a client error. / 元工具(find_tool、get_workflow)仍可能提及已关闭的工具——调用会返回客户端错误。Фактическое число активных инструментов показывает
get_server_capabilities. /get_server_capabilitiesreports the actual number of active tools. /get_server_capabilities显示当前实际启用的工具数量。
Docker / Docker / Docker
Публикуемый в GHCR образ (docker.yml собирает linux/amd64 + linux/arm64 при теге v*):
docker run --rm -p 3001:3001 ghcr.io/instantcms-dev/instantcms-mcp
MCP_HTTP_TOKEN=secret docker run --rm -p 3001:3001 -e MCP_HTTP_TOKEN ghcr.io/instantcms-dev/instantcms-mcpРежим по умолчанию — HTTP на порту 3001 (
EXPOSE 3001); stdio:docker run ... image node dist/index.js.GET /health— liveness-эндпоинт для оркестраторов, отвечает 200 без токена; остальные маршруты требуютAuthorization: Bearerпри заданномMCP_HTTP_TOKEN. /GET /healthis a tokenless liveness probe; other routes require the bearer token whenMCP_HTTP_TOKENis set. /GET /health为无需令牌的存活探针;设置MCP_HTTP_TOKEN后其余路由需要 Bearer 令牌。Локальная сборка:
docker build -t instantcms-mcp .
Проверка генераторов на реальном InstantCMS
npm run verify:generated разворачивает сгенерированный артефакт в тестовом экземпляре InstantCMS, прогоняет HTTP-сценарии и удаляет всё созданное.
npm run verify:generated -- \
--scenario crud --name mydemo \
--site ~/Sites/idev.test --base-url https://idev.test \
--db-name idev.test --db-user root --db-password secret \
--insecure --yes --cleanup--scenario:crud,api,addon,component,webhook,external_api,oauth,content_type,widget,routes,crud_options,crud_slug,filter,cache,core_artifacts,template_override,admin_partial,import_export,cron,form,gridилиintegration.Без
--yesскрипт только печатает план.--cleanupудаляет созданные файлы, записи и таблицы; удаляются только пустые каталоги, которые создал сам скрипт, и это проверяется тестами вsrc/__tests__/site-deploy.test.ts.Скрипт отказывается работать, если в каталоге нет
system/config/config.php.
Экземпляр для проверки ставится без веб-установщика:
npm run verify:install-icms -- \
--source .cache/icms2 --target /tmp/icms-site \
--base-url http://127.0.0.1:8099 \
--db-name icms_ci --db-user root --db-password secret
php -S 127.0.0.1:8099 -t /tmp/icms-site /tmp/icms-site/index.php &scripts/install-instantcms.mjs копирует исходники, создаёт базу из base.sql (схема, контроллеры, виджеты, события, группы) и подключает виджеты темы через widgets_bind_modern.sql, после чего пишет config.php. Без второго дампа страницы рендерятся пустыми, потому что не подключается виджет «Тело страницы».
В CI это выполняет job Generated artifacts on a live InstantCMS: он поднимает MariaDB, ставит InstantCMS закреплённой версии и прогоняет все сценарии verify:generated.
Отдельный job Dependency audit проверяет npm audit --omit=dev --audit-level=high: advisories в dev-зависимостях (eslint, prettier) выпуск не блокируют, уязвимости в поставляемом коде — блокируют.
Выпуск релиза
Номер версии выбирается строго по SemVer (см. AGENTS.md → «Release versioning»): MAJOR — ломающие изменения, MINOR — обратно совместимые возможности, PATCH — исправления. Если в релиз попало несколько типов, берётся старшая часть.
Релиз запускается тегом, совпадающим с версией в package.json:
npm version minor # или patch / major
git push && git push --tagsrelease.yml проверит, что тег, package.json и package-lock.json согласованы, прогонит проверки, соберёт ZIP для GitHub Release и опубликует пакет в npm через Trusted Publishing (OIDC). Версия с дефисом (например 1.5.0-beta.1) публикуется под dist-tag next, остальные — под latest.
Публикуемый пакет содержит только dist без тестов, README.md и LICENSE: сборка идёт по tsconfig.build.json, а npm run typecheck проверяет весь код, включая тесты.
Безопасность работы с базой данных
Инструменты maria_* работают с чужой базой, поэтому по умолчанию разрешено только чтение:
maria_execute_queryвыполняетSELECT,SHOW,DESCRIBE,EXPLAIN,WITH; изменение данных требует явногоallow_write: true;запросы
INTO OUTFILE/DUMPFILE,LOAD_FILE,GRANT,CREATE USER,SET GLOBAL,SHUTDOWNзапрещены всегда;несколько инструкций в одном запросе отклоняются;
строки ответа ограничены (по умолчанию 1000, признак
truncated), запрос имеет таймаут (по умолчанию 10 секунд);значения колонок-секретов (
password,password_hash,api_token,token_hash,secret_keyи подобных) заменяются на***; какие именно колонки скрыты, видно вredacted_columns. Вернуть их как есть можно только явнымinclude_sensitive: true;в текстах ошибок и в эхо-запросе маскируются пароли, токены, учётные данные в URL и
Authorization.
Скрипты scripts/install-instantcms.mjs и scripts/verify-generated.ts не передают пароль MySQL аргументом (-p<password> виден в ps): они пишут временный option-файл с правами 0600 и удаляют его при выходе.
Переменная DB_READONLY=1 запрещает запись полностью, даже с allow_write. Для рабочей базы рекомендуется отдельный пользователь MySQL только с правами SELECT.
Проверка достоверности базы знаний
Утверждения src/data сверяются с закреплённым исходником InstantCMS тестом src/__tests__/knowledge-provenance.test.ts: существование всех файлов, на которые ссылаются справочники (поля, контроллеры, трейты, виджеты), объявление классов ядра в своих файлах, вызовы хуков в исходниках (hook, hookAll, runHook), типы из components, а также отсутствие в документации несуществующих конвенций (system/hooks/, system/config/permissions/, extends cmsInstaller).
Без исходников проверка пропускается; в CI её выполняет job upstream-compatibility, где выставляется ICMS_REQUIRE_SOURCE=1 и данные должны совпасть с upstream.
Уровень достоверности каждого источника задан в knowledge/catalog.yaml и проверяется сборкой: verified допустим только для файлов, созданных парсером закреплённого исходника, а рукописные данные помечаются curated и inferred. npm run knowledge:build падает, если достоверность завышена. Текущая сводка доступна в get_server_capabilities (knowledge.sources).
Ответ на несуществующий или неоднозначный запрос — это отказ с кандидатами, а не правдоподобная выдумка:

Матрица проверки генераторов
Проверено на живом InstantCMS 2.18.2 (скрипт npm run verify:generated и ручные сценарии).
Генератор | Проверка |
| рантайм: список, материал, 404, гость, пагинация |
| рантайм: 200/501/401/405, JSON-ответы |
| рантайм: фронтенд, дашборд и грид админки |
| рантайм: привязка к позиции и рендер на главной |
| рантайм: правила регистрируются и читаются |
| рантайм: хук |
| рантайм: грид с фильтрами в админке и применение фронтенд-фильтра к модели |
| рантайм: ЧПУ из |
| рантайм: контракт API и токены выдаются и проверяются |
| рантайм: SEO-метатеги в |
| рантайм: ЧПУ |
| рантайм: класс формы загружается и собирает структуру |
| рантайм: функция грида возвращает колонки с фильтрами |
| рантайм: задача планировщика регистрируется и выполняется |
| рантайм: письмо читается |
| рантайм: шаблон темы рендерится через |
| рантайм: фрагмент админки рендерится через |
| рантайм: класс кэша и хук |
| рантайм: импорт/экспорт на модели CRUD, API-действия и форма импорта |
| рантайм: multi-controller пакет, классы по конвенции ядра, фронтенд и модель |
| рантайм: приём подписанного веб-хука, очередь на |
| рантайм: cURL-клиент, auth-заголовки, rate limiting и кэш на |
| рантайм: OAuth-обмен кода на токен через cURL, PKCE и токены в БД |
| рантайм: таблица создаётся из SQL, |
| рантайм: 7 таблиц ТК, записи, поля/колонки, опции и докатка поля на существующий тип |
| только статически: нужны PHPUnit/Codeception |
| только статически: активация темы затрагивает весь сайт |
«Только статически» означает: php -l, проверка символов против реального исходника, соответствие структуре каталогов. Поведение в рантайме для этих генераторов не подтверждено.
Все генераторы либо проверены в рантайме, либо помечены как «только статически» (см. выше): прототипов с scaffold_status: 'experimental' больше не осталось.
Основные MCP-инструменты
Сервер регистрирует 101 инструментов. Ниже — сгруппированный список (RU/EN/中文). Полные схемы и описания доступны через стандартный MCP tools/list.
Так выглядит ответ по конкретному хуку — с параметрами, файлами-источниками в ядре и примером реализации:

Мета / Meta / 元 (10)
Инструмент / Tool / 工具 | Назначение / RU | Purpose / EN | 用途 / 中文 |
| Версии, профили и объём базы знаний MCP-сервера | Versions, profiles, and knowledge base size of the MCP server | — |
| Подбирает MCP-инструменты по описанию задачи | Selects MCP tools by task description | — |
| Возвращает рекомендуемую последовательность инструментов | Returns the recommended sequence of tools | — |
| Определяет тип InstantCMS-задачи и рекомендуемый workflow | Determines the InstantCMS task type and recommended workflow | — |
| Объясняет стабильный код диагностики | Explains a stable diagnostic code | — |
| Сравнивает документированные профили InstantCMS | Compares documented InstantCMS profiles | — |
| Возвращает состояние встроенной базы и рекомендуемые проверки | Returns the state of the built-in knowledge base and recommended checks | — |
| Проверяет XML, INI, YAML и форму PHP-файлов настоящими parser-ами | Validates XML, INI, YAML, and the shape of PHP files with real parsers | — |
| Создаёт ZIP дополнения в памяти и возвращает base64 | Creates an addon ZIP in memory and returns base64 | — |
| Проверяет пути и синтаксис файлов ZIP-архива base64 | Checks paths and syntax of files inside a base64 ZIP archive | — |
Генераторы дополнений / Generators / 生成器 (14)
Инструмент / Tool / 工具 | Назначение / RU | Purpose / EN | 用途 / 中文 |
| Возвращает полную структуру файлов и папок для дополнения InstantCMS с описанием каждого файла и шаблонами кода | Returns the complete file and folder structure for an InstantCMS addon, with per-file descriptions and code templates | — |
| Генерирует готовый код всех файлов дополнения InstantCMS на основе параметров. Возвращает map {имя_файла: содержимое} | Generates ready-to-use code for all InstantCMS addon files based on the given parameters. Returns a map of {file_name: content} | — |
| Генерирует полный CRUD для контент-типа InstantCMS: модель, контроллеры фронтенда и бэкенда, гриды, формы | Generates full CRUD for an InstantCMS content type: model, frontend and backend controllers, grids, forms | — |
| Генерирует PHP класс формы для бэкенда InstantCMS с указанными полями и правилами валидации | Generates a PHP form class for the InstantCMS backend with the specified fields and validation rules | — |
| Генерирует PHP функцию грида для бэкенда InstantCMS с колонками, фильтрами и экшенами | Generates a PHP grid function for the InstantCMS backend with columns, filters, and actions | — |
| Генерирует REST API контроллер для InstantCMS с эндпоинтами, аутентификацией и опционально OpenAPI спецификацией | Generates a REST API controller for InstantCMS with endpoints, authentication, and optionally an OpenAPI specification | — |
| Генерирует PHPUnit или Codeception тесты для дополнения InstantCMS | Generates PHPUnit or Codeception tests for an InstantCMS addon | — |
| Генерирует письма InstantCMS в формате system | languages | |
| Генерирует шаблоны для переопределения стандартных шаблонов контроллеров InstantCMS в пользовательских темах | Generates templates for overriding standard InstantCMS controller templates in custom themes | — |
| Генерирует переиспользуемые части интерфейса админки: header, sidebar, toolbar, breadcrumbs, panels, modals | Generates reusable admin UI parts: header, sidebar, toolbar, breadcrumbs, panels, modals | — |
| Возвращает список всех доступных переопределений шаблонов контроллеров InstantCMS | Returns the list of all available InstantCMS controller template overrides | — |
| Возвращает подробную информацию о конкретном переопределении шаблона | Returns detailed information about a specific template override | — |
| Генерирует PHP cron контроллер для периодических задач с настройкой расписания, блокировками и логированием | Generates a PHP cron controller for periodic tasks with schedule configuration, locking, and logging | — |
| Генерирует регистрацию типа контента InstantCMS через API ядра (addContentType, addContentField) без raw SQL: поля, категории, SEO и URL-паттерн. Повторный запуск докатывает только отсутствующие поля на существующий тип | Generates InstantCMS content type registration via the core API (addContentType, addContentField) without raw SQL: fields, categories, SEO and URL pattern. Re-running adds only missing fields to an existing type | 通过核心 API(addContentType、addContentField)生成 InstantCMS 内容类型注册,不使用原始 SQL:字段、分类、SEO 与 URL 模板。重跑仅向已存在类型补加缺失字段。 |
База знаний / Knowledge / 知识库 (20)
Инструмент / Tool / 工具 | Назначение / RU | Purpose / EN | 用途 / 中文 |
| Список всех доступных хуков InstantCMS с краткими описаниями. Поддерживает фильтрацию по категории и типу | Lists all available InstantCMS hooks with short descriptions. Supports filtering by category and type | — |
| Подробная информация о конкретном хуке: параметры, возвращаемый тип, пример реализации, как зарегистрировать в manifest.xml | Detailed information about a specific hook: parameters, return type, implementation example, and how to register it in manifest.xml | — |
| Полнотекстовый поиск хуков по имени, описанию, категории или параметрам | Full-text search of hooks by name, description, category, or parameters | — |
| API конкретного класса | компонента InstantCMS: методы, сигнатуры, описания, примеры вызовов | API of a specific InstantCMS class |
| Список всех документированных компонентов и классов InstantCMS с кратким описанием и способом доступа | Lists all documented InstantCMS components and classes with a short description and access method | — |
| Валидация структуры дополнения InstantCMS. Проверяет наличие обязательных файлов, правильность классов, соглашения об именовании | Validates the structure of an InstantCMS addon. Checks for required files, correct classes, and naming conventions | — |
| Информация о типах полей для форм InstantCMS (fieldString, fieldList, fieldImage и др.) с примерами использования | Information about InstantCMS form field types (fieldString, fieldList, fieldImage, etc.) with usage examples | — |
| Получить готовый пример кода для типовой задачи в InstantCMS | Get a ready-made code example for a typical InstantCMS task | — |
| Генерирует скаффолд шаблона (темы) для InstantCMS: manifest.php, main.tpl.php, базовые CSS | JS | Generates a scaffold of an InstantCMS template (theme): manifest.php, main.tpl.php, base CSS |
| Полная структура шаблона InstantCMS: обязательные и опциональные файлы, переменные доступные в .tpl.php, переопределение шаблонов контроллеров | Full InstantCMS template structure: required and optional files, variables available in .tpl.php, controller template overrides | — |
| my-wrap">{position}< | div> | — |
| Список готовых пресетов схем расположения виджетов для шаблона modern InstantCMS. Используйте preset в scaffold_layout_scheme для быстрой генерации | Lists ready-made widget layout scheme presets for the InstantCMS modern template. Use preset in scaffold_layout_scheme for quick generation | — |
| Анализ структуры базы данных InstantCMS. Без параметров — список всех таблиц. С параметром table_name — детали конкретной таблицы | Analyzes the InstantCMS database structure. Without parameters — lists all tables. With the table_name parameter — details of a specific table | — |
| Подробное описание таблицы: поля, индексы, связи, типы данных. Генерирует примеры SQL-запросов | Detailed table description: fields, indexes, relations, data types. Generates example SQL queries | — |
| Информация о типах контента: cms_content_types, cms_con_pages, cms_users. Поля, ключи, связи | Information about content types: cms_content_types, cms_con_pages, cms_users. Fields, keys, relations | — |
| Все зарегистрированные события (хуки) из таблицы cms_events. Показывает какой контроллер на какое событие подписан | All registered events (hooks) from the cms_events table. Shows which controller is subscribed to which event | — |
| Подробная информация о контроллере: класс, наследование, экшены, трейты, файлы | Detailed controller information: class, inheritance, actions, traits, files | — |
| Список всех контроллеров: frontend и backend. Можно фильтровать по типу | Lists all controllers: frontend and backend. Can be filtered by type | — |
| Список всех экшенов контроллера с параметрами, видимостью и трейтами | Lists all controller actions with parameters, visibility, and traits | — |
| Список всех системных трейтов icms используемых в контроллерах. Трейты предоставляют готовую функциональность | Lists all icms system traits used in controllers. Traits provide ready-made functionality | — |
База данных / Database / 数据库 (6)
Инструмент / Tool / 工具 | Назначение / RU | Purpose / EN | 用途 / 中文 |
| Выполняет произвольный SQL запрос к базе данных MariaDB. Значения колонок-секретов (password, token, secret) маскируются, пока не передан include_sensitive | Executes an arbitrary SQL query against the MariaDB database. Secret columns (password, token, secret) are masked unless include_sensitive is passed | — |
| Возвращает список всех таблиц в текущей базе данных MariaDB | Returns the list of all tables in the current MariaDB database | — |
| Подробное описание структуры таблицы: колонки, типы, индексы, количество строк | Detailed table structure: columns, types, indexes, row count | — |
| Статистика базы данных: имя, количество таблиц, строк, размер | Database statistics: name, table count, row count, size | — |
| Поиск таблиц по имени. Полезно когда не помните точное имя таблицы | Search tables by name. Useful when you do not remember the exact table name | — |
| Получить данные из таблицы с поддержкой пагинации, сортировки и фильтрации. Значения колонок-секретов маскируются, пока не передан include_sensitive | Fetch table data with pagination, sorting and filtering. Secret columns are masked unless include_sensitive is passed | — |
Источники InstantCMS / Sources / 源 (12)
Инструмент / Tool / 工具 | Назначение / RU | Purpose / EN | 用途 / 中文 |
| Список всех доступных виджетов InstantCMS. Можно фильтровать по контроллеру | Lists all available InstantCMS widgets, filterable by controller | — |
| Подробная информация о виджете: класс, файл, настройки | Returns detailed widget info: class, file, settings | — |
| Список всех системных трейтов. Можно фильтровать по namespace | Lists all system traits. Filterable by namespace | — |
| Подробная информация о трейте: методы, параметры, описание | Detailed trait info: methods, parameters, description | — |
| Список всех типов полей для форм InstantCMS: string, text, image, list и др | Lists all InstantCMS form field types: string, text, image, list and more | — |
| Подробная информация о типе поля: класс, опции, описание | Detailed field type info: class, options, description | — |
| Список всех маршрутов (routes) системы. Маршруты определяют URL-паттерны и действия контроллеров | Lists all system routes. Routes define URL patterns and controller actions | — |
| Генерация SQL и PHP кода для создания таблицы. Генерирует install.php, SQL CREATE TABLE и соглашения по именованию | Generates SQL and PHP code for creating a table: install.php, SQL CREATE TABLE and naming conventions | — |
| Подсказки по типичным полям для генерации миграций: string, text, number, datetime, user, bool | Hints for typical migration fields: string, text, number, datetime, user, bool | — |
| AI анализ запроса пользователя и предложение структуры дополнения. Определяет тип дополнения, необходимые хуки, таблицы, контроллеры | AI analysis of a user request suggesting an addon structure. Detects the addon type, required hooks, tables, controllers | — |
| Предложить структуру файлов для типа дополнения (basic, with_admin, with_hooks, with_routes, with_widget) | Suggests the file structure for an addon type (basic, with_admin, with_hooks, with_routes, with_widget) | — |
| Генерирует PHP файл хука с полным кодом класса. Автоматически определяет параметры, тип (action | filter), формирует className | Generates a PHP hook file with full class code. Auto-detects parameters, type (action |
Язык и миграции / Languages / 语言 (3)
Инструмент / Tool / 工具 | Назначение / RU | Purpose / EN | 用途 / 中文 |
| Возвращает типовые языковые константы для дополнения. Генерирует LANG_* ключи с значениями по умолчанию | Returns typical language constants for an addon. Generates LANG_* keys with default values | — |
| Генерирует готовый PHP файл с языковыми константами для дополнения | Generates a ready-to-use PHP language constants file for an addon | — |
| Генерирует install.php и uninstall.php файлы для дополнения. Включает создание таблиц, опционально тип контента и SEO настройки | Generates install.php and uninstall.php files for an addon. Includes table creation, optionally a content type and SEO settings | — |
Расширения и интеграции / Extensions / 扩展 (17)
Инструмент / Tool / 工具 | Назначение / RU | Purpose / EN | 用途 / 中文 |
| Список всех доступных WYSIWYG редакторов: ace (редактор кода), markitup (разметка), redactor (Imperavi), tinymce | Lists all available WYSIWYG editors: ace (code editor), markitup (markup), redactor (Imperavi), tinymce | — |
| Подробная информация о WYSIWYG редакторе: класс, файл, опции, плагины, кнопки, пример использования | Detailed info about a WYSIWYG editor: class, file, options, plugins, buttons, usage example | — |
| Список всех настроек WYSIWYG редактора с типами, описаниями и значениями по умолчанию | Lists all WYSIWYG editor settings with types, descriptions and default values | — |
| Список плагинов WYSIWYG редактора. Redactor и TinyMCE поддерживают плагины | Lists WYSIWYG editor plugins. Redactor and TinyMCE support plugins | — |
| Поиск WYSIWYG редакторов по описанию, функциям или плагинам | Search WYSIWYG editors by description, features or plugins | — |
| Список кнопок тулбара WYSIWYG редактора. Для markitup возвращает объекты с настройками (openWith, closeWith) | Lists WYSIWYG editor toolbar buttons. For markitup returns objects with settings (openWith, closeWith) | — |
| Генерация системы прав доступа для дополнения InstantCMS с настройкой ролей и проверкой владельца | Generates a permission system for an InstantCMS addon with role setup and ownership checks | — |
| Генерация системы фильтрации контента с поддержкой различных типов фильтров | Generates a content filtering system with support for various filter types | — |
| Генерация SEO мета-тегов, Open Graph разметки и sitemap для InstantCMS | Generates SEO meta tags, Open Graph markup and sitemap for InstantCMS | — |
| Генерация системы импорта | экспорта данных с поддержкой CSV, Excel, JSON, XML | Generates a data import |
| Генерация системы кэширования InstantCMS: класс кэша, тег-инвалидация и реальные хуки контроллера | Generates an InstantCMS caching system: cache class, tag invalidation and real controller hooks | — |
| Генерация системы веб-хуков для InstantCMS с поддержкой подписи и повторных попыток | Generates a webhook system for InstantCMS with signature support and retries | — |
| Генерация клиента для внешнего API с поддержкой авторизации, rate limiting и кэширования | Generates an external API client with auth, rate limiting and caching support | — |
| Генерация OAuth авторизации для InstantCMS с поддержкой различных провайдеров | Generates OAuth authorization for InstantCMS with support for various providers | — |
| Генерация полного компонента InstantCMS с backend, frontend, model | Generates a complete InstantCMS component with backend, frontend, model | — |
| Генерация виджета InstantCMS с настройками и шаблонами | Generates an InstantCMS widget with settings and templates | — |
| Генерация темы шаблона InstantCMS с layout, стилями и поддержкой dark mode | Generates an InstantCMS template theme with layout, styles and dark mode support | — |
Проект / Project / 项目 (7)
Инструмент / Tool / 工具 | Назначение / RU | Purpose / EN | 用途 / 中文 |
| Загружает текстовые файлы проекта из локальной директории или публичного GitHub-репозитория | Loads project text files from a local directory or a public GitHub repository | — |
| Создаёт стандартный unified Git patch между двумя project file map | Creates a standard unified Git patch between two project file maps | — |
| Аудит существующего InstantCMS project file map | Audits an existing InstantCMS project file map | — |
| Строит план исправлений после аудита без изменения файлов | Builds a fix plan after an audit without modifying files | — |
| Применяет только безопасные структурные исправления и возвращает новый file map | Applies only safe structural fixes and returns the new file map | — |
| Кратко объясняет структуру существующего InstantCMS проекта | Briefly explains the structure of an existing InstantCMS project | — |
| Планирует обновление проекта между версиями InstantCMS | Plans a project upgrade between InstantCMS versions | — |
Шаблоны / Templates / 模板 (12)
Инструмент / Tool / 工具 | Назначение / RU | Purpose / EN | 用途 / 中文 |
| Безопасно переносит upstream-изменения в неизменённые overrides и возвращает Git patch | Safely carries upstream changes into unmodified overrides and returns a Git patch | — |
| Проверяет HTML, accessibility, escaping и качество CSS файлов шаблона | Checks HTML, accessibility, escaping and CSS quality of template files | — |
| Извлекает CSS custom properties, цвета и spacing и предлагает design tokens | Extracts CSS custom properties, colors and spacing, and suggests design tokens | — |
| Сопоставляет позиции виджетов в PHP-шаблонах и YAML layout-схемах | Cross-checks widget positions between PHP templates and YAML layout schemes | — |
| Генерирует Docker Compose и Playwright visual regression окружение для темы | Generates a Docker Compose and Playwright visual regression environment for a theme | — |
| Индексирует upstream template-файлы с SHA-256 и ссылками на исходный commit | Indexes upstream template files with SHA-256 and source commit references | — |
| Генерирует PHPStan, PHPCS и PHPCompatibility конфигурацию для шаблона | Generates PHPStan, PHPCS and PHPCompatibility configuration for a template | — |
| Создаёт полный каркас frontend-шаблона InstantCMS и импортируемую layout-схему | Creates a complete InstantCMS frontend theme skeleton and an importable layout scheme | — |
| Анализирует структуру, overrides, widget positions, layout-файлы и риски шаблона | Analyzes theme structure, overrides, widget positions, layout files and risks | — |
| Создаёт точную копию upstream template-файла в правильном каталоге override темы | Creates an exact copy of an upstream template file in the correct theme override directory | — |
| Проверяет YAML-синтаксис, layout root и widget positions схемы InstantCMS | Validates YAML syntax, layout root and widget positions of an InstantCMS scheme | — |
| Сравнивает overrides темы с upstream template-файлами до и после обновления InstantCMS | Compares theme overrides with upstream template files before and after an InstantCMS update | — |
Сервер также публикует MCP resources со всеми хуками, компонентами, типами дополнений и quickstart.
RU: Для небольших ответов читайте
instantcms://hooks/page/first(50 записей) илиinstantcms://components/page/first(10 записей). Используйтеpage.next_cursorв конце URI следующей страницы. Совсем компактные списки —instantcms://hooks/summaryиinstantcms://components/summary(имя, категория/число методов). Прежние полные URI остаются доступны.EN: For smaller responses, read
instantcms://hooks/page/first(50 entries) orinstantcms://components/page/first(10 entries). Appendpage.next_cursorto the page URI for the next page. For very compact lists useinstantcms://hooks/summaryandinstantcms://components/summary(name, category/method count). The existing full URIs remain available.中文:如需较小响应,请读取
instantcms://hooks/page/first(50 条)或instantcms://components/page/first(10 条)。将page.next_cursor放到下一页 URI 末尾。更紧凑的列表可用instantcms://hooks/summary与instantcms://components/summary(名称、分类/方法数量)。原有完整 URI 仍可使用。RU:
get_component_apiотдаёт методы страницами (по умолчанию 50): ответ содержитmethodsиmethods_pageсtotalиnext_cursor. Для полного списка передайтеcursorизmethods_page.next_cursorили увеличьтеlimit(максимум 200).EN:
get_component_apireturns methods in pages (50 by default): the response carriesmethodsandmethods_pagewithtotalandnext_cursor. For the full list passcursorfrommethods_page.next_cursoror raiselimit(max 200).中文:
get_component_api分页返回方法(默认 50):响应包含methods与methods_page(含total和next_cursor)。要获取完整列表,请传入methods_page.next_cursor或提高limit(最大 200)。
Языки инструкций / Instruction languages / 说明语言
RU: Новые и изменённые инструкции проекта публикуются на русском, английском и упрощённом китайском. Быстрый старт доступен как MCP resource
instantcms://quickstart.EN: New and updated project instructions are published in Russian, English, and Simplified Chinese. The quickstart is available as the MCP resource
instantcms://quickstart.中文:新增和更新的项目说明以俄语、英语及简体中文发布。快速入门可通过 MCP 资源
instantcms://quickstart获取。
Сравнение версий API / API version comparison / API 版本比较
RU:
compare_instantcms_versionsиplan_instantcms_upgradeиспользуют снимки хуков и публичных методов для профилей 2.16, 2.17, 2.18.1 и 2.18.2. Ответ содержит теги и SHA исходников. Для неизвестной версии сравнение по исходникам недоступно.EN:
compare_instantcms_versionsandplan_instantcms_upgradeuse hook and public method snapshots for profiles 2.16, 2.17, 2.18.1, and 2.18.2. Responses include source tags and SHAs. Source-backed comparison is unavailable for unknown versions.中文:
compare_instantcms_versions和plan_instantcms_upgrade使用 2.16、2.17、2.18.1、2.18.2 的钩子与公开方法快照。响应包含源码标签和 SHA。未知版本无法进行基于源码的比较。
Группы инструментов
Registry | Количество | Что входит |
| 10 | capabilities, подбор workflow, диагностика, версии и артефакты |
| 14 | addon, CRUD, типы контента, формы, grid, REST API, тесты, email, cron и overrides |
| 20 | хуки, компоненты, поля, шаблоны, layout, БД и контроллеры |
| 6 | безопасный доступ к MariaDB и исследование таблиц |
| 12 | widgets, traits, fields, routes, миграции и анализ требований |
| 3 | языковые ключи, language files и migration scaffold |
| 17 | WYSIWYG, permissions, filters, SEO, import/export, cache, webhooks, OAuth и темы |
| 7 | загрузка, аудит, объяснение, план, безопасный repair, patch и upgrade planner |
| 12 | scaffold, merge, frontend/PHP quality, provenance, tokens, layouts и visual E2E |
Полные имена, входные Zod-схемы и описания доступны клиенту через стандартный MCP tools/list. Для начала неизвестной задачи используйте diagnose_request, find_tool или get_workflow.
Структура проекта
src/
├── data/ # runtime-справочники
├── registry/ # тематические регистрации tools/resources и Zod-схемы
├── tools/ # domain-функции MCP
├── utils/serialization.ts # безопасная сериализация форматов
├── server.ts # composition root MCP-сервера
└── index.ts # stdio entrypoint
knowledge/ # provenance и будущий источник данных
├── catalog.yaml # проверяемый каталог runtime-источников
└── upstream.json # зафиксированные ref, commit и дата InstantCMS
skills/ # переносимые AI-workflows
evals/ # кросс-клиентские сценарии
.github/workflows/ # CI, release и еженедельная синхронизация
AGENTS.md # общие инструкции coding agents
CLAUDE.md # тонкий адаптер ClaudeПодробности по внутреннему устройству — в исходниках src/ и справочниках knowledge/. Корневая документация (архитектура, история изменений, правила участия) в репозиторий не коммитится.
Поддержание актуальности
GitHub main является единственным источником истины. Работайте только из Git clone и начинайте изменения с git pull --ff-only. Команда npm run check проверяет TypeScript, тесты и наличие AI-адаптеров. GitHub Actions повторяет typecheck, тесты, coverage и build для каждого push и pull request.
npm run knowledge:update -- --ref latest загружает последний стабильный тег из официального репозитория instantsoft/icms2, обновляет runtime-карты и фиксирует точный commit SHA. Для проверки ветки разработки используйте npm run knowledge:update -- --ref master, а для просмотра доступного обновления без генерации — npm run knowledge:source:status -- --ref latest.
Исходники кэшируются в .cache/icms2. Сетевой доступ нужен только во время обновления; MCP и npm-пакет используют проверенный snapshot автономно. npm run knowledge:check проверяет provenance-манифест и generated metadata.
Как работает синхронизация
instantsoft/icms2 (tag или branch)
↓ shallow fetch
.cache/icms2
↓ deterministic parsers
src/data/*.ts + knowledge/upstream.json
↓ typecheck + tests + review
Git commit / release snapshotlatest выбирает максимальный стабильный semver-тег из git ls-remote. Сейчас он разрешается в тег 2.18.2 и commit 4a13609c480cccfcbd27dbab424d6bf00ad67375. Парсеры извлекают хуки из вызовов hook, hookAll и runHook, а компоненты и публичные сигнатуры — из system/core/*.php. Проверенные описания и примеры накладываются поверх source evidence. Время генерации берётся из upstream commit, поэтому повторный запуск для одного SHA не создаёт шумовой diff.
Основные команды:
# Проверить, появился ли новый stable commit (код 2 означает доступное обновление)
npm run knowledge:source:status -- --ref latest
# Обновить snapshot с последнего стабильного тега
npm run knowledge:update -- --ref latest
# Проверить совместимость с веткой разработки InstantCMS
npm run knowledge:update -- --ref master
# Проверить каталог без доступа к сети
npm run knowledge:checkWorkflow Sync InstantCMS knowledge запускается каждый понедельник и создаёт PR только при фактическом изменении snapshot. Он фиксирует прежний и новый коммит в теле PR, падает, если синхронизация тронула файлы вне src/data/, src/generated/ и knowledge/, и проверяет снимки API по версиям (knowledge:versions:check) перед созданием PR. Workflow CI дополнительно заново генерирует данные из последнего stable-тега на каждом PR и push.
Парсеры проверяются на закреплённом исходнике: src/__tests__/upstream-parsers.test.ts требует, чтобы коммит источника совпадал с knowledge/upstream.json, и проверяет на нём известные хуки, публичные методы ядра, события и таблицы из дампа установки. Без исходника тест пропускается, но в CI job Test against pinned InstantCMS source задан ICMS_REQUIRE_SOURCE=1, и тогда пропуск запрещён.
Не синхронизируйте проект копированием поверх clone с удалением отсутствующих файлов. База GitHub содержит расширенные инструменты, которых может не быть в старых локальных копиях.
AI-интеграция
AGENTS.md является каноническим набором проектных инструкций для coding agents. CLAUDE.md ссылается на него, не копируя правила. OpenCode и другие клиенты должны использовать ту же каноническую инструкцию.
Skills разделены по workflow:
skills/instantcms-addon— проектирование и генерация дополнений;skills/instantcms-audit— аудит структуры, синтаксиса и безопасности.skills/instantcms-migration— миграции и изменения схемы БД;skills/instantcms-widget— виджеты, options и caching;skills/instantcms-theme— темы, overrides и layout schemes;skills/instantcms-api— REST, external API, OAuth и webhooks;skills/instantcms-upgrade— обновление между версиями InstantCMS;skills/instantcms-debug— диагностика runtime и installation failures;skills/instantcms-security— целевой security review.
Для существующего проекта рекомендуемый агентный цикл: load_instantcms_project → explain_instantcms_project → audit_instantcms_project → plan_project_changes → review → repair_instantcms_project → create_project_patch → audit_instantcms_project. Инструмент repair сразу возвращает новый file map и unified Git patch, но не записывает файлы самостоятельно.
Локальный loader рекурсивно читает только текстовые файлы, не следует по symbolic links и пропускает .git, node_modules, vendor, сборочные каталоги и бинарные данные. GitHub loader принимает owner/repository или URL публичного репозитория, точный ref и необязательный subpath. Для обоих источников действуют ограничения количества файлов, размера одного файла и общего объёма.
Для разработки темы используйте цикл load_instantcms_project → analyze_instantcms_template → scaffold_complete_template/scaffold_template_override → audit_template_widget_positions → validate_layout_scheme → audit_template_frontend → create_project_patch → audit_instantcms_project. Design tokens можно получить через extract_template_design_tokens, PHP quality-конфигурацию — через scaffold_template_php_quality, а Docker/Playwright окружение — через scaffold_template_e2e_environment.
Перед обновлением InstantCMS зафиксируйте карту исходников через index_upstream_template_sources, передайте старую и новую upstream-карты в check_template_override_compatibility, затем вызовите merge_template_overrides. Неизменённые overrides обновляются автоматически; одно однозначное upstream-изменение переносится в кастомный файл; неоднозначные изменения остаются конфликтами и не модифицируются. Результат всегда содержит reviewable Git patch.
Большие справочники не копируются в skills. Агент получает факты через MCP tools/resources и knowledge/, а skill определяет порядок работы и критерии готовности.
Подключение AI-клиентов
Codex и совместимые coding agents: читают корневой
AGENTS.mdи skills изskills/.Claude Code: начинает с
CLAUDE.md, который направляет к каноническомуAGENTS.md.OpenCode и другие MCP-клиенты: используют конфигурацию
mcpServersвыше и те же MCP tools/resources; проектные правила остаются вAGENTS.md.
Так правила разработки не расходятся между клиентами, а предметные данные обновляются один раз через knowledge pipeline.
Структура генерируемого пакета
addon.zip
├── manifest.ru.ini
├── install.sql
└── package/
└── system/
├── controllers/{name}/
│ ├── frontend.php
│ ├── model.php
│ ├── manifest.xml
│ ├── install.php
│ ├── uninstall.php
│ ├── actions/
│ ├── backend/
│ ├── hooks/
│ └── widgets/
└── languages/ru/controllers/{name}/{name}.phpКлючевые инварианты InstantCMS:
actions располагаются в отдельных файлах;
backend grids являются функциями
grid_*, а не классамиcmsGrid;языковые файлы находятся вне каталога контроллера;
backend content templates размещаются в подпапке
backend/контроллера активной frontend-темы;admincoreuiпредоставляет backend layout shell.
Диагностика
validate_addon сохраняет совместимые массивы errors, warnings и tips, а также возвращает структурированный массив:
{
"code": "MISSING_REQUIRED_FILE",
"severity": "error",
"path": "frontend.php",
"message": "Отсутствует обязательный файл: frontend.php"
}Проверки
npm run typecheck
npm test
npm run test:integration
npm run knowledge:check
npm run check
npm run buildТесты покрывают безопасную сериализацию, строгую проверку имён и версий, YAML scalars, неоднозначный поиск и round-trip scaffoldAddon → validateAddon.
Релизы и защита main
Изменения в main принимаются через Pull Request. GitHub требует успешные Build, Node.js 22/24 и InstantCMS upstream compatibility, один approving review, разрешение обсуждений и линейную историю. Force-push и удаление main запрещены классической branch protection и repository ruleset Protect main.
Push тега v* или публикация GitHub Release запускает .github/workflows/release.yml: проверки, сборку, lint, создание ZIP и публикацию @maxisoft/instantcms-mcp в npm. Тег должен совпадать с версией в package.json и package-lock.json. Уже опубликованная версия пропускается; предварительные релизы публикуются с dist-tag next, стабильные — latest.
Публикация использует Node.js 24, npm 11 и Trusted Publishing без NPM_TOKEN. В настройках npm-пакета необходимо привязать GitHub repository instantcms-dev/instantcms-mcp и workflow filename release.yml, без пути .github/workflows/.
Лицензия
MIT — см. LICENSE.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
This server cannot be deployed
Maintenance
Related MCP Connectors
Build, validate, deploy — HTTP APIs, cron jobs, webhooks and MCP tools — from your AI client.
The Instant MCP server is a wrapper around the Instant Platform SDK that enables creating, managing, and updating InstantDB applications directly within an editor. It provides tools for fetching rules files for LLMs, retrieving and pushing app schemas, managing permission rules, and executing database queries. Key capabilities include schema management (get-schema, push-schema), permission management (get-perms, push-perms), query execution, and listing recent query history.
Docsy gives AI assistants current, version-specific documentation for libraries, frameworks and SDKs. Resolve library IDs and versions, then search and fetch focused official documentation with original source links using five read-only MCP tools. Hosted Streamable HTTP with OAuth 2.1 sign-in.
Self-hosted AI prompt library: prompts, collections, tags, teams, chains. 29 MCP tools for agents.
Related MCP Servers
- AlicenseBqualityDmaintenanceEnables AI agents to interact with Magento 2 development environments through comprehensive tools for module management, database operations, cache control, configuration management, and system diagnostics. Supports complete development workflows from module creation to deployment and troubleshooting.28129 npm41MIT
- AlicenseAqualityDmaintenanceProvides instant, offline access to comprehensive PrestaShop development documentation including 647+ hooks, module guides, component architecture, APIs, and theme development resources for AI assistants.79MIT
- AlicenseCqualityDmaintenanceEnables AI-assisted development for Webasyst framework projects, including creating and managing apps, plugins, themes, and configurations through natural language commands.389 npm8MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to interact with Magic-API development environment, supporting script syntax query, API management, debugging, and knowledge search for efficient development.MIT