MCP-плагин для Unreal Engine 5.7/5.8: Claude получает полный read/write доступ к Blueprints, Materials, Animation. Создаёт и редактирует ассеты, управляет сценой в реальном времени.
# Установка как плагин Unreal Engine 5.7/5.8:
# 1. Скопировать папку Plugins/Monolith в папку Plugins проекта UE
# 2. В Editor: Edit → Plugins → найти Monolith → Enable → перезапустить Editor
# 3. MCP-сервер запускается автоматически при открытии редактора (порт 8080)
# Claude Code (CLI):
claude mcp add unreal --transport sse -- http://localhost:8080/sse
# Claude Desktop — claude_desktop_config.json:
{ "mcpServers": { "unreal": { "url": "http://localhost:8080/sse" } } }
Один плагин. Каждая область Unreal. Ноль зависимостей.
Большинство MCP-интеграций для Unreal регистрируют каждое действие как отдельный инструмент. Это заливает контекстное окно AI сотнями имён инструментов ещё до того, как вы задали хоть один вопрос — а по-настоящему полезное тонет в этом потоке. Я создал Monolith, потому что хотел, чтобы мой AI тратил свой контекст на решение моей задачи, а не на запоминание каталога инструментов.
Один плагин. Один MCP-эндпоинт. Горстка инструментов с диспетчеризацией по пространствам имён вместо ~1 400+. AI вызывает monolith_discover() и monolith_guide(), когда ему нужно узнать, что доступно, а в остальном просто обращается к blueprint_query("create_asset", ...), material_query("compile", ...) и так далее. monolith_discover() по умолчанию краток — каждое действие возвращает только имя и однострочное описание, поэтому вывод пространства имён почти ничего не стоит; полная схема параметров доступна одним вызовом describe_query("action_schema", ...) (или параметром detail=true), когда AI действительно в ней нуждается.
Я пользуюсь этим каждый день. Это делает то, что мне нужно.
Monolith предоставляет ~1 400+ действий в 25+ встроенных пространствах имён через паттерн диспетчеризации по пространствам имён: каждая область регистрирует единственный инструмент {namespace}_query(action, params), а центральный monolith_discover() выводит всё доступное. (Точные числа намеренно приблизительные — запросите monolith_discover() для актуальных значений.)
Охваченные области: Блюпринты, Материалы, Анимация, Niagara, Меш, UI (включая CommonUI), ИИ (деревья поведения, деревья состояний, EQS, Smart Objects, Восприятие, Навигация), Gameplay Ability System, конечные автоматы Logic Driver, комбо-деревья ComboGraph, Аудио (Sound Cues + MetaSounds), управление редактором (сборки UBT, захват логов, захват сцены, предпросмотр и инспекция ассетов), поиск по исходному коду движка (1 000 000+ символов, полностью офлайн), поиск по ассетам проекта (SQLite FTS5), конфигурация INI, Level Sequences, фреймворк рефлексии bulk_fill / describe для глубокой записи свойств, инструмент самообучения AI monolith_guide, а также новый слой Reflection Intelligence (v0.17.0): decision (сбор архитектурных записей решений), risk (сигналы горячих точек репозитория + совместного изменения + условные ворота), cppreflect (запросы к рефлексивным краям UE 5.7 UHT с перекрёстным соединением с реестром ассетов), network (инспекция репликации — реплицируемые классы, RPC, обработчики OnRep, аудит несбалансированных обработчиков), pipeline (read-only действия-композиторы для ревью PR + предварительной проверки перед релизом) и reflect (обслуживание индексов — принудительная пересборка таблиц рефлексии в рамках проекта). Индексы cppreflect и network по умолчанию сканируют плагины вашего проекта, поэтому реплицируемые классы и RPC, объявленные в плагинах, попадают в область видимости без дополнительной настройки; включённые плагины из Marketplace ограничены настройкой, а встроенные компоненты движка Epic исключаются.
Эргономика MCP для LLM (также новое в v0.17.0): универсальное форматирование ответов (_fields / _omit / _compact_json) для каждого действия, параметры с тегами схемы и автоматической перезаписью \ → / в путях к ассетам, нечёткое совпадение did_you_mean при ошибках диспетчеризации, аннотации MCP tools/list (подсказки: read-only / destructive / idempotent), курсорная пагинация source_query и журнал вызовов JSONL на стороне прокси. Вся суть — дать вашему AI тратить меньше контекста на восстановление после опечаток и пробных ошибок.
Новое в v0.19.0: пакет эргономики авторинга C++ для LLM в пространстве имён source — восемь read-only запросов, чтобы ваш AI разрешал путь инклюда, точную сигнатуру, статус устаревания, зависимости Build.cs, линт заголовка или заготовку UCLASS за один запрос вместо чтения исходного кода (get_include_path, get_signature, check_deprecations, verify_symbols, find_example_usage, suggest_build_cs_deps, lint_header, generate_class_stub), плюс fix_hints на editor.get_build_errors. Исправление парсера, наконец индексирующее обычные классы/структуры со скобками в стиле Allman, утроило индекс исходного кода движка (~300 000 → ~967 000 символов), поэтому запросы для FCollisionShape, FScopeLock, FPaths и ~40 000 других типов движка теперь действительно возвращают результат. Плюс интероспекция и управление PIE в реальном времени в пространстве имён editor (pie_get_object_properties, pie_call_function, pie_set_control_rotation, pie_inject_input_action, pie_possess_spectator_free), программный вывод stat-групп (get_stat_group_values), забор данных PIE во временных рядах и чтение/запись привязок аним-узлов (animation), перечень переменных-ссылок блюпринтов (blueprint.find_variable_references) и сверка контрактов, а также первоклассный текстовый экспорт ассетов T3D (project.export_asset_text). Манифест tools/list стал меньше примерно на 40% (убраны дублирующиеся списки действий из описаний диспетчеров), а также исправлены две проблемы первого запуска (MonolithMesh теперь отложенная загрузка GeometryScripting; глубокий индексер больше не вызывает ассерт на полях UserDefinedStruct с неразрешёнными типами — проблема #70, благодарность @aggitti).
Не вышло: пакет авторинга AnimGraph в пространстве имён animation — ноды apply-additive / mesh-space-additive, ноды слотов (с валидацией по группам слотов скелета), сохранение/использование кэшированной позы, подключение output-pose и state-result, blend-by-int, синхронизированные группы, фильтры layered-blend-per-bone, ноды аним-графа Control Rig, связанные аним-слои и кондуиты конечных автоматов — плюс запекание blend-space + управление интерполяцией, демонтаж конечных автоматов (удаление состояний / переходов / перенаправление точки входа), удаление IK-солвера и форматтер auto_layout без Blueprint-Assist, работающий в релизных сборках.
Новое в v0.18.1: созданный с нуля пакет авторинга Motion Matching в пространствах имён animation, chooser и blueprint — примитивы схемы/базы данных Pose Search, таблицы зеркал, авторинг chooser-таблиц, граф Motion Matching в AnimBP + стопа-ИК, потокобезопасный авторинг AnimBP (рефлексивный Property Access, флаг потокобезопасной функции и chooser на основе exec, питающий базу данных Motion Matching), каркас персонажа/актора, а также пакет создания/запуска ретаргетинга. Плюс инструментарий PIE / профилирования (асинхронные PIE-смок-сессии, профилировочные скобки CSV / Insights, захват клипов + кадров анимации, авторинг карт, пересборка/валидация навигации), авторинг конечных автоматов + телеметрия аним-инстансов в реальном времени, универсальный ИИ-контроллер, запускающий BehaviorTree при захвате с классами задач BT для управления движением, инспекция унаследованных нативных компонентов и считывание полей DataAsset в реальном времени.
Новое в v0.18.0: прямое редактирование HLSL Niagara — чтение и перезапись HLSL-исходников ноды CustomHlsl (get_custom_hlsl_text / set_custom_hlsl_text), а также селекторы simulation-stage / event-handler в действиях модульного стека и мост ParameterMap для create_module_from_hlsl (PR #65, благодарность @middle233). Niagara также получила пакет поиска и обнаружения (search_by_parameter, search_by_data_interface, query_niagara, find_similar_systems, search_by_material, find_niagara_references, list_system_data_interfaces).
Полная разбивка по пространствам имён: Справочник инструментов (вики).
Работает с Claude Code, Cursor, Cline или любым другим MCP-совместимым клиентом. Windows, macOS, Linux.
1. Поместите в папку Plugins/
cd YourProject/Plugins
git clone https://github.com/tumourlove/monolith.git Monolith
(Или скачайте zip-архив последнего релиза и распакуйте по тому же пути. Архив релиза включает предкомпилированные DLL, поэтому проекты, использующие только Blueprint, могут сразу открыть редактор без пересборки. Monolith собирается на UE 5.7 и 5.8 из одного исходного дерева — но предкомпилированные DLL привязаны к конкретной версии движка, поэтому пользователям только Blueprint рекомендуется скачивать zip для своей версии движка: Monolith-vX.Y.Z-UE5.7.zip или -UE5.8.zip. Сборка из исходников работает в обоих случаях.)
2. Создайте файл .mcp.json в корне проекта (в той же папке, что и ваш .uproject):
{
"mcpServers": {
"monolith": {
"command": "Plugins/Monolith/Binaries/monolith_proxy.exe",
"args": []
}
}
}
Нативный C++ прокси поддерживает активность вашей ИИ-сессии при перезапуске редактора. Инструкции по Cursor/Cline, macOS/Linux или Python-фолбэку смотрите на вики-странице установки.
3. Откройте редактор. Подождите 30-60 секунд для первоначальной индексации. Когда вы увидите в Output Log (с фильтром LogMonolith) сообщение Monolith MCP server listening on port 9316, подключите ваш ИИ-клиент и спросите "what Monolith tools do you have?" для проверки.
Файлы-инструкции для проектов (CLAUDE.md, AGENTS.md, .cursorrules и т.д.) различаются для каждого ассистента — просто вставьте список пространств имён в ваш ИИ и попросите его сгенерировать правильный формат для вашего инструментария. Полные варианты установки, устранение неполадок и настройка после установки находятся на вики-странице установки.
В папке Binaries/ поставляются два независимых C++ исполняемых файла, которые работают без запуска редактора:
monolith_proxy.exe — прокси для MCP stdio↔HTTP. Поддерживает активность вашей ИИ-сессии при перезапусках редактора. Используется конфигурацией .mcp.json выше.monolith_query.exe — офлайн-инструмент запросов. Предоставляет доступ к индексу исходников движка, индексу ассетов проекта и полному набору возможностей Reflection Intelligence (decision / risk / cppreflect / network) без запуска UE — байтовая идентичность с живым сервером, проверяемая механизмом сравнения версий при сборке. Мгновенный запуск; полезен для терминальных запросов и в CI, когда редактор недоступен.Подробности: вики Справочник по инструментам.
По умолчанию отключено начиная с версии v0.14.6. Для включения установите флажок Auto Update Enabled в меню Редактор > Настройки > Плагины > Monolith — проверяет GitHub Releases при запуске редактора, сверяет SHA256 скачанного zip-архива с маркером из релиз-ноутов, заменяет плагин при выходе из редактора (после запроса Y/N). Подробности: вики Автообновление.
Monolith запускает локальный HTTP-сервер на порту 9316 для приема MCP-трафика. Модуль FHttpServerModule в UE не предоставляет параметра привязки к адресу, поэтому прослушиватель доступен на всех сетевых интерфейсах, а не только на 127.0.0.1. CORS ограничен источниками localhost (что блокирует кросс-доменные чтения из браузера), но не блокирует прямые HTTP-запросы от других устройств в той же локальной сети.
Если вы работаете в ненадежной сети: либо добавьте правило в Брандмауэр Windows, блокирующее входящие подключения TCP к порту 9316 с адресов, не являющихся loopback, либо снимите флажок MCP Server Enabled в меню Редактор > Настройки > Плагины > Monolith и перезапустите редактор.
Полную модель угроз и политику раскрытия информации смотрите в SECURITY.md.
Docs/specs/Вклад приветствуется. Смотрите CONTRIBUTING.md. Каждый релиз в CHANGELOG включает имена авторов PR и тех, кто сообщил о проблемах, чья работа вошла в релиз — признание заслуг.
MIT — информацию о правахowners смотрите в ATTRIBUTION.md.