MCP server for developing InstantCMS 2 addons and templates
InstantCMS MCP Server
MCP (Model Context Protocol) сервер для разработки дополнений и шаблонов на базе InstantCMS 2.
Подключив этот сервер к AI-ассистенту (Claude, Cursor и др.), вы получаете полный контекст системы — хуки, API классов, структуры файлов — и можете создавать рабочие дополнения с первого запроса.
Возможности
- 102 хука с описанием параметров, типов и готовыми примерами реализации
- 170 событий из таблицы cms_events
- 38 классов ядра (cmsModel, cmsTemplate, cmsDatabase и др.) с 500+ методами
- Генерация скаффолда — все файлы дополнения за один вызов
- 50 таблиц БД с полными схемами
- 61 контроллер с 809 экшенами
- 120 хелпер-функций (template, html, files, strings)
- 6 PHP классов (Jevix, Google Auth, Mobile Detect, RSS, IDNA, YAML)
- Валидация структуры дополнений
- Поиск хуков по имени, описанию, категории
- Примеры кода для типовых задач
Установка
Требования
Клонирование и сборка
git clone https://github.com/your-username/instantcms-mcp.git
cd instantcms-mcp
npm install
npm run build
Подключение к Claude Desktop
Добавьте в ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) или %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": {
"instantcms": {
"command": "node",
"args": ["/absolute/path/to/instantcms-mcp/dist/index.js"]
}
}
}
Перезапустите Claude Desktop. В чате появятся инструменты с префиксом instantcms.
Подключение к Cursor / другим MCP-клиентам
{
"mcp": {
"servers": {
"instantcms": {
"command": "node",
"args": ["/absolute/path/to/instantcms-mcp/dist/index.js"]
}
}
}
}
Запуск инспектора (отладка)
npm run inspector
Инструменты (38)
Базовые (14)
| Tool |
Описание |
get_addon_structure |
Структура файлов дополнения (5 типов) |
scaffold_addon |
Генерация готового кода всех файлов |
list_hooks |
Список хуков с фильтрацией |
get_hook_details |
Детали хука + пример реализации |
search_hooks |
Полнотекстовый поиск хуков |
get_component_api |
API класса (cmsModel, cmsTemplate и др.) |
list_components |
Список всех компонентов |
validate_addon |
Валидация структуры дополнения |
get_field_types |
Типы полей форм |
get_code_example |
Примеры кода для типовых задач |
scaffold_template |
Генерация шаблона темы |
get_template_structure |
Структура и переменные шаблона |
scaffold_layout_scheme |
Схема виджетов для modern |
list_layout_presets |
Пресеты схем |
База данных — статика (6)
| Tool |
Описание |
introspect_database |
Список таблиц БД |
describe_table |
Структура таблицы |
list_content_types |
Типы контента |
list_database_events |
Карта событий |
analyze_controller |
Анализ контроллера |
list_controllers |
Список контроллеров |
MariaDB — динамика (6)
| Tool |
Описание |
maria_execute_query |
SQL запрос |
maria_list_tables |
Список таблиц |
maria_describe_table |
Структура таблицы |
maria_get_database_info |
Статистика БД |
maria_search_tables |
Поиск таблиц |
maria_get_table_data |
Данные с пагинацией |
Исходный код (6)
| Tool |
Описание |
list_widgets |
Список виджетов |
get_widget_info |
Детали виджета |
list_traits |
Список трейтов |
get_trait_info |
Методы трейта |
list_field_types |
Типы полей |
get_field_type_info |
Детали поля |
Миграции (2)
| Tool |
Описание |
generate_migration |
Генерация SQL и install.php |
get_field_suggestions |
Подсказки по полям |
AI анализ (2)
| Tool |
Описание |
analyze_requirement |
AI анализ запроса |
suggest_addon_structure |
Структура по типу |
Ресурсы (4)
| URI |
Описание |
instantcms://hooks/all |
Все хуки (JSON) |
instantcms://components/all |
Все компоненты (JSON) |
instantcms://addon/types |
Типы дополнений (JSON) |
instantcms://quickstart |
Краткое руководство (Markdown) |
Примеры использования
Создать дополнение с нуля
Создай дополнение для отображения каталога товаров с категориями,
админ-панелью для управления, виджетом последних добавлений
и интеграцией с поиском сайта
Найти нужный хук
Какой хук использовать, чтобы добавить вкладку на страницу профиля пользователя?
Реализовать хук
Напиши реализацию хука content_after_add_approve, который добавляет
уведомление в нашу кастомную систему нотификаций
Разобраться с API
Как правильно использовать cmsModel для постраничного вывода
с несколькими JOIN и сортировкой?
Структура проекта
src/
├── data/
│ ├── hooks.ts # 102 хука по 17 категориям
│ ├── components.ts # API базовых классов
│ ├── core-api.t
Configuration
{"mcpServers": {"instantcms": {"command": "node", "args": ["/absolute/path/to/instantcms-mcp/dist/index.js"]}}}Try it
→Create a new InstantCMS addon for a product catalog with an admin panel and a recent items widget.
→Which hook should I use to inject a custom tab into the user profile page?
→Write an implementation for the content_after_add_approve hook to trigger a custom notification.
→How do I use cmsModel to perform a paginated query with multiple JOINs and custom sorting?