3. Описание MCP-сервера › 3.3 Движок › Концепция

Семья engine — сорок четыре MCP-инструмента, которые работают с файлами и данными магазина через его движок: читают карту проекта, загружают и сохраняют модули, шаблоны, статику и картинки, выполняют запросы к базе, прикрепляют файлы к элементам.

Кому и зачем

Доступ к движку — это доступ разработчика. Право на изменение в ветке «Прямой доступ → Разработка» открывает магазин целиком: логин, которому можно сохранить модуль, может сделать с магазином всё, что умеет сам магазин (см. «Вход, права, лицензия»).

Обычную работу — завести товар, поставить задачу, поменять цену — удобнее и безопаснее делать через AI-инструменты магазина. Их пишет владелец под свои правила, и агент берёт их раньше движка: список даёт tool_list.

Правила

У семьи одни правила на все сорок четыре инструмента — engine.md в папке Engine\MCP. Первый вызов любого инструмента движка в сессии отказывает с ними; после подтверждения через session_rules_accept работают все инструменты семьи. Это осознанный порог: движок нужен тем, кто готов с ним работать, а обычная работа идёт через AI-инструменты.

Разделы

Раздел Инструменты Что делают
Общие engine_search, engine_whole_load где встречается строка, файл целиком на компьютер
Карта engine_map_tree, engine_map_units из чего состоит магазин
PHP-файлы engine_php_* корневые скрипты, модули и библиотеки
Шаблоны engine_html_* шаблоны модулей
Группы шаблонов engine_template_* группы шаблонов целиком
Статика engine_static_*, engine_static_dir_* css, js и другие файлы статики, их папки, журналы сервера
Картинки engine_image_*, engine_image_dir_* картинки, шрифты и значки шаблонов, их папки
Версии engine_history_* история сохранённых версий файла
Конфигурация и кеш engine_dev_* параметры config.json, очистка кеша
База данных engine_db_* структура таблиц, запросы, блокировки
Файлы элементов engine_files_* файлы, прикреплённые к строкам магазина

Путь

Файлы и папки адресуются путём от корня магазина. Движок пишет пути с приставкой ./../ — так они приходят в карте. В параметрах приставка необязательна: units/melbis_cataloge.php и ./../units/melbis_cataloge.php — один и тот же файл.

Путь не выходит за пределы магазина. Путь с .. и путь к config.json получают отказ ACCESS_DENIED — это граница, а не недостающее право. Параметры конфигурации читает engine_dev_config.

Часть магазина

Карта называет для каждой папки и файла часть магазина, в которой он лежит, — branch. По ней видно, какими инструментами с ним работать.

branch Где лежит
root корень сайта: index.php, .htaccess и другие файлы
unit units/: модули, библиотеки и группы модулей по началу имени
html templates/<группа>/units/: шаблоны модулей и их файлы
static templates/<группа>/statics/: статика
image templates/<группа>/images/: картинки, шрифты, значки
log core/log/: журналы сервера
template другие папки внутри группы шаблонов

Карта в памяти сессии

Части карты — дерево файлов, функции модулей, таблицы базы, конфигурацию — сервер читает из магазина при первом вызове и держит до конца сессии. Параметр reload читает часть заново: это нужно, когда файлы менялись вне сессии, например из программы.

Дерево перечитывается само после каждого создания, переименования и удаления, а также после сохранения модуля с манифестом.

Таблицы в ответах

Длинные списки приходят таблицей: в columns имена колонок перечислены один раз, в rows — строки со значениями в том же порядке.