by instantcms-dev
Provides AI‑driven scaffolding, validation, and diagnostics for InstantCMS 2 extensions, widgets, themes, and layout schemes.
What is InstantCMS MCP Server about?
How to use InstantCMS MCP Server?
npm install @maxisoft/instantcms-mcp
npx -y @maxisoft/instantcms-mcp
{
"mcpServers": {
"instantcms": {
"command": "node",
"args": ["/absolute/path/to/instantcms-mcp/dist/index.js"]
}
}
}
scaffold_addon, validate_addon, list_hooks) through any MCP‑compatible AI client or via direct CLI commands such as npm run verify:generated to test generated artifacts on a real InstantCMS instance.Key features of InstantCMS MCP Server
npm run verify:generated deploys generated code to a live InstantCMS site, executes HTTP scenarios, and cleans up automatically.allow_write flag for write operations, secret‑value redaction, query size & timeout limits.latest/next dist‑tags.Use cases of InstantCMS MCP Server
FAQ
501 NOT_IMPLEMENTED instead of crashing.mcpServers configuration.allow_write: true flag on the specific helper; otherwise all queries are read‑only.npm version, push tags, and GitHub Actions handle build, ZIP creation, and npm publishing.MCP-сервер и набор переносимых AI-workflows для разработки дополнений, виджетов, шаблонов и layout-схем InstantCMS 2.
Сервер предоставляет структурированную базу API InstantCMS, безопасные генераторы, валидатор пакетов, диагностические инструменты и MCP resources. Runtime-данные синхронизированы с официальным репозиторием instantsoft/icms2, последняя проверенная стабильная версия — InstantCMS 2.18.2.
Текущий релиз: v1.5.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-mcp
npm-пакет: @maxisoft/instantcms-mcp. Автоматическая публикация использует Trusted Publishing (GitHub Actions OIDC). Готовая сборка также доступна в GitHub Release ZIP:
curl -L -O https://github.com/instantcms-dev/instantcms-mcp/releases/download/v1.5.0/instantcms-mcp-v1.5.0.zip
unzip instantcms-mcp-v1.5.0.zip && cd instantcms-mcp-*/release
npm install --production
node dist/index.js
Подробности секции Установка.
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 check
npm run check выполняет проверку provenance/generated metadata, TypeScript, unit-тестов и конфигураций AI-клиентов. Интеграционный MCP smoke-test запускается отдельно командой npm run test:integration.
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, widget, routes, crud_options, crud_slug, filter, cache, core_artifacts, 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) выпуск не блокируют, уязвимости в поставляемом коде — блокируют.
Релиз запускается тегом, совпадающим с версией в package.json:
npm version minor # или patch / major
git push && git push --tags
release.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 запрещены всегда;truncated), запрос имеет таймаут (по умолчанию 10 секунд);password, password_hash, api_token, token_hash, secret_key и подобных) заменяются на ***; какие именно колонки скрыты, видно в redacted_columns. Вернуть их как есть можно только явным include_sensitive: true;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 и ручные сценарии).
| Генератор | Проверка |
|---|---|
scaffold_crud |
рантайм: список, материал, 404, гость, пагинация |
scaffold_api |
рантайм: 200/501/401/405, JSON-ответы |
scaffold_addon |
рантайм: фронтенд, дашборд и грид админки |
scaffold_widget |
рантайм: привязка к позиции и рендер на главной |
scaffold_permission |
рантайм: правила регистрируются и читаются cmsPermissions::getRulesList() |
scaffold_seo |
рантайм: хук render_page внедряет Open Graph и JSON-LD в страницу |
scaffold_filter |
рантайм: грид с фильтрами в админке и применение фронтенд-фильтра к модели |
scaffold_addon (with_routes) |
рантайм: ЧПУ из routes.php через метод route() |
scaffold_crud (with_api_model) |
рантайм: контракт API и токены выдаются и проверяются |
scaffold_crud (use_seo, list_template) |
рантайм: SEO-метатеги в <head> и разметка списка таблицей |
scaffold_crud (use_slug) + scaffold_seo (use_slug) |
рантайм: ЧПУ /c/<slug>.html, 404 на чужой slug, OG по slug |
scaffold_form |
рантайм: класс формы загружается и собирает структуру |
scaffold_grid |
рантайм: функция грида возвращает колонки с фильтрами |
scaffold_cron |
рантайм: задача планировщика регистрируется и выполняется |
scaffold_email |
рантайм: письмо читается getLanguageTextFile, {плейсхолдеры} подставляются |
scaffold_admin_partial, scaffold_layout_override |
только статически |
scaffold_cache |
рантайм: класс кэша и хук <controller>_after_add вызывается ядром |
scaffold_import_export, scaffold_webhook, scaffold_external_api, scaffold_oauth |
только статически |
scaffold_migration, generate_migration, scaffold_lang, scaffold_hook |
рантайм: таблица создаётся из SQL, install_package() и хук вызываются ядром |
scaffold_test, scaffold_component |
только статически |
scaffold_template, scaffold_complete_template |
только статически: активация темы затрагивает весь сайт |
«Только статически» означает: php -l, проверка символов против реального исходника, соответствие структуре каталогов. Поведение в рантайме для этих генераторов не подтверждено.
Сервер регистрирует 100 инструментов. Ниже перечислены базовые точки входа; расширенные инструменты охватывают CRUD, БД, миграции, формы, гриды, API, email, cron, permissions, SEO, импорт/экспорт, cache, webhooks, OAuth, widgets, углублённую разработку и визуальное тестирование шаблонов, загрузку и аудит существующих проектов, patch generation и планирование обновлений.
| Инструмент | Назначение |
|---|---|
get_addon_structure |
Структура выбранного типа дополнения |
scaffold_addon |
Генерация полного installation package tree |
list_hooks |
Список хуков с фильтрами |
get_hook_details |
Детали и пример конкретного хука |
search_hooks |
Поиск по имени, описанию и параметрам |
get_component_api |
API класса или компонента |
list_components |
Список документированных компонентов |
validate_addon |
Валидация структуры и кода дополнения |
get_field_types |
Справочник полей форм |
get_code_example |
Примеры типовых операций |
scaffold_template |
Генерация базовой темы |
get_template_structure |
Структура и правила шаблонов |
scaffold_layout_scheme |
Генерация импортируемой YAML-схемы |
list_layout_presets |
Доступные layout-пресеты |
get_server_capabilities |
Версии и объём базы знаний |
find_tool / get_workflow |
Подбор инструмента и последовательности вызовов |
diagnose_request |
Определение типа задачи |
compare_instantcms_versions |
Сравнение version profiles |
validate_generated_artifacts |
Разбор XML, INI, YAML и PHP через php -l |
build_addon_archive / inspect_addon_archive |
Создание и проверка ZIP в памяти |
audit_instantcms_project |
Комплексный аудит существующего file map |
plan_project_changes |
План исправлений без изменения файлов |
repair_instantcms_project |
Только безопасные структурные исправления |
explain_instantcms_project |
Краткая карта существующего проекта |
plan_instantcms_upgrade |
План обновления между версиями InstantCMS |
load_instantcms_project |
Загрузка проекта из директории или GitHub |
create_project_patch |
Unified Git patch между двумя file map |
scaffold_complete_template |
Полный каркас темы и layout-схема |
analyze_instantcms_template |
Анализ структуры, позиций и overrides |
scaffold_template_override |
Override из upstream template-файла |
validate_layout_scheme |
Проверка YAML layout-схемы |
check_template_override_compatibility |
Проверка overrides при обновлении InstantCMS |
merge_template_overrides |
Безопасный трёхсторонний merge overrides |
audit_template_frontend |
HTML, accessibility, escaping и CSS-аудит |
extract_template_design_tokens |
Извлечение цветов, spacing и CSS tokens |
audit_template_widget_positions |
Сверка PHP-позиций с layout YAML |
scaffold_template_e2e_environment |
Docker и Playwright visual regression |
index_upstream_template_sources |
SHA-256 provenance upstream-шаблонов |
scaffold_template_php_quality |
PHPStan, PHPCS и PHPCompatibility |
Сервер также публикует MCP resources со всеми хуками, компонентами, типами дополнений и quickstart.
| Registry | Количество | Что входит |
|---|---|---|
meta-tools |
10 | capabilities, подбор workflow, диагностика, версии и артефакты |
generator-tools |
13 | addon, CRUD, формы, grid, REST API, тесты, email, cron и overrides |
knowledge-tools |
20 | хуки, компоненты, поля, шаблоны, layout, БД и контроллеры |
database-tools |
6 | безопасный доступ к MariaDB и исследование таблиц |
source-tools |
12 | widgets, traits, fields, routes, миграции и анализ требований |
language-tools |
3 | языковые ключи, language files и migration scaffold |
extension-tools |
17 | WYSIWYG, permissions, filters, SEO, import/export, cache, webhooks, OAuth и темы |
project-tools |
7 | загрузка, аудит, объяснение, план, безопасный repair, patch и upgrade planner |
template-development-tools |
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
Подробности устройства находятся в ARCHITECTURE.md, правила участия — в CONTRIBUTING.md, история изменений — в CHANGELOG.md.
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 snapshot
latest выбирает максимальный стабильный 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:check
Workflow Sync InstantCMS knowledge запускается каждый понедельник и создаёт PR только при фактическом изменении snapshot. Workflow CI дополнительно заново генерирует данные из последнего stable-тега на каждом PR и push.
Не синхронизируйте проект копированием поверх clone с удалением отсутствующих файлов. База GitHub содержит расширенные инструменты, которых может не быть в старых локальных копиях.
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 определяет порядок работы и критерии готовности.
AGENTS.md и skills из skills/.CLAUDE.md, который направляет к каноническому AGENTS.md.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:
grid_*, а не классами cmsGrid;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 принимаются через Pull Request. GitHub требует успешные Build, Node.js 18/20/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/. Подробности и восстановление после ошибки: NPM_TRUSTED_PUBLISHING_SETUP.md.
MIT — см. LICENSE.
Please log in to share your review and rating for this MCP.
Explore related MCPs that share similar capabilities and solve comparable challenges
by modelcontextprotocol
A Model Context Protocol server for Git repository interaction and automation.
by zed-industries
A high‑performance, multiplayer code editor designed for speed and collaboration.
by modelcontextprotocol
Model Context Protocol Servers
by modelcontextprotocol
A Model Context Protocol server that provides time and timezone conversion capabilities.
by cline
An autonomous coding assistant that can create and edit files, execute terminal commands, and interact with a browser directly from your IDE, operating step‑by‑step with explicit user permission.
by upstash
Provides up-to-date, version‑specific library documentation and code examples directly inside LLM prompts, eliminating outdated information and hallucinated APIs.
by daytonaio
Provides a secure, elastic infrastructure that creates isolated sandboxes for running AI‑generated code with sub‑90 ms startup, unlimited persistence, and OCI/Docker compatibility.
by continuedev
Enables faster shipping of code by integrating continuous AI agents across IDEs, terminals, and CI pipelines, offering chat, edit, autocomplete, and customizable agent workflows.
by github
Connects AI tools directly to GitHub, enabling natural‑language interactions for repository browsing, issue and pull‑request management, CI/CD monitoring, code‑security analysis, and team collaboration.
{
"mcpServers": {
"instantcms-mcp": {
"command": "npx",
"args": [
"-y",
"@maxisoft/instantcms-mcp"
],
"env": {
"API_KEY": "<YOUR_API_KEY>"
}
}
}
}claude mcp add instantcms-mcp npx -y @maxisoft/instantcms-mcp