UnityMCP
UnityMCP — это плагин для редактора Unity, реализующий протокол Model Context Protocol (MCP). Он позволяет ИИ-ассистентам (например, Claude) напрямую взаимодействовать с Unity: отслеживать состояние редактора в реальном времени, выполнять C#-команды и получать логи. Репозиторий проекта: UnityMCP на GitHub.
Проект состоит из двух частей:
- Unity Plugin (UnityMCPPlugin) — подключается к вашему Unity-проекту, предоставляет отладочное окно, веб-сокет-клиент, движок выполнения C# и систему логирования.
- MCP Server (unity-mcp-server) — TypeScript-сервер, который через стандартные MCP-инструменты открывает доступ к функциям редактора.
Быстрый старт
Предварительные требования
- Unity 2022.3 или новее
- Node.js 18+
- npm 9+
Установка плагина Unity
- Скопируйте папку
UnityMCPPlugin в Assets/ вашего Unity-проекта.
- Откройте проект в Unity.
- В верхнем меню выберите
UnityMCP > Debug Window, чтобы открыть отладочное окно.
Установка MCP-сервера
cd unity-mcp-server
npm install
npm run build
Запуск
cd unity-mcp-server
node build/index.js
После запуска сервера откройте Unity и перейдите в UnityMCP > Debug Window — плагин автоматически подключится к серверу.
Автоматическая установка через Smithery (для Claude Desktop)
npx -y @smithery/cli install @Arodoid/unitymcp --client claude
Доступные инструменты MCP
- get_editor_state — получает текущее состояние редактора (активные GameObject, выделенные объекты, режим Play, иерархию сцены, структуру проекта). Поддерживает форматы: Raw, только скрипты, без скриптов.
- execute_editor_command — выполняет C#-код прямо в редакторе. Полный доступ к
UnityEngine и UnityEditor. Есть защита от зависаний (timeout).
- get_logs — получает и фильтрует логи редактора по типу, содержимому и времени. Настраиваемые поля вывода и управление буфером.
Примеры команд
// Центрировать камеру на выделенном объекте
Selection.activeGameObject.transform.position = Vector3.zero;
// Переключить режим Play
EditorApplication.isPlaying = !EditorApplication.isPlaying;
// Создать куб
GameObject.CreatePrimitive(PrimitiveType.Cube);
Разработка и отладка
- Сборка сервера:
npm run build (в папке unity-mcp-server)
- Автоматическая пересборка при изменениях:
npm run watch
- Инспектирование MCP-трафика:
npm run inspector
Технические детали
- Протокол: WebSocket на порту 8080, двусторонняя связь, JSON-сообщения, автоматическое переподключение.
- Безопасность: таймауты команд, валидация ошибок, управление буфером логов, мониторинг соединения.
- Обработка ошибок: система обрабатывает проблемы соединения, ошибки выполнения команд, ошибки компиляции, исключения времени выполнения и таймауты.
Внесение вклада
- Форкните репозиторий.
- Создайте ветку:
git checkout -b feature/amazing-feature.
- Закоммитьте изменения:
git commit -m 'Add amazing feature'.
- Отправьте в свой форк:
git push origin feature/amazing-feature.
- Откройте Pull Request.
Лицензия
Проект распространяется по лицензии CC BY-NC 4.0.
Ссылки
Комментарии
Комментариев пока нет. Будьте первым.