unity-mcp-server

nurture-tech/unity-mcp-server

3.4

If you are the rightful owner of unity-mcp-server and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.

Union ♾️ - The Unity MCP Server is a Model Context Protocol server designed for Unity, offering advanced features for seamless integration and enhanced functionality.

Union ♾️ - The Unity MCP Server

A Model Context Protocol server for Unity

Key Features

  • πŸ–ΌοΈ Multimodal Vision: Your agent can see what you see. It can view the scene, look through any camera, watch play mode, and inspect asset thumbnails.

  • πŸ”Ž Powerful Search: Go beyond the project panel with simultaneous search across the hierarchy and project assets.

  • βœ”οΈ Superior Code Analysis: Leverage Unity's own compiler for code analysis that is more accurate than your agent's linter.

  • ⏩ Quick Start: Get running in seconds with a single mcp.json configuration file.

  • πŸ› οΈ Extensible: Add your own project-specific tools with minimal boilerplate.

  • πŸ“… Always Current: Kept up-to-date with the latest MCP protocol version β€” currently 2025-06-18 via the Official MCP C# SDK.

Compatibility

NameCompatibleNotes
Models
GPT-4.1βœ…
Claude 4 Sonnetβœ…
Claude 4 Opusβœ…
Gemini 2.5 Proβœ…
Gemini 2.5 Flashβœ…
o3βœ…No image understanding
o4-miniβœ…
Unity Versions
Unity 6000.0.xβœ…Higher versions should be fine. Lower versions may work but untested.
Agents
Cursorβœ…
Rider AIβœ…
Claude Desktopβœ…
Claude Codeβœ…Terminal requires Screen & System Audio Recording permissions on Mac
Operating Systems
Windowsβœ…
Macβœ…
Ubuntu❔Untested

Setup

1. Install node.js

2. Configure mcp.json

{
  "mcpServers": {
    "unity": {
      "command": "npx",
      "args": ["-y", "@nurture-tech/unity-mcp-runner", "-unityPath", "<path to unity editor>", "-projectPath", "<path to unity project>"]
    }
  }
}

This will automatically install the is.nurture.mcp package in your unity project. Feel free to commit those changes to source control.

About the Tools

Meet your Unity AI toolbox.

ToolDescription
Assets
get_asset_contentsGet the full contents of an asset or sub-asset.
copy_assetCopy an asset to a new path.
import_assetImport an asset from the filesystem into Unity.
get_asset_importerGet the importer settings for an asset.
Prefabs
open_prefabOpen a Unity prefab in isolation mode so that it can be edited.
Scenes
open_sceneOpen a scene
close_sceneClose an open scene
save_sceneSave the current scene. If the scene is not dirty, this will do nothing.
get_game_objectGet the details of a game object in a loaded scene or prefab by its hierarchy path.
test_active_sceneTest the active scene by entering play mode and running for a given number of seconds.
Scripting
create_scriptCreate or replace a C# code file at the given path. This also checks to make sure the script compiles.
execute_codeExecute code inside the Unity editor.
get_type_infoGet public fields and methods on a Unity fully qualified type name, including the assembly.
Search
searchSearch project assets and scene objects.
Editor State
get_stateGet the state of the Unity Editor.
get_selectionGet the objects the user has currently selected in the editor.
Vision
focus_game_objectFocus on a game object in the scene view.
screenshotRetrieve a preview of what is focused in the scene view.

Known Issues

  • The Google External Dependency Manager (EDMU) causes Unity to hang forever on startup when launched via Cursor on Windows. This is under investigation.

  • The test_active_scene tool sometimes fails with the error message Maximum call stack size exceeded.

  • The search tool occasionally fails with the error message Search index is not ready yet. Please try again later.

Adding Project-Specific Tools

Union uses the official C# MCP SDK.

  1. Create a static class to hold your tools. Add the [McpServerToolType] annotation to the class.

  2. Declare static methods to implement each tool. Add the [McpServerTool] annotation to each method.

  3. Reference the directory for examples.

  4. You will likely need to quit unity and restart your agent in order for it to see the new tools.

Usage Tips

Here are some tips to get the most out of Union:

  • πŸš€ Launch through your agent: Always launch Unity through your AI agent's MCP integration. Launching Unity from the Hub will prevent the MCP server from connecting.

  • πŸ“‚ Per-project setup: If your agent supports it, configure the MCP server in your per-project settings. This allows you to seamlessly switch between Unity projects.

  • βš™οΈ Command-line arguments: You can pass additional arguments to Unity for advanced scenarios like running in -batchmode or -nographics for CI/CD pipelines. Add a -- separator before the Unity-specific arguments:

    {
      "mcpServers": {
        "unity": {
          "command": "npx",
          "args": [
            "-y",
            "@nurture-tech/unity-mcp-runner"
            "-unityPath",
            "<path to unity editor>",
            "-projectPath",
            ".",
            "--",
            "-batchmode",
            "-nographics"
          ]
        }
      }
    }
    
  • ⚠️ Important: Do not use the -logFile command-line argument. The MCP server relies on Unity's standard output for communication.

  • πŸ–₯️ Split screen for vision: For tools like screenshot, ensure the Unity editor is visible on your screen otherwise it will end up screenshotting the foreground window.