Unity MCP Server
Unity MCP Server
Сервер MCP для Unity Editor. Позволяет ИИ-агентам, таким как Claude Code, просматривать, изменять, тестировать и делать снимки экрана вашего проекта.
Ключевые особенности
73 инструмента: сцены, игровые объекты, компоненты, префабы, трансформы, тесты, рефлексия + декомпиляция, C# eval, захват интерфейса
Клиенты с нулевой конфигурацией: один клик (или одна команда) на машину, после чего каждый проект и редактор подключаются автоматически. Никаких портов, токенов или настройки для каждого проекта
Безопасно для нескольких редакторов: каждый открытый проект запускает собственный сервер, сессии сами направляются в нужный редактор
MCP-ресурсы: логи консоли, иерархия сцены, результаты тестов, файлы проекта
Unity 2022.3+ (рекомендуется Unity 6), Node.js 18+
Related MCP server: Unity MCP Server
Установка
Package Manager > + > «Добавить пакет из git URL»:
https://github.com/Singtaa/UnityMCP.gitИли склонируйте / добавьте как submodule в Packages/com.singtaa.unity-mcp.
Настройка (один раз на машину)
Откройте проект в Unity. Сервер запускается автоматически, лаунчер разворачивается в
~/.unity-mcp/stdio.jsWindow > Unity MCP Server > Set up Claude Code
Готово. Аналог в терминале:
# macOS / Linux
claude mcp add --scope user --transport stdio unity -- node ~/.unity-mcp/stdio.js
# Windows
claude mcp add --scope user --transport stdio unity -- node "%USERPROFILE%\.unity-mcp\stdio.js"Теперь каждая сессия Claude Code в любом проекте Unity подключается к редактору именно этого проекта. Несколько редакторов рядом: каждая сессия находит свой. Если редактор закрыт или перезагружается: инструменты возвращают понятную ошибку и восстанавливаются сами. Открытие редактора прямо во время сессии тоже работает: сессия, запущенная при закрытом редакторе, немедленно регистрирует список инструментов (обслуживается из кэша для каждого проекта) и синхронизируется вживую, как только редактор поднимается — без перезапуска клиента.
Под капотом: редактор записывает per-session маяк (Temp/UnityMcp_Endpoint.json, удаляется при выходе, никогда не устаревает). Лаунчер определяет проект сессии (CLAUDE_PROJECT_DIR, иначе поиск вверх от cwd, UNITY_MCP_PROJECT) переопределяет оба) и проксирует MCP на живой endpoint этого проекта, перечитывает маяк при каждом запросе. Он объявляет tools.listChanged и следит за маячком: когда появляется редактор (или другой редактор берёт проект на себя), он отправляет уведомления list_changed, чтобы клиенты догрузили списки инструментов и ресурсов с середине сессии. Развертывание лаунчера в ~/.unity-mcp/stdio.js обновляется только через LAUNCHER_VERSION, поэтому редакторы с разными версиями пакета никогда не конкурируют за файл.
Другие MCP-клиенты: тот же лаунчер или простой HTTP (endpoint и токен отображаются в окне).
Инструменты
Группа | Инструменты ( |
Сцена |
|
Игровой объект |
|
Компонент |
|
Трансформация |
|
Редактор |
|
Префаб |
|
Тесты |
|
Захват |
|
Проект и ассеты |
|
Рефлексия |
|
Выполнение |
|
Примечательно:
unity_eval: компилирует и выполняет C#-фрагмент в редакторе без перезагрузки домена. Форма выражения возвращает его значение, форма оператора используетreturn. Стандартные объектыusingимпортируются, ведущие строкиusingподнимаются наверх. Встроенный Roslyn (потолок C# 9). Первый вызов прогревается несколько секунд, затем десятки миллисекунд на компиляциюunity_capture_panel: рендеритPanelSettingsUI Toolkit в PNG за кадром, без оформления сцены, работает в режиме редактирования и в режиме игры. Автоматически определяет активныйUIDocumentunity_assets_find: синтаксис запросов окна Project (t:Material,t:Prefab ui,l:MyLabel), функция ограничения папкой, ограниченный результат с общим количествомunity_reflection_decompile: полный C#-исходный код любого загруженного типа или методаОсобенности: подождите ~1 с после перезагрузки домена перед тестовыми инструментами;
unity_capture_game_viewработает только в режиме игры на Unity 6.3+
Ресурсы
unity://console/logs · unity://hierarchy · unity://hierarchy/{scene} · unity://tests/results · unity://project/files
Конфигурация
ProjectSettings/McpSettings.json (его нужно коммитить): HTTP-порт 5173, IPC-порт 52100, автозапуск, токен авторизации.
Порты заняты сервером другого проекта? Свободная пара выделяется автоматически и хранится на машине в UserSettings/McpPortOverride.json (исключено через gitignore), поэтому перестановки портов никогда не уходят в команду. Личность проекта подтверждается при каждом подключении моста: редактор никогда не может присоединиться к серверу другого проекта, даже при неправильной настройке портов.
Ручной запуск сервера: node src/server.js при условии, что MCP_PROJECT_ROOT содержит путь к проекту.
Совместимость с Unity CLI
Дополняет, а не конкурирует:
Unity CLI управляет жизненным циклом редактора: установка,
unity open, сборки, CIUnityMCP управляет живой сессией редактора: захват интерфейса, декомпиляция, eval, циклы тестирования, маршрутизация без настройки
Типичный цикл агента:
unity open <project>через CLI, редактор запускается, поднимаются сервер и маяк, лаунчер подключается. Никакой настройки с любой стороныРедакторы, запущенные через CLI, работают в фоне без фокуса. UnityMCP построен и протестирован именно для этого (безопасный запуск в фоне, повторы и стабильность при перезагрузках домена)
Портов и имён инструментов не пересекаются. Регистрируйте оба
Архитектура
┌─────────────────────────────────────────────────────────────┐
│ AI Assistant │
├──────────────────────────────┬──────────────────────────────┤
│ stdio launcher │ (or direct HTTP clients) │
│ ~/.unity-mcp/stdio.js │ │
│ resolves the session's │ │
│ project, reads its beacon │ │
│ Temp/UnityMcp_Endpoint.json │ │
├──────────────────────────────┴──────────────────────────────┤
│ HTTP JSON-RPC (Port 5173, per project) │
├─────────────────────────────────────────────────────────────┤
│ Node.js MCP Server (Server~/) │
├─────────────────────────────────────────────────────────────┤
│ TCP NDJSON (Port 52100) │
├─────────────────────────────────────────────────────────────┤
│ Unity Editor C# Bridge │
│ (McpBridge → ToolRegistry → MainThreadDispatcher) │
├─────────────────────────────────────────────────────────────┤
│ Unity APIs │
└─────────────────────────────────────────────────────────────┘Каждый открытый проект запускает собственный Node-сервер. Лаунчер — это общая пакетная точка входа, которая направляет каждую сессию к нужному серверу.
Разработка
Unity-тесты: Window > General > Test Runner (EditMode + PlayMode)
Тесты лаунчера:
npm testвServer~/История изменений: CHANGELOG.md
Лицензия
MIT. См. LICENSE.
This server cannot be deployed
Maintenance
Related MCP Connectors
- mcp-serverOAuthcom.make
Give your AI agents the tools to build, manage, and run automation workflows.
Build, validate, and deploy multi-agent AI solutions from any AI environment.
Discover AI tools for game development — 100+ tools indexed by engine, task, and pricing.
Image and video AI tools and your own pipelines, run from any AI assistant.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to query and control the Unity Editor, supporting scene management, GameObject manipulation, asset browsing, play mode control, and real-time editor operations through 52+ tools.1MIT
- AlicenseCqualityBmaintenanceIntegrates AI assistants with the Unity Editor for scene manipulation, asset management, and testing, plus Unity documentation search via RAG.8430 npmMIT
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to interact with Unity Editor, managing scenes, game objects, animations, materials, scripts, and more via natural language commands.2MIT
- AlicenseNot gradedqualityBmaintenanceEnables AI assistants to control and automate the Unity Editor, allowing them to build games and scenes from natural language commands.1MIT