unity-mcp/Server
dsarno fe4cae7241
feat: Add `manage_material` tool for dedicated material manipulation (#440)
* WIP: Material management tool implementation and tests

- Add ManageMaterial tool for creating and modifying materials
- Add MaterialOps helper for material property operations
- Add comprehensive test suite for material management
- Add string parameter parsing support for material properties
- Update related tools (ManageGameObject, manage_asset, etc.)
- Add test materials and scenes for material testing

* refactor: unify material property logic into MaterialOps

- Move  and  logic from  to
- Update  to delegate to
- Update  to use enhanced  for creation and property setting
- Add texture path loading support to

* Add parameter aliasing support: accept 'name' as alias for 'target' in manage_gameobject modify action

* Refactor ManageMaterial and fix code review issues

- Fix Python server tools (redundant imports, exception handling, string formatting)
- Clean up documentation and error reports
- Improve ManageMaterial.cs (overwrite checks, error handling)
- Enhance MaterialOps.cs (robustness, logging, dead code removal)
- Update tests (assertions, unused imports)
- Fix manifest.json relative path
- Remove temporary test artifacts and manual setup scripts

* Remove test scene

* remove extra mat

* Remove unnecessary SceneTemplateSettings.json

* Remove unnecessary SceneTemplateSettings.json

* Fix MaterialOps issues

* Fix: Case-insensitive material property lookup and missing HasProperty checks

* Rabbit fixes

* Improve material ops logging and test coverage

* Fix: NormalizePath now handles backslashes correctly using AssetPathUtility

* Fix: Address multiple nitpicks (test robustness, shader resolution, HasProperty checks)

* Add manage_material tool documentation and fix MaterialOps texture property checks

- Add comprehensive ManageMaterial tool documentation to MCPForUnity/README.md
- Add manage_material to tools list in README.md and README-zh.md
- Fix MaterialOps.cs to check HasProperty before SetTexture calls to prevent Unity warnings
- Ensures consistency with other property setters in MaterialOps

* Fix ManageMaterial shader reflection for Unity 6 and improve texture logging
2025-12-07 19:39:52 -08:00
..
src feat: Add `manage_material` tool for dedicated material manipulation (#440) 2025-12-07 19:39:52 -08:00
tests feat: Add `manage_material` tool for dedicated material manipulation (#440) 2025-12-07 19:39:52 -08: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.6 2025-12-04 21:20:37 +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.6 2025-12-04 21:20:37 +00:00
pyrightconfig.json Copy the MCP server to the top level (#354) 2025-10-25 00:53:53 -04:00
uv.lock feat: Add `manage_material` tool for dedicated material manipulation (#440) 2025-12-07 19:39:52 -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.6#subdirectory=Server \
    mcp-for-unity --transport http --http-url http://localhost:8080

# Stdio
uvx --from git+https://github.com/CoplayDev/unity-mcp@v8.1.6#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.6#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