UnityMCP is a powerful Unity Editor plugin that implements the Model Context Protocol (MCP), enabling seamless integration between Unity and AI assistants. It provides real-time editor state monitoring, remote command execution, and comprehensive logging capabilities.
The project consists of two main components:
A Unity Editor plugin that provides:
- Debug window for connection status and monitoring
- WebSocket client for real-time communication
- C# code execution engine
- Comprehensive logging system
- Editor state tracking and serialization
A TypeScript-based MCP server that exposes Unity Editor functionality through standardized tools:
-
get_editor_state
- Retrieves current Unity Editor state
- Includes active GameObjects, selection state, play mode status
- Provides scene hierarchy and project structure
- Supports different output formats (Raw, scripts only, no scripts)
-
execute_editor_command
- Executes C# code directly in the Unity Editor
- Full access to UnityEngine and UnityEditor APIs
- Real-time execution with comprehensive error handling
- Command timeout protection
-
get_logs
- Retrieves and filters Unity Editor logs
- Supports filtering by type, content, and timestamp
- Customizable output fields
- Buffer management for optimal performance
- Unity 2022.3 or later
- Node.js 18 or later
- npm 9 or later
- Copy the
UnityMCPPlugin
folder to your Unity project's Assets directory - Open Unity Editor
- Access the plugin through Window > UnityMCP > Debug Window
cd unity-mcp-server
npm install
npm run build
cd unity-mcp-server
node build/index.js
- Open your Unity project
- Open the UnityMCP Debug Window (Window > UnityMCP > Debug Window)
- The plugin will automatically attempt to connect to the MCP server
- Monitor connection status and logs in the debug window
// Center the selected object
Selection.activeGameObject.transform.position = Vector3.zero;
// Toggle play mode
EditorApplication.isPlaying = !EditorApplication.isPlaying;
// Create a new cube
GameObject.CreatePrimitive(PrimitiveType.Cube);
cd unity-mcp-server
npm run build
npm run watch
npm run inspector
- WebSocket-based communication on port 8080
- Bidirectional real-time updates
- JSON message format for all communications
- Automatic reconnection handling
- Command execution timeout protection
- Error handling and validation
- Log buffer management
- Connection state monitoring
The system provides comprehensive error handling for:
- Connection issues
- Command execution failures
- Compilation errors
- Runtime exceptions
- Timeout scenarios
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
This project is private and not licensed for public use.