unity-mcp/Server
dsarno 49973db806
Fix: Python Detection, Port Conflicts, and Script Creation Reliability (#428)
* Fix macOS port conflict: Disable SO_REUSEADDR and improve UI port display

- StdioBridgeHost.cs: Disable ReuseAddress on macOS to force AddressAlreadyInUse exception on conflict.

- PortManager.cs: Add connection check safety net for macOS.

- McpConnectionSection.cs: Ensure UI displays the actual live port instead of just the requested one.

* Fix macOS port conflict: Disable SO_REUSEADDR and improve UI port display

- StdioBridgeHost.cs: Disable ReuseAddress on macOS to force AddressAlreadyInUse exception on conflict.

- PortManager.cs: Add connection check safety net for macOS.

- McpConnectionSection.cs: Ensure UI displays the actual live port instead of just the requested one.

* Address CodeRabbit feedback: UX improvements and code quality fixes

- McpConnectionSection.cs: Disable port field when session is running to prevent editing conflicts

- StdioBridgeHost.cs: Refactor listener creation into helper method and update EditorPrefs on port fallback

- unity_instance_middleware.py: Narrow exception handling and preserve SystemExit/KeyboardInterrupt

- debug_request_context.py: Document that debug fields expose internal implementation details

* Fix: Harden Python detection on Windows to handle App Execution Aliases

* Refactor: Pre-resolve conflicts for McpConnectionSection and middleware

* Fix: Remove leftover merge conflict markers in StdioBridgeHost.cs

* fix: clarify create_script tool description regarding base64 encoding

* fix: improve python detection on macOS by checking specific Homebrew paths

* Fix duplicate SetEnabled call and improve macOS Python detection

* Fix port display not reverting to saved preference when session ends
2025-12-04 13:19:42 -08:00
..
src Fix: Python Detection, Port Conflicts, and Script Creation Reliability (#428) 2025-12-04 13:19:42 -08:00
tests HTTP Server, uvx, C# only custom tools (#375) 2025-11-24 23:21:06 -04:00
Dockerfile HTTP Server, uvx, C# only custom tools (#375) 2025-11-24 23:21:06 -04:00
README.md chore: bump version to 8.1.5 2025-12-04 01:16:32 +00:00
__init__.py Copy the MCP server to the top level (#354) 2025-10-25 00:53:53 -04:00
pyproject.toml chore: bump version to 8.1.5 2025-12-04 01:16:32 +00:00
pyrightconfig.json Copy the MCP server to the top level (#354) 2025-10-25 00:53:53 -04:00
uv.lock Fix: HTTP/Stdio transport routing and middleware session persistence (#422) 2025-12-03 17:15:42 -08:00

README.md

MCP for Unity Server

MCP python License Discord

Model Context Protocol server for Unity Editor integration. Control Unity through natural language using AI assistants like Claude, Cursor, and more.

Maintained by Coplay - This project is not affiliated with Unity Technologies.

💬 Join our community: Discord Server

Required: Install the Unity MCP Plugin to connect Unity Editor with this MCP server.


Installation

Run directly from GitHub without installation:

# HTTP (default)
uvx --from git+https://github.com/CoplayDev/unity-mcp@v8.1.5#subdirectory=Server \
    mcp-for-unity --transport http --http-url http://localhost:8080

# Stdio
uvx --from git+https://github.com/CoplayDev/unity-mcp@v8.1.5#subdirectory=Server \
    mcp-for-unity --transport stdio

MCP Client Configuration (HTTP):

{
  "mcpServers": {
    "UnityMCP": {
      "url": "http://localhost:8080/mcp"
    }
  }
}

MCP Client Configuration (stdio):

{
  "mcpServers": {
    "UnityMCP": {
      "command": "uvx",
      "args": [
        "--from",
        "git+https://github.com/CoplayDev/unity-mcp@v8.1.5#subdirectory=Server",
        "mcp-for-unity",
        "--transport",
        "stdio"
      ],
      "type": "stdio"
    }
  }
}

Option 2: Using uv (Local Installation)

For local development or custom installations:

# Clone the repository
git clone https://github.com/CoplayDev/unity-mcp.git
cd unity-mcp/Server

# Run with uv (HTTP)
uv run server.py --transport http --http-url http://localhost:8080

# Run with uv (stdio)
uv run server.py --transport stdio

MCP Client Configuration (HTTP):

{
  "mcpServers": {
    "UnityMCP": {
      "url": "http://localhost:8080/mcp"
    }
  }
}

MCP Client Configuration (stdio Windows):

{
  "mcpServers": {
    "UnityMCP": {
      "command": "uv",
      "args": [
        "run",
        "--directory",
        "C:\\path\\to\\unity-mcp\\Server",
        "server.py",
        "--transport",
        "stdio"
      ]
    }
  }
}

MCP Client Configuration (stdio macOS/Linux):

{
  "mcpServers": {
    "UnityMCP": {
      "command": "uv",
      "args": [
        "run",
        "--directory",
        "/path/to/unity-mcp/Server",
        "server.py",
        "--transport",
        "stdio"
      ]
    }
  }
}

Option 3: Using Docker

docker build -t unity-mcp-server .
docker run -p 8080:8080 unity-mcp-server --transport http --http-url http://0.0.0.0:8080

Configure your MCP client with "url": "http://localhost:8080/mcp". For stdio-in-docker (rare), run the container with --transport stdio and use the same command/args pattern as the uv examples, wrapping it in docker run -i ... if needed.


Configuration

The server connects to Unity Editor automatically when both are running. No additional configuration needed.

Environment Variables:

  • DISABLE_TELEMETRY=true - Opt out of anonymous usage analytics
  • LOG_LEVEL=DEBUG - Enable detailed logging (default: INFO)

Example Prompts

Once connected, try these commands in your AI assistant:

  • "Create a 3D player controller with WASD movement"
  • "Add a rotating cube to the scene with a red material"
  • "Create a simple platformer level with obstacles"
  • "Generate a shader that creates a holographic effect"
  • "List all GameObjects in the current scene"

Documentation

For complete documentation, troubleshooting, and advanced usage:

📖 Full Documentation


Requirements

  • Python: 3.10 or newer
  • Unity Editor: 2021.3 LTS or newer
  • uv: Python package manager (Installation Guide)

License

MIT License - See LICENSE