Skip to content

Releases: CoderGamester/mcp-unity

Release 1.5.0

Choose a tag to compare

@CoderGamester CoderGamester released this 03 Sep 08:12

🔐 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, or Library/McpUnity/bridge-token, with fail-closed handling for missing or malformed explicit credentials.
  • Disabled add_package by 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 AllowBatchModeServer or MCP_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 the Origin header.
  • 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

Full Changelog: 1.4.0...1.5.0

Release 1.4.0

Choose a tag to compare

@CoderGamester CoderGamester released this 24 Jul 08:44

🆕 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_dashboard tool, ui://unity-dashboard resource, and unity_dashboard prompt (#109).
  • Added get_play_mode_status and set_play_mode_status for 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_component support for private serialized fields, inherited fields, nested property paths, and asset references resolved by path or GUID (#106).
  • Bounded deep and oversized get_gameobject responses 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 delayCall mutation 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 .meta GUID collision with Meta XR SDK and Unity AI Assistant packages (#133).
  • Updated object lookup and response IDs for Unity's newer EntityId API while retaining InstanceID behavior 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

Full Changelog: 1.3.0...1.4.0

Release 1.3.0

Choose a tag to compare

@CoderGamester CoderGamester released this 26 Apr 20:25

What's Changed

🆕 What is New

  • Add scene management tools for create, load, delete, save, unload, and scene info (#80, #97)
  • Add recompile_scripts with concurrent request support and improved compiler log handling (#83)
  • Add get_gameobject tool 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_execute for 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_tests failure 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_gameobject activeSelf schema 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 .meta test file (#123, #131)

New Contributors

Full Changelog: 1.2.0...1.3.0

Release 1.2.0

Choose a tag to compare

@CoderGamester CoderGamester released this 23 Aug 11:48

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 837f1b4 by @Matvey-Kuk)

🛠️ What Was Fixed

  • Fix update_component tool 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

Full Changelog: 1.1.2...1.2.0

Release 1.1.2

Choose a tag to compare

@CoderGamester CoderGamester released this 11 Jul 13:13

What's Changed

🆕 What is New

  • Remote Host Configuration: Added remote host configuration support for Unity WebSocket connections.
  • Test Runner Tool Enhancement: run_tests tool now accepts a returnWithLogs parameter and reports pass/fail counts without groups.
  • Git Commit Workflow: Added a new Windsurf workflow for generating Git commit summaries.
image

🛠️ 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 TestRunnerService and fixed null-reference cleanup after setting test results.
  • Environment Variable Path Resolution: Fixed handling of environment variables for path resolution when running npm commands from Unity on MacOS.

New Contributors

Full Changelog: 1.1.1...1.1.2

Release 1.1.1

Choose a tag to compare

@CoderGamester CoderGamester released this 12 Jun 22:48

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
    image

Changed

  • docs: Overhauled README.md and 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
    image

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

Choose a tag to compare

@CoderGamester CoderGamester released this 22 May 22:18

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

Full Changelog: 1.0.2...1.1.0

Release 1.0.2

Choose a tag to compare

@CoderGamester CoderGamester released this 29 Apr 23:00

What's Changed

New

  • Add returnsOnlyFailures option into run_tests tool 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

Choose a tag to compare

@CoderGamester CoderGamester released this 25 Apr 14:01

What's Changed

Fixed

  • Fix run_tests response 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

Full Changelog: 1.0.0...1.0.1

Release 1.0.0

Choose a tag to compare

@CoderGamester CoderGamester released this 14 Apr 15:37

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 ID

    Example 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 component

    Example prompt: "Add a Rigidbody component to the Player object and set its mass to 5"

  • add_package: Installs new packages in the Unity Package Manager

    Example prompt: "Add the TextMeshPro package to my project"

  • run_tests: Runs tests using the Unity Test Runner

    Example prompt: "Run all the EditMode tests in my project"

  • notify_message: Displays messages in the Unity Editor

    Example 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 scene

    Example 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 facilitate execute_menu_item tool

    Example prompt: "Show me all available menu items related to GameObject creation"

  • unity://hierarchy: Retrieves a list of all game objects in the Unity hierarchy

    Example 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 fields

    Example prompt: "Get me detailed information about the Player GameObject"

  • unity://logs: Retrieves a list of all logs from the Unity console

    Example prompt: "Show me the recent error messages from the Unity console"

  • unity://packages: Retrieves information about installed and available packages from the Unity Package Manager

    Example prompt: "List all the packages currently installed in my Unity project"

  • unity://assets: Retrieves information about assets in the Unity Asset Database

    Example prompt: "Find all texture assets in my project"

  • unity://tests/{testMode}: Retrieves information about tests in the Unity Test Runner

    Example prompt: "List all available tests in my Unity project"

Contributors

Full Changelog: https://github.com/CoderGamester/mcp-unity/commits/1.0.0