Редактор MCP Unity (игровой движок)
MCP Unity — это реализация Model Context Protocol для Unity Editor, позволяющая помощникам ИИ взаимодействовать с вашими проектами Unity. Этот пакет обеспечивает мост между Unity и сервером Node.js, который реализует протокол MCP, позволяя агентам ИИ, таким как Claude, Windsurf и Cursor, выполнять операции в Unity Editor.
Функции
Интеграция с IDE — доступ к кэшу пакетов
MCP Unity обеспечивает автоматическую интеграцию с IDE типа VSCode (Visual Studio Code, Cursor, Windsurf) путем добавления папки Unity Library/PackedCache в ваше рабочее пространство. Эта функция:
Улучшает интеллект кода для пакетов Unity
Обеспечивает улучшенное автодополнение и тип информации для пакетов Unity.
Помогает помощникам по кодированию на основе ИИ понять зависимости вашего проекта
Инструменты сервера MCP
Для управления сценами Unity и игровыми объектами, а также для запроса их через MCP доступны следующие инструменты:
execute_menu_item: выполняет пункты меню Unity (функции, отмеченные атрибутом MenuItem)Пример подсказки: «Выполните пункт меню «GameObject/Create Empty», чтобы создать новый пустой GameObject»
select_gameobject: выбирает игровые объекты в иерархии Unity по пути или идентификатору экземпляраПример подсказки: «Выберите объект основной камеры в моей сцене»
update_gameobject: обновляет основные свойства GameObject (имя, тег, слой, активное/статическое состояние) или создает GameObject, если он не существует.Пример подсказки: «Установите тег объекта Player на „Враг“ и сделайте его неактивным»
update_component: обновляет поля компонента в GameObject или добавляет его в GameObject, если он не содержит компонентаПример подсказки: «Добавьте компонент Rigidbody к объекту Player и установите его массу равной 5»
add_package: Устанавливает новые пакеты в диспетчере пакетов UnityПример подсказки: «Добавить пакет TextMeshPro в мой проект»
run_tests: запускает тесты с помощью Unity Test RunnerПример подсказки: «Выполнить все тесты EditMode в моем проекте»
send_console_log: Отправить журнал консоли в UnityПример запроса: «Отправить журнал консоли в редактор Unity»
add_asset_to_scene: добавляет актив из AssetDatabase в сцену Unity.Пример подсказки: «Добавить префаб Player из моего проекта в текущую сцену»
Ресурсы сервера MCP
unity://menu-items: Извлекает список всех доступных пунктов меню в редакторе Unity для упрощения работы инструментаexecute_menu_itemПример подсказки: «Показать мне все доступные пункты меню, связанные с созданием GameObject»
unity://scenes-hierarchy: Извлекает список всех игровых объектов в текущей иерархии сцен Unity.Пример подсказки: «Покажите мне текущую иерархическую структуру сцен»
unity://gameobject/{id}: извлекает подробную информацию о конкретном GameObject по идентификатору экземпляра или пути объекта в иерархии сцены, включая все компоненты GameObject с их сериализованными свойствами и полями.Пример запроса: «Получите подробную информацию об игровом объекте Player»
unity://logs: Извлекает список всех журналов из консоли Unity.Пример запроса: «Покажите мне последние сообщения об ошибках из консоли Unity»
unity://packages: Извлекает информацию об установленных и доступных пакетах из диспетчера пакетов Unity.Пример запроса: «Вывести список всех пакетов, установленных в моем проекте Unity»
unity://assets: Извлекает информацию об активах в базе данных активов UnityПример подсказки: «Найти все текстурные ресурсы в моем проекте»
unity://tests/{testMode}: Извлекает информацию о тестах в Unity Test RunnerПример запроса: «Вывести список всех доступных тестов в моем проекте Unity»
Related MCP server: MCP Manager
Требования
Unity 2022.3 или более поздняя версия — для установки сервера
Node.js 18 или более поздняя версия — для запуска сервера
npm 9 или более поздней версии — для отладки сервера
Установка
Установка MCP Unity Server представляет собой многоэтапный процесс:
Шаг 1: Установите пакет Unity MCP Server через Unity Package Manager
Откройте диспетчер пакетов Unity (Окно > Диспетчер пакетов)
Нажмите кнопку «+» в верхнем левом углу.
Выберите «Добавить пакет из URL git...»
Введите:
https://github.com/CoderGamester/mcp-unity.gitНажмите «Добавить».
Шаг 2: Установка Node.js
Для запуска сервера MCP Unity на вашем компьютере должен быть установлен Node.js 18 или более поздней версии:
Посетите страницу загрузки Node.js
Загрузите установщик Windows (.msi) для версии LTS (рекомендуется)
Запустите установщик и следуйте указаниям мастера установки.
Проверьте установку, открыв PowerShell и выполнив:
node --versionПосетите страницу загрузки Node.js
Загрузите установщик macOS (.pkg) для версии LTS (рекомендуется)
Запустите установщик и следуйте указаниям мастера установки.
Либо, если у вас установлен Homebrew, вы можете запустить:
brew install node@18Проверьте установку, открыв Терминал и выполнив:
node --version
Шаг 3: Настройка клиента AI LLM
Откройте редактор Unity
Перейдите в Инструменты > MCP Unity > Окно сервера.
Нажмите кнопку «Настроить» для вашего клиента AI LLM, как показано на изображении ниже.
Подтвердите установку конфигурации с помощью всплывающего окна.
Откройте файл конфигурации MCP вашего AI-клиента (например, claude_desktop_config.json в Claude Desktop) и скопируйте следующий текст:
Замените
ABSOLUTE/PATH/TOна абсолютный путь к вашей установке MCP Unity или просто скопируйте текст из окна MCP Server редактора Unity (Инструменты > MCP Unity > Окно Server).
Запустить сервер MCP редактора Unity
Откройте редактор Unity
Перейдите в Инструменты > MCP Unity > Окно сервера.
Нажмите «Запустить сервер», чтобы запустить сервер WebSocket.
Откройте Claude Desktop или вашу среду программирования AI (например, Cursor IDE, Windsurf IDE и т. д.) и запустите инструменты Unity.
Когда клиент ИИ подключается к серверу WebSocket, он автоматически отображается в зеленом поле в окне.
Необязательно: установите порт WebSocket
По умолчанию сервер WebSocket работает на порту 8090. Изменить этот порт можно двумя способами:
Откройте редактор Unity
Перейдите в Инструменты > MCP Unity > Окно сервера.
Измените значение «WebSocket Port» на желаемый номер порта.
Unity установит системную переменную среды UNITY_PORT на новый номер порта.
Перезапустите сервер Node.js.
Нажмите еще раз «Запустить сервер», чтобы повторно подключить веб-сокет Unity Editor к серверу Node.js MCP.
Установите переменную среды UNITY_PORT в терминале
Powershell GXP6
Командная строка/Терминал GXP7
Перезапустите сервер Node.js.
Нажмите еще раз «Запустить сервер», чтобы повторно подключить веб-сокет Unity Editor к серверу Node.js MCP.
Необязательно: установите тайм-аут
По умолчанию таймаут между сервером MCP и WebSocket составляет 10 секунд. Вы можете изменить его в зависимости от используемой ОС:
Откройте редактор Unity
Перейдите в Инструменты > MCP Unity > Окно сервера.
Измените значение «Время ожидания запроса (секунды)» на желаемое время ожидания в секундах.
Unity установит системную переменную среды UNITY_REQUEST_TIMEOUT на новое значение тайм-аута.
Перезапустите сервер Node.js.
Нажмите еще раз «Запустить сервер», чтобы повторно подключить веб-сокет Unity Editor к серверу Node.js MCP.
Для ОС, отличных от Windows, необходимо настроить два места:
В редакторе истекло время процесса
Откройте редактор Unity
Перейдите в Инструменты > MCP Unity > Окно сервера.
Измените значение «Время ожидания запроса (секунды)» на желаемое время ожидания в секундах.
Тайм-аут WebSocket
Установите переменную среды UNITY_REQUEST_TIMEOUT в терминале
Powershell GXP8
Командная строка/Терминал GXP9
Перезапустите сервер Node.js.
Нажмите еще раз «Запустить сервер», чтобы повторно подключить веб-сокет Unity Editor к серверу Node.js MCP.
[!КОНЧИК]
Время ожидания между вашей средой программирования AI (например, Claude Desktop, Cursor IDE, Windsurf IDE) и сервером MCP зависит от среды IDE.
Отладка сервера
Сервер MCP Unity создан с использованием Node.js. Требуется скомпилировать код TypeScript в JavaScript в каталоге build . Чтобы построить сервер, откройте терминал и:
Перейдите в каталог сервера:
cd ABSOLUTE/PATH/TO/mcp-unity/Server~Установить зависимости:
npm installСборка сервера:
npm run buildЗапускаем сервер:
node build/index.js
Отладьте сервер с помощью @modelcontextprotocol/inspector :
Powershell
Командная строка/Терминал
Не забудьте завершить работу сервера с помощью Ctrl + C перед закрытием терминала или отладкой с помощью MCP Inspector .
Включите ведение журнала на вашем терминале или в файле log.txt:
Powershell GXP16
Командная строка/Терминал GXP17
Поиск неисправностей
Убедитесь, что сервер WebSocket запущен (проверьте окно сервера в Unity)
Отправка сообщения журнала консоли от клиента MCP для принудительного переподключения между клиентом MCP и сервером Unity.
Измените номер порта в окне MCP Server редактора Unity. (Инструменты > MCP Unity > Окно Server)
Проверьте консоль Unity на наличие сообщений об ошибках.
Убедитесь, что Node.js правильно установлен и доступен в вашем PATH
Убедитесь, что все зависимости установлены в каталоге сервера.
Инструмент run_tests возвращает следующий ответ:
Эта ошибка возникает из-за того, что мостовое соединение теряется при перезагрузке домена при переключении в режим воспроизведения.
Обходной путь — отключить функцию «Перезагрузить домен» в меню «Правка» > «Настройки проекта» > «Редактор» > «Ввести настройки режима воспроизведения» .
Поддержка и обратная связь
Если у вас есть вопросы или вам нужна поддержка, пожалуйста, создайте тему в этом репозитории.
Альтернативно вы можете связаться по адресу:
Линкедин:
Дискорд: gamester7178
Электронная почта: game.gaester@gmail.com
Внося вклад
Вклады приветствуются! Не стесняйтесь отправлять запрос на извлечение или открывать Issue с вашим запросом.
Зафиксируйте изменения, следуя формату обычных коммитов .
Лицензия
Этот проект находится под лицензией MIT