| English | 简体中文 |
|---|
Proudly sponsored and maintained by Coplay -- the best AI assistant for Unity.
Create your Unity apps with LLMs!
MCP for Unity acts as a bridge, allowing AI assistants (like Claude, Cursor) to interact directly with your Unity Editor via a local MCP (Model Context Protocol) Client. Give your LLM tools to manage assets, control scenes, edit scripts, and automate tasks within Unity.
💬 Join Our Discord
Get help, share ideas, and collaborate with other MCP for Unity developers!
- 🗣️ Natural Language Control: Instruct your LLM to perform Unity tasks.
- 🛠️ Powerful Tools: Manage assets, scenes, materials, scripts, and editor functions.
- 🤖 Automation: Automate repetitive Unity workflows.
- 🧩 Extensible: Designed to work with various MCP Clients.
Available Tools
Your LLM can use functions like:
read_console: Gets messages from or clears the console.manage_script: Manages C# scripts (create, read, update, delete).manage_editor: Controls and queries the editor's state and settings.manage_scene: Manages scenes (load, save, create, get hierarchy, etc.).manage_asset: Performs asset operations (import, create, modify, delete, etc.).manage_shader: Performs shader CRUD operations (create, read, modify, delete).manage_gameobject: Manages GameObjects: create, modify, delete, find, and component operations.execute_menu_item: Executes Unity Editor menu items (e.g., "File/Save Project").apply_text_edits: Precise text edits with precondition hashes and atomic multi-edit batches.script_apply_edits: Structured C# method/class edits (insert/replace/delete) with safer boundaries.validate_script: Fast validation (basic/standard) to catch syntax/structure issues before/after writes.
MCP for Unity connects your tools using two components:
- MCP for Unity Bridge: A Unity package running inside the Editor. (Installed via Package Manager).
- MCP for Unity Server: A Python server that runs locally, communicating between the Unity Bridge and your MCP Client. (Installed automatically by the package on first run or via Auto-Setup; manual setup is available as a fallback).
-
Python: Version 3.12 or newer. Download Python
-
Unity Hub & Editor: Version 2021.3 LTS or newer. Download Unity
-
uv (Python toolchain manager):
# macOS / Linux curl -LsSf https://astral.sh/uv/install.sh | sh # Windows (PowerShell) winget install --id=astral-sh.uv -e # Docs: https://docs.astral.sh/uv/getting-started/installation/
-
An MCP Client: : Claude Desktop | Claude Code | Cursor | Visual Studio Code Copilot | Windsurf | Others work with manual config
-
[Optional] Roslyn for Advanced Script Validation
For Strict validation level that catches undefined namespaces, types, and methods:
Method 1: NuGet for Unity (Recommended)
- Install NuGetForUnity
- Go to
Window > NuGet Package Manager - Search for
Microsoft.CodeAnalysis, select version 4.14.0, and install the package - Also install package
SQLitePCLRaw.coreandSQLitePCLRaw.bundle_e_sqlite3. - Go to
Player Settings > Scripting Define Symbols - Add
USE_ROSLYN - Restart Unity
Method 2: Manual DLL Installation
- Download Microsoft.CodeAnalysis.CSharp.dll and dependencies from NuGet
- Place DLLs in
Assets/Plugins/folder - Ensure .NET compatibility settings are correct
- Add
USE_ROSLYNto Scripting Define Symbols - Restart Unity
Note: Without Roslyn, script validation falls back to basic structural checks. Roslyn enables full C# compiler diagnostics with precise error reporting.
- Open your Unity project.
- Go to
Window > Package Manager. - Click
+->Add package from git URL.... - Enter:
https://github.com/CoplayDev/unity-mcp.git?path=/MCPForUnity - Click
Add. - The MCP server is installed automatically by the package on first run or via Auto-Setup. If that fails, use Manual Configuration (below).
- Install the OpenUPM CLI
- Open a terminal (PowerShell, Terminal, etc.) and navigate to your Unity project directory
- Run
openupm add com.coplaydev.unity-mcp
Note: If you installed the MCP Server before Coplay's maintenance, you will need to uninstall the old package before re-installing the new one.
Connect your MCP Client (Claude, Cursor, etc.) to the Python server set up in Step 1 (auto) or via Manual Configuration (below).
Option A: Auto-Setup (Recommended for Claude/Cursor/VSC Copilot)
- In Unity, go to
Window > MCP for Unity. - Click
Auto-Setup. - Look for a green status indicator 🟢 and "Connected ✓". (This attempts to modify the MCP Client's config file automatically).
Client-specific troubleshooting
- VSCode: uses
Code/User/mcp.jsonwith top-levelservers.unityMCPand"type": "stdio". On Windows, MCP for Unity writes an absoluteuv.exe(prefers WinGet Links shim) to avoid PATH issues. - Cursor / Windsurf (help link): if
uvis missing, the MCP for Unity window shows "uv Not Found" with a quick [HELP] link and a "ChooseuvInstall Location" button. - Claude Code (help link): if
claudeisn't found, the window shows "Claude Not Found" with [HELP] and a "Choose Claude Location" button. Unregister now updates the UI immediately.
Option B: Manual Configuration
If Auto-Setup fails or you use a different client:
- Find your MCP Client's configuration file. (Check client documentation).
- Claude Example (macOS):
~/Library/Application Support/Claude/claude_desktop_config.json - Claude Example (Windows):
%APPDATA%\Claude\claude_desktop_config.json
- Claude Example (macOS):
- Edit the file to add/update the
mcpServerssection, using the exact paths from Step 1.
Click for Client-Specific JSON Configuration Snippets...
Claude Code
If you're using Claude Code, you can register the MCP server using the below commands: 🚨make sure to run these from your Unity project's home directory🚨
macOS:
claude mcp add UnityMCP -- uv --directory /Users/USERNAME/Library/AppSupport/UnityMCP/UnityMcpServer/src run server.pyWindows:
claude mcp add UnityMCP -- "C:/Users/USERNAME/AppData/Local/Microsoft/WinGet/Links/uv.exe" --directory "C:/Users/USERNAME/AppData/Local/UnityMCP/UnityMcpServer/src" run server.pyVSCode (all OS)
{
"servers": {
"unityMCP": {
"command": "uv",
"args": ["--directory","<ABSOLUTE_PATH_TO>/UnityMcpServer/src","run","server.py"],
"type": "stdio"
}
}
}On Windows, set command to the absolute shim, e.g. C:\\Users\\YOU\\AppData\\Local\\Microsoft\\WinGet\\Links\\uv.exe.
Windows:
{
"mcpServers": {
"UnityMCP": {
"command": "uv",
"args": [
"run",
"--directory",
"C:\\Users\\YOUR_USERNAME\\AppData\\Local\\UnityMCP\\UnityMcpServer\\src",
"server.py"
]
}
// ... other servers might be here ...
}
}(Remember to replace YOUR_USERNAME and use double backslashes \)
macOS:
{
"mcpServers": {
"UnityMCP": {
"command": "uv",
"args": [
"run",
"--directory",
"/Users/YOUR_USERNAME/Library/AppSupport/UnityMCP/UnityMcpServer/src",
"server.py"
]
}
// ... other servers might be here ...
}
}(Replace YOUR_USERNAME. Note: AppSupport is a symlink to "Application Support" to avoid quoting issues)
Linux:
{
"mcpServers": {
"UnityMCP": {
"command": "uv",
"args": [
"run",
"--directory",
"/home/YOUR_USERNAME/.local/share/UnityMCP/UnityMcpServer/src",
"server.py"
]
}
// ... other servers might be here ...
}
}(Replace YOUR_USERNAME)
-
Open your Unity Project. The MCP for Unity package should connect automatically. Check status via Window > MCP for Unity.
-
Start your MCP Client (Claude, Cursor, etc.). It should automatically launch the MCP for Unity Server (Python) using the configuration from Installation Step 2.
-
Interact! Unity tools should now be available in your MCP Client.
Example Prompt:
Create a 3D player controller,Create a tic-tac-toe game in 3D,Create a cool shader and apply to a cube.
Unity MCP now includes comprehensive Docker support for easy containerized deployment and development. This is particularly useful for:
- Running MCP server in isolated environments
- Consistent deployment across different systems
- Cloud-based Unity development workflows
- CI/CD pipelines
-
Clone and setup:
git clone https://github.com/Ddemon26/unity-mcp.git cd unity-mcp cp .env.example .env -
Configure environment (optional): Edit
.envfile to customize ports, Unity project path, and other settings. -
Run with Docker Compose:
# Production mode docker-compose up unity-mcp-server # Development mode with hot reload docker-compose --profile development up unity-mcp-dev
The Docker setup supports all server configuration via environment variables:
# Network settings
UNITY_HOST=host.docker.internal # Use this for Unity on host machine
UNITY_PORT=6400
MCP_PORT=6500
# Development ports
DEV_UNITY_PORT=6401
DEV_MCP_PORT=6501
# Logging and performance
LOG_LEVEL=INFO
CONNECTION_TIMEOUT=1.0
MAX_RETRIES=10
# Telemetry (set DISABLE_TELEMETRY=true to disable)
TELEMETRY_ENABLED=true
DISABLE_TELEMETRY=false
# Unity project path (mounted as volume)
UNITY_PROJECT_PATH=./TestProjects/UnityMCPTests# Build the image
docker build -t unity-mcp-server ./UnityMcpBridge/UnityMcpServer~/src
# Run standalone container
docker run -p 6500:6500 -e UNITY_HOST=host.docker.internal unity-mcp-server
# Development with volume mount
docker run -v $(pwd)/UnityMcpBridge/UnityMcpServer~/src:/app \
-p 6500:6500 -e LOG_LEVEL=DEBUG unity-mcp-server
# Check container health
docker ps
docker logs unity-mcp-serverThe Dockerfile supports both development and production builds:
- Development: Includes dev dependencies, volume mounts, auto-reload
- Production: Optimized image size, production settings, health checks
When Unity Editor runs on your host machine and MCP server in Docker:
- Use
UNITY_HOST=host.docker.internal(Windows/Mac) orUNITY_HOST=172.17.0.1(Linux) - Ensure Unity project is accessible via volume mounts
- Configure Unity MCP plugin to connect to the containerized server
Connection Issues:
- Verify
UNITY_HOSTpoints to your host machine from container - Check firewall settings for Unity and MCP ports
- Ensure Unity MCP plugin is configured with correct container ports
Performance:
- Adjust
BUFFER_SIZEand timeout settings in.env - Monitor container resources with
docker stats - Use development profile for debugging with verbose logging
📖 See DOCKER.md for complete Docker implementation details and advanced configuration options.
MCP for Unity uses a Python MCP Server tied with Unity's C# scripts for tools. If you'd like to extend the functionality with your own tools, learn how to do so in CUSTOM_TOOLS.md.
If you're contributing to MCP for Unity or want to test core changes, we have development tools to streamline your workflow:
- Development Deployment Scripts: Quickly deploy and test your changes to MCP for Unity Bridge and Python Server
- Automatic Backup System: Safe testing with easy rollback capabilities
- Hot Reload Workflow: Fast iteration cycle for core development
📖 See README-DEV.md for complete development setup and workflow documentation.
Help make MCP for Unity better!
- Fork the main repository.
- Create a branch (
feature/your-ideaorbugfix/your-fix). - Make changes.
- Commit (feat: Add cool new feature).
- Push your branch.
- Open a Pull Request against the main branch.
MCP for Unity includes privacy-focused, anonymous telemetry to help us improve the product. We collect usage analytics and performance data, but never your code, project names, or personal information.
- 🔒 Anonymous: Random UUIDs only, no personal data
- 🚫 Easy opt-out: Set
DISABLE_TELEMETRY=trueenvironment variable - 📖 Transparent: See TELEMETRY.md for full details
Your privacy matters to us. All telemetry is optional and designed to respect your workflow.
Click to view common issues and fixes...
- Unity Bridge Not Running/Connecting:
- Ensure Unity Editor is open.
- Check the status window: Window > MCP for Unity.
- Restart Unity.
- MCP Client Not Connecting / Server Not Starting:
- Verify Server Path: Double-check the --directory path in your MCP Client's JSON config. It must exactly match the installation location:
- Windows:
%USERPROFILE%\AppData\Local\UnityMCP\UnityMcpServer\src - macOS:
~/Library/AppSupport/UnityMCP/UnityMcpServer\src - Linux:
~/.local/share/UnityMCP/UnityMcpServer\src
- Windows:
- Verify uv: Make sure
uvis installed and working (uv --version). - Run Manually: Try running the server directly from the terminal to see errors:
cd /path/to/your/UnityMCP/UnityMcpServer/src uv run server.py
- Verify Server Path: Double-check the --directory path in your MCP Client's JSON config. It must exactly match the installation location:
- Auto-Configure Failed:
- Use the Manual Configuration steps. Auto-configure might lack permissions to write to the MCP client's config file.
Still stuck? Open an Issue or Join the Discord!
MIT License. See LICENSE file.
Coplay offers 2 AI tools for Unity
- MCP for Unity is available freely under the MIT license.
- Coplay is a premium Unity AI assistant that sits within Unity and is more than the MCP for Unity.
(These tools have different tech stacks. See this blog post comparing Coplay to MCP for Unity.)
This project is a free and open-source tool for the Unity Editor, and is not affiliated with Unity Technologies.