🆕 What is New
- Added the Unity Dashboard MCP App with Play Mode controls, scene hierarchy browsing, console and package views, GameObject selection, focus filtering, an inspector panel, and bidirectional agent context. The release includes the
show_unity_dashboardtool,ui://unity-dashboardresource, andunity_dashboardprompt (#109). - Added
get_play_mode_statusandset_play_mode_statusfor starting, pausing, stepping, and stopping Play Mode, plus tool access to scene hierarchy and console data used by the dashboard (#109). - Added project-local auto-configuration for Cursor, Claude Code, and Codex CLI, with portable project-relative paths suitable for Git-shared MCP configuration (
a32e47d). - Added OpenCode auto-configuration and relative-path support for GitHub Copilot, OpenCode, and manually copied workspace configurations (
ec0e1e8,320e443). - Added Unity bridge request diagnostics and expanded lifecycle, restart, tool, dashboard, resource, and release-metadata test coverage.
🛠️ What Was Fixed
- Fixed
update_componentsupport for private serialized fields, inherited fields, nested property paths, and asset references resolved by path or GUID (#106). - Bounded deep and oversized
get_gameobjectresponses with configurable depth/component scopes, a 5 MB safety ceiling, and explicit truncation markers instead of dropping the MCP connection (dfc623a). - Moved WebSocket request execution onto Unity's main thread to prevent Editor API access from corrupting the Inspector, then replaced cross-thread
delayCallmutation with an update-drained concurrent queue so requests continue while the Editor is unfocused (#139, #151). - Kept the Windows Editor loop ticking while minimized or unfocused. The native timer now starts only after the WebSocket listener succeeds and stops on failed startup, shutdown, disposal, assembly reload, Editor quit, and Play Mode transitions; its callback is rooted, exception-guarded, and reports Win32 timer errors (#150).
- Restarted the WebSocket server after entering Play Mode when domain reload is disabled, while preserving the existing reload-enabled lifecycle (#152).
- Removed invalid WebSocket origin headers that prevented some Codex and MCP clients from connecting (#149).
- Hardened WebSocket shutdown, restart cleanup, retry cancellation, failed-start handling, and request diagnostics to avoid stale listeners and duplicate restart attempts.
- Fixed a Unity
.metaGUID collision with Meta XR SDK and Unity AI Assistant packages (#133). - Updated object lookup and response IDs for Unity's newer
EntityIdAPI while retainingInstanceIDbehavior on older supported Editors, and migrated material inspection to Unity's public shader-property APIs to remove Unity 6 compatibility warnings. - Reduced noisy bridge logging, disabled info logs by default, and made batch-tool lookup independently testable.
🔄 What Changed
- Clarified global versus project-local MCP configuration and documented portable, team-shared configuration variants (#140).
- Synchronized the Unity package, Node server, and MCP runtime versions at
1.4.0. - Removed the invalid npm publication declaration from the legacy registry manifest.
- Preserved Unity 2022.3 compatibility for this final custom WebSocket bridge release.
New Contributors
- @Hinneman made their first contribution in #109
- @cfirz made their first contribution in #139
- @mashai made their first contribution in #140
- @Fen747 made their first contribution in #149
- @stefangrosu44-stack made their first contribution in #150
- @Feetschaa made their first contribution in #151
- @Numbcris made their first contribution in #152
Full Changelog: 1.3.0...1.4.0