unity mcpunity editor plugin
UnityMCP: Seamless Integration Between Unity and AI Assistants
March 19, 2025
4 min read
Architecture: Seamless Integration of Unity and AI
The Unity Machine Control Protocol (Unity MCP) creates a powerful bridge between your Unity Editor and AI systems, enabling real-time interaction and automation. This innovative solution consists of two main components working in harmony:
1. Unity Plugin (UnityMCPPlugin)
This robust Unity Editor plugin serves as the interface within your Unity environment, providing:
- A comprehensive debug window for monitoring connection status and activity
- A WebSocket client that enables real-time bidirectional communication
- A powerful C# code execution engine that brings AI commands to life
- Detailed logging capabilities for troubleshooting and monitoring
- Sophisticated editor state tracking and serialization for context awareness
2. MCP Server (unity-mcp-server)
This TypeScript-based server acts as the central hub, exposing Unity Editor functionality through standardized tools:
Key Tools at Your Disposal
get_editor_state
- Captures a snapshot of your Unity Editor's current state
- Provides detailed information about GameObjects, selection state, and play mode
- Delivers comprehensive scene hierarchy and project structure data
- Supports flexible output formats (Raw, scripts only, no scripts) to suit your needs
execute_editor_command
- Runs C# code directly within your Unity Editor environment
- Provides complete access to UnityEngine and UnityEditor APIs
- Executes commands in real-time with thorough error handling
- Implements command timeout protection for stability
get_logs
- Retrieves and filters Unity Editor logs with precision
- Supports advanced filtering by type, content, and timestamp
- Offers customizable output fields for targeted information
- Incorporates buffer management for optimal performance
Installation: Getting Started Quickly
Automated Installation via Smithery
For the fastest setup with Claude Desktop, use Smithery:
npx -y @smithery/cli install @Arodoid/unitymcp --client claude
Manual Installation Requirements
- Unity 2022.3 or newer
- Node.js 18 or later
- npm 9 or later
Setting Up the Unity Plugin
- Copy the
UnityMCPPlugin
folder into your Unity project's Assets directory - Launch your Unity Editor
- Access the plugin through Unity's top menu: UnityMCP > Debug Window
Setting Up the MCP Server
cd unity-mcp-server
npm install
npm run build
Usage: Bringing AI to Your Unity Workflow
Launching the Server
cd unity-mcp-server
node build/index.js
Connecting from Unity
- Open your Unity project
- Navigate to the UnityMCP Debug Window (Window > UnityMCP > Debug Window)
- The plugin will automatically attempt to establish a connection
- Monitor connection status and system logs in the debug window
Example Commands
// Reset selected object to origin
Selection.activeGameObject.transform.position = Vector3.zero;
// Toggle between play and edit modes
EditorApplication.isPlaying = !EditorApplication.isPlaying;
// Generate a new cube in the scene
GameObject.CreatePrimitive(PrimitiveType.Cube);
Development: Extending the Platform
Building the Server
cd unity-mcp-server
npm run build
Live Development with Auto-Refresh
npm run watch
Debugging Communication
npm run inspector
Technical Details: Under the Hood
Communication Protocol
- WebSocket-based communication operating on port 8080
- Fully bidirectional updates in real-time
- Standardized JSON message format
- Intelligent reconnection handling for reliability
Security Features
- Robust command execution timeout protection
- Comprehensive error handling and validation
- Efficient log buffer management
- Continuous connection state monitoring
Error Management
The system implements thorough error handling for various scenarios:
- Network connection issues
- Command execution failures
- Code compilation errors
- Runtime exceptions
- Timeout situations
Contributing: Join the Community
- Fork the repository to your GitHub account
- Create a feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes with descriptive messages
- Push to your branch (
git push origin feature/amazing-feature
) - Submit a Pull Request for review