* fix: speed up Claude Code config check by reading JSON directly Instead of running `claude mcp list` (15+ seconds due to health checks), read the config directly from ~/.claude.json (instant). Changes: - Add ReadClaudeCodeConfig() to parse Claude's JSON config file - Walk up directory tree to find config at parent directories - Handle duplicate path entries (forward/backslash variants) - Add beta/stable version mismatch detection with clear messages - Add IsBetaPackageSource() to detect PyPI beta versions and prerelease ranges - Change button label from "Register" to "Configure" for consistency Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * fix: speed up Claude Code config check by reading JSON directly Instead of running `claude mcp list` (15+ seconds due to health checks), read the config directly from ~/.claude.json (instant). Changes: - Add ReadClaudeCodeConfig() to parse Claude's JSON config file - Walk up directory tree to find config at parent directories - Handle duplicate path entries (forward/backslash variants) - Add beta/stable version mismatch detection with clear messages - Add IsBetaPackageSource() to detect PyPI beta versions and prerelease ranges - Change button label from "Register" to "Configure" for consistency - Refresh client status when switching to Connect tab or toggling beta mode Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * feat: add VersionMismatch status for Claude Code config detection - Add McpStatus.VersionMismatch enum value for version mismatch cases - Show "Version Mismatch" with yellow warning indicator instead of "Error" - Use VersionMismatch for beta/stable package source mismatches - Keep Error status for transport mismatches and general errors Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * feat: add version mismatch warning banner in Server section - Add version-mismatch-warning banner to McpConnectionSection.uxml - Add UpdateVersionMismatchWarning method to show/hide the banner - Fire OnClientConfigMismatch event when VersionMismatch status detected - Wire up event in main window to update the warning banner - Store mismatch details in configStatus for both Error and VersionMismatch Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * fix: simplify version mismatch messages for non-technical users Before: "Beta/stable mismatch: registered with beta 'mcpforunityserver>=0.0.0a0' but plugin is stable 'mcpforunityserver==9.4.0'." After: "Configured for beta server, but 'Use Beta Server' is disabled in Advanced settings." Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * fix: address PR review feedback - Treat missing ~/.claude.json as "not configured" instead of error (distinguishes "no Claude Code installed" from actual read failures) - Handle --from=VALUE format in ExtractPackageSourceFromConfig (in addition to existing --from VALUE format) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * feat: add beta/stable version mismatch detection to all JSON-based clients - Move GetExpectedPackageSourceForValidation() and IsBetaPackageSource() to base class so all configurators can use them - Update JsonFileMcpConfigurator.CheckStatus() to use beta-aware comparison - Show VersionMismatch status with clear messaging for Claude Desktop, Cursor, Windsurf, VS Code, and other JSON-based clients - Auto-rewrite still attempts to fix mismatches automatically Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * fix: add beta-aware validation to CodexMcpConfigurator CodexMcpConfigurator was still using the non-beta-aware package source comparison. Now uses GetExpectedPackageSourceForValidation() and shows VersionMismatch status with clear messaging like other configurators. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com> |
||
|---|---|---|
| .claude | ||
| .github | ||
| CustomTools/RoslynRuntimeCompilation | ||
| MCPForUnity | ||
| Server | ||
| TestProjects | ||
| docs | ||
| scripts | ||
| tools | ||
| unity-mcp-skill | ||
| .dockerignore | ||
| .gitignore | ||
| .mcpbignore | ||
| CLAUDE.md | ||
| LICENSE | ||
| README.md | ||
| docker-compose.yml | ||
| manifest.json | ||
| mcp_source.py | ||
README.md
| English | 简体中文 |
|---|
Proudly sponsored and maintained by Coplay -- the best AI assistant for Unity.
Create your Unity apps with LLMs! MCP for Unity bridges AI assistants (Claude, Cursor, VS Code, etc.) with your Unity Editor via the Model Context Protocol. Give your LLM the tools to manage assets, control scenes, edit scripts, and automate tasks.
Quick Start
Prerequisites
- Unity 2021.3 LTS+ — Download Unity
- Python 3.10+ and uv — Install uv
- An MCP Client — Claude Desktop | Cursor | VS Code Copilot | GitHub Copilot CLI | Windsurf
1. Install the Unity Package
In Unity: Window > Package Manager > + > Add package from git URL...
[!TIP]
https://github.com/CoplayDev/unity-mcp.git?path=/MCPForUnity#main
Want the latest beta? Use the beta branch:
https://github.com/CoplayDev/unity-mcp.git?path=/MCPForUnity#beta
Other install options (Asset Store, OpenUPM)
Unity Asset Store:
- Visit MCP for Unity on the Asset Store
- Click
Add to My Assets, then import viaWindow > Package Manager
OpenUPM:
openupm add com.coplaydev.unity-mcp
2. Start the Server & Connect
- In Unity:
Window > MCP for Unity - Click Start Server (launches HTTP server on
localhost:8080) - Select your MCP Client from the dropdown and click Configure
- Look for 🟢 "Connected ✓"
- Connect your client: Some clients (Cursor, Windsurf, Antigravity) require enabling an MCP toggle in settings, while others (Claude Desktop, Claude Code) auto-connect after configuration.
That's it! Try a prompt like: "Create a red, blue and yellow cube" or "Build a simple player controller"
Features & Tools
Key Features
- 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 — Works with various MCP Clients
Available Tools
manage_asset • manage_editor • manage_gameobject • manage_components • manage_material • manage_prefabs • manage_scene • manage_script • manage_scriptable_object • manage_shader • manage_vfx • manage_texture • batch_execute • find_gameobjects • find_in_file • read_console • refresh_unity • run_tests • get_test_job • execute_menu_item • apply_text_edits • script_apply_edits • validate_script • create_script • delete_script • get_sha
Available Resources
custom_tools • unity_instances • menu_items • get_tests • gameobject • gameobject_components • prefab_api • prefab_info • prefab_hierarchy • editor_state • editor_selection • editor_prefab_stage • project_info • project_tags • project_layers
Performance Tip: Use batch_execute for multiple operations — it's 10-100x faster than individual calls!
Manual Configuration
If auto-setup doesn't work, add this to your MCP client's config file:
HTTP (default — works with Claude Desktop, Cursor, Windsurf):
{
"mcpServers": {
"unityMCP": {
"url": "http://localhost:8080/mcp"
}
}
}
VS Code:
{
"servers": {
"unityMCP": {
"type": "http",
"url": "http://localhost:8080/mcp"
}
}
}
Stdio configuration (uvx)
macOS/Linux:
{
"mcpServers": {
"unityMCP": {
"command": "uvx",
"args": ["--from", "mcpforunityserver", "mcp-for-unity", "--transport", "stdio"]
}
}
}
Windows:
{
"mcpServers": {
"unityMCP": {
"command": "C:/Users/YOUR_USERNAME/AppData/Local/Microsoft/WinGet/Links/uvx.exe",
"args": ["--from", "mcpforunityserver", "mcp-for-unity", "--transport", "stdio"]
}
}
}
Multiple Unity Instances
MCP for Unity supports multiple Unity Editor instances. To target a specific one:
- Ask your LLM to check the
unity_instancesresource - Use
set_active_instancewith theName@hash(e.g.,MyProject@abc123) - All subsequent tools route to that instance
Roslyn Script Validation (Advanced)
For Strict validation that catches undefined namespaces, types, and methods:
- Install NuGetForUnity
Window > NuGet Package Manager→ InstallMicrosoft.CodeAnalysisv5.0- Also install
SQLitePCLRaw.coreandSQLitePCLRaw.bundle_e_sqlite3v3.0.2 - Add
USE_ROSLYNtoPlayer Settings > Scripting Define Symbols - Restart Unity
Manual DLL installation (if NuGetForUnity isn't available)
- Download
Microsoft.CodeAnalysis.CSharp.dlland dependencies from NuGet - Place DLLs in
Assets/Plugins/folder - Ensure .NET compatibility settings are correct
- Add
USE_ROSLYNto Scripting Define Symbols - Restart Unity
Troubleshooting
- Unity Bridge Not Connecting: Check
Window > MCP for Unitystatus, restart Unity - Server Not Starting: Verify
uv --versionworks, check the terminal for errors - Client Not Connecting: Ensure the HTTP server is running and the URL matches your config
Detailed setup guides:
- Fix Unity MCP and Cursor, VSCode & Windsurf — uv/Python installation, PATH issues
- Fix Unity MCP and Claude Code — Claude CLI installation
- Common Setup Problems — macOS dyld errors, FAQ
Still stuck? Open an Issue or Join Discord
Contributing
See README-DEV.md for development setup. For custom tools, see CUSTOM_TOOLS.md.
- Fork → Create issue → Branch (
feature/your-idea) → Make changes → PR
Telemetry & Privacy
Anonymous, privacy-focused telemetry (no code, no project names, no personal data). Opt out with DISABLE_TELEMETRY=true. See TELEMETRY.md.
License: MIT — See LICENSE | Need help? Discord | Issues
Star History
Citation for Research
If you are working on research that is related to Unity-MCP, please cite us!@inproceedings{10.1145/3757376.3771417,
author = {Wu, Shutong and Barnett, Justin P.},
title = {MCP-Unity: Protocol-Driven Framework for Interactive 3D Authoring},
year = {2025},
isbn = {9798400721366},
publisher = {Association for Computing Machinery},
address = {New York, NY, USA},
url = {https://doi.org/10.1145/3757376.3771417},
doi = {10.1145/3757376.3771417},
series = {SA Technical Communications '25}
}
Unity AI Tools by Coplay
Coplay offers 3 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.
- Coplay MCP a free-for-now MCP for Coplay tools.
(These tools have different tech stacks. See this blog post comparing Coplay to MCP for Unity.)
Disclaimer
This project is a free and open-source tool for the Unity Editor, and is not affiliated with Unity Technologies.