Repository navigation
Releases: CoderGamester/mcp-unity
Release list
Release 1.5.0
🔐 Security
- Fixed cross-site WebSocket hijacking against the Unity Editor bridge. Browser-originated handshakes are now rejected, and every native bridge connection must authenticate with a per-project 256-bit token (
382a43a). - Added strict token discovery through
MCP_UNITY_AUTH_TOKEN,MCP_UNITY_AUTH_TOKEN_PATH, orLibrary/McpUnity/bridge-token, with fail-closed handling for missing or malformed explicit credentials. - Disabled
add_packageby default because installed packages can execute Editor code during compilation. Package installation now requires an explicit trusted-project opt-in and remains unavailable in batch mode.
🆕 What is New
- Added authentication status, token copy and rotation controls, package-install opt-in, and remote plaintext transport warnings to the MCP Unity Server Window.
- Added authenticated MCP configuration generation for JSON, OpenCode, and TOML clients without embedding the token itself.
- Added opt-in support for persistent headless MCP hosts through
AllowBatchModeServerorMCP_UNITY_ALLOW_BATCH_MODE=true, while keeping ordinary CI and cloud builds disabled by default (46b6697).
🛠️ What Was Fixed
- Kept a WebSocket error listener attached during connection termination so the Node bridge no longer exits on its first connection timeout (#155).
- Added generation-aware liveness detection for a Windows socket that binds successfully but never services requests, with careful timeout and shutdown-race handling (#156, #141).
- Made bridge configuration discovery independent of the MCP client's working directory, added explicit source diagnostics, and hardened port, host, timeout, and settings-file validation (
46b6697).
🔄 What Changed
- Breaking security migration: 1.4.x Node bridges and unauthenticated direct WebSocket clients can no longer connect. Upgrade both package components, regenerate MCP client configuration from Unity when needed, and restart every MCP client process.
- Direct WebSocket integrations must use HTTP Basic credentials as
mcp-unity:<token>and omit theOriginheader. - Remote connections remain plaintext
ws://and should only be used on a trusted network, VPN, or SSH tunnel. - Synchronized the Unity package, Node package and lockfile, MCP runtime, dashboard, and Unity Server Window versions at
1.5.0. - Expanded Unity and Node coverage for token lifecycle, Origin rejection, authentication failures, package-install policy, configuration resolution, and release metadata.
New Contributors
- @TenaciousLibbs made their first contribution in #155
Full Changelog: 1.4.0...1.5.0
Release 1.4.0
🆕 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
Release 1.3.0
What's Changed
🆕 What is New
- Add scene management tools for create, load, delete, save, unload, and scene info (#80, #97)
- Add
recompile_scriptswith concurrent request support and improved compiler log handling (#83) - Add
get_gameobjecttool and richer GameObject resource details (#87) - Add Google Antigravity, Codex CLI/TOML config, and restored Claude Desktop support (#89)
- Add auto-reconnect, heartbeat, command queueing, Play Mode reconnect improvements, and multi-client support (#92, #100, #102, #120)
- Add GameObject duplicate, delete, and reparent tools (#96)
- Add Material tools for creating, assigning, modifying, and inspecting materials (#99)
- Add Transform manipulation tools (#98)
- Add
batch_executefor 10-100x multi-tool performance improvements (#103) - Add MCP registry metadata and expanded Unity/Node test coverage
🛠️ What Was Fixed
- Fix Create Prefab field handling and prefab response data (#77)
- Fix macOS Homebrew Node/npm path handling and project paths containing spaces (#90)
- Fix graceful MCP server shutdown (#91)
- Fix
run_testsfailure filtering for invalid, cancelled, and exception-failing tests (#93) - Fix batch-mode Unity Cloud Build hangs and Multiplayer Play Mode clone startup behavior (#107)
- Fix
update_gameobjectactiveSelfschema mismatch (#108) - Fix WebSocket reconnect file descriptor exhaustion and timeout reconnect cascades (#112)
- Fix false positives in Multiplayer Play Mode clone detection (#113)
- Fix scene hierarchy retrieval across all loaded scenes (#114)
- Fix MCP settings path and Unity asset folder installation paths (#116, #117)
- Fix port-in-use startup reporting, unsafe collider reflection in
get_gameobject, Linux auto-config support, and missing Unity.metatest file (#123, #131)
New Contributors
- @GallopingDino made their first contribution in #83
- @CharlieHess made their first contribution in #87
- @markroth8 made their first contribution in #89
- @PhilipLudington made their first contribution in #91
- @klingela made their first contribution in #112
- @CalinR made their first contribution in #117
- @levilansing made their first contribution in #120
- @alon-talmi made their first contribution in #123
- @UedaTakeru made their first contribution in #131
Full Changelog: 1.2.0...1.3.0
Release 1.2.0
What's Changed
🆕 What is New
- New 'CreatePrefabTool' across Unity and Node MCP pipelines to create Prefabs from scene objects (#73 by @CoderGamester)
- Add MCP Catalog Trust Score badge to README (commit
837f1b4by @Matvey-Kuk)
🛠️ What Was Fixed
- Fix
update_componenttool to surface errors when field updates fail (#70 by @wojciech-golowkow) - Docs: Fix README markdown errors and alginment between all language files (commit
a08bfcb)
New Contributors
- @wojciech-golowkow made their first contribution in #70
- @Matvey-Kuk made their first contribution in #76
Full Changelog: 1.1.2...1.2.0
Release 1.1.2
What's Changed
🆕 What is New
- Remote Host Configuration: Added remote host configuration support for Unity WebSocket connections.
- Test Runner Tool Enhancement:
run_teststool now accepts areturnWithLogsparameter and reports pass/fail counts without groups. - Git Commit Workflow: Added a new Windsurf workflow for generating Git commit summaries.
🛠️ What Was Fixed
- WebSocket Reconnection: WebSocket server now re-uses its address, allowing reconnection after a domain reload.
- Test Runner Stability: Improved async test result handling in
TestRunnerServiceand fixed null-reference cleanup after setting test results. - Environment Variable Path Resolution: Fixed handling of environment variables for path resolution when running
npmcommands from Unity on MacOS.
New Contributors
- @yulcat made their first contribution in #48
- @ichimi-abunai made their first contribution in #59
- @Snowblaze made their first contribution in #61
Full Changelog: 1.1.1...1.1.2
Release 1.1.1
What's Changed
New
- feat(editor): Enhance MCP Unity Editor UI with scrollbar and install feedback
- feat: Add pagination support to console logs to prevent LLM token limits
- feat: Add includeStackTrace option to reduce LLM token usage by 80-90%
- feat: Add configurable npm executable path and UI setting

Changed
- docs: Overhauled
README.mdand its localized versions (README-ja.md,README_zh-CN.md) with detailed features, installation steps, usage guides, debugging information, and an extensive FAQ section. - docs: New Images added with updated state of the MCP inspector window
- docs: New important section about paths with spaces not accepted in the project

Fixed
- fix: MacOS paths with '~' in their path are now properly installed and npm runs work as expected
- fix: Map 'info' log type to Unity's 'Log' type for console log retrieval
New Contributors
Full Changelog: 1.1.0...1.1.1
Release 1.1.0
What's Changed
New
- feat(prompt): implement robust GameObject handling workflow prompt for LLMs
- feat(unity-mcp): add update_gameobject tool and improve GameObject handling prompt
- feat(server): add get_console_logs tool to MCP Server Tools
- feat: Unity now installs the Node.js server and it's dependencies. Automatically runs on Unity starts with a new “Force Install Server” button for manual invoke in the Tools > MCP Unity > Server Window
- docs: add new FAQ section
Changed
- refactor(server): remove Server meta files by renaming Server to Server~ as Unity will ignore folders with ~ suffix
- refactor(server): rename all tool/resource registration functions to 'register' prefix and add prompt support
- refactor: update console logging and resource handling for more accurate output
- refactor(server): rename getConsoleLogResource to getConsoleLogsResource for consistency
- refactor: rename hierarchy resource and update documentation, updating resource URI from unity://hierarchy to unity://scenes-hierarchy
- refactor(utils): rename McpConfigUtils → McpUtils
- chore(node.js): remove build/ and node_modules/ folders as now they are built by Unity on start
- chore: remove the update pop up when changing the MCP port
- docs: remove duplicate MCP resource entries from README files
Fixed
- fix(server): update Zod imports and upgrade package to resolve schema errors;
- fix: ensure McpUnitySettings handles environment variables cross-platform
- fix: update mcp_config.json path for mcp-unity server to work on all platforms
- fix: now the windsurf config is properly setup
- fix: now all server and Unity environment variables are saved and obtained by the JSON settings file located in '../ProjectSettings/McpUnitySettings.json'.
New Contributors
- @twilight07 made their first contribution in #33
- @CoderGamester made their first contribution in #35
Full Changelog: 1.0.2...1.1.0
Release 1.0.2
What's Changed
New
- Add returnsOnlyFailures option into
run_teststool by @nowsprinting in #23 - Add timeout settings for the WebSocket and the test execution. by @nowsprinting in #22
Fixed
- Fix server auto-restart logic on domain reloading by @nowsprinting in #25
- Fix run_tests tool to properly run all tests on the given test mode and filter. Returning the tests result state
- Fix the get_tests resource to properly obtain all tests info without result state
Full Changelog: 1.0.1...1.0.2
Release 1.0.1
What's Changed
Fixed
- Fix
run_testsresponse by @nowsprinting in #20 - Fix the auto-restart the server after domain reload triggered by a compilation trigger in unity, response in the issue #18
New Contributors
- @nowsprinting made their first contribution in #20
Full Changelog: 1.0.0...1.0.1
Release 1.0.0
First public production ready release for [MCP Unity], an implementation of the Model Context Protocol for Unity Editor, allowing AI assistants to interact with your Unity projects. This package provides a bridge between Unity and a Node.js server that implements the MCP protocol, enabling AI agents like Claude, Windsurf, and Cursor to execute operations within the Unity Editor.
Features
IDE Integration - Package Cache Access
MCP Unity provides automatic integration with VSCode-like IDEs (Visual Studio Code, Cursor, Windsurf) by adding the Unity Library/PackedCache folder to your workspace. This feature:
- Improves code intelligence for Unity packages
- Enables better autocompletion and type information for Unity packages
- Helps AI coding assistants understand your project's dependencies
MCP Server Tools
-
execute_menu_item: Executes Unity menu items (functions tagged with the MenuItem attribute)Example prompt: "Execute the menu item 'GameObject/Create Empty' to create a new empty GameObject"
-
select_gameobject: Selects game objects in the Unity hierarchy by path or instance IDExample prompt: "Select the Main Camera object in my scene"
-
update_component: Updates component fields on a GameObject or adds it to the GameObject if it does not contain the componentExample prompt: "Add a Rigidbody component to the Player object and set its mass to 5"
-
add_package: Installs new packages in the Unity Package ManagerExample prompt: "Add the TextMeshPro package to my project"
-
run_tests: Runs tests using the Unity Test RunnerExample prompt: "Run all the EditMode tests in my project"
-
notify_message: Displays messages in the Unity EditorExample prompt: "Send a notification to Unity that the task has been completed"
-
add_asset_to_scene: Adds an asset from the AssetDatabase to the Unity sceneExample prompt: "Add the Player prefab from my project to the current scene"
MCP Server Resources
-
unity://menu-items: Retrieves a list of all available menu items in the Unity Editor to facilitateexecute_menu_itemtoolExample prompt: "Show me all available menu items related to GameObject creation"
-
unity://hierarchy: Retrieves a list of all game objects in the Unity hierarchyExample prompt: "Show me the current scene hierarchy structure"
-
unity://gameobject/{id}: Retrieves detailed information about a specific GameObject by instance ID or object path in the scene hierarchy, including all GameObject components with it's serialized properties and fieldsExample prompt: "Get me detailed information about the Player GameObject"
-
unity://logs: Retrieves a list of all logs from the Unity consoleExample prompt: "Show me the recent error messages from the Unity console"
-
unity://packages: Retrieves information about installed and available packages from the Unity Package ManagerExample prompt: "List all the packages currently installed in my Unity project"
-
unity://assets: Retrieves information about assets in the Unity Asset DatabaseExample prompt: "Find all texture assets in my project"
-
unity://tests/{testMode}: Retrieves information about tests in the Unity Test RunnerExample prompt: "List all available tests in my Unity project"
Contributors
- @smithery-ai made their first contribution in #1
- @punkpeye made their first contribution in #7
Full Changelog: https://github.com/CoderGamester/mcp-unity/commits/1.0.0