Labsco
quazaai logo

Advanced Unity MCP Integration

โ˜… 154

from quazaai

An MCP server for Unity, enabling AI assistants to interact with projects in real-time, access scene data, and execute code.

๐Ÿ”ฅ๐Ÿ”ฅ๐Ÿ”ฅ๐Ÿ”ฅโœ“ VerifiedFreeQuick setup

๐Ÿš€ Advacned Unity MCP Integration

MCP smithery badge

Unity MCP Inspector

This package provides a seamless integration between Model Context Protocol (MCP) and Unity Editor, allowing AI assistants to understand and interact with your Unity projects in real-time. With this integration, AI assistants can access information about your scene hierarchy, project settings, and execute code directly in the Unity Editor context.

๐Ÿ“š Features

  • Browse and manipulate project files directly
  • Access real-time information about your Unity project
  • Understand your scene hierarchy and game objects
  • Execute C# code directly in the Unity Editor
  • Monitor logs and errors
  • Control the Editor's play mode
  • Wait For Code Execution

๐Ÿ› ๏ธ Architecture

The integration consists of two main components:

  1. Unity Plugin (C#): Resides in the Unity Editor and provides access to Editor APIs
  2. MCP Server (TypeScript/Node.js): Implements the MCP protocol and communicates with the Unity plugin

Communication between them happens via WebSocket, transferring JSON messages for commands and data.

File System Access

The Unity MCP integration now includes powerful filesystem tools that allow AI assistants to:

  • Browse, read, and edit files in your Unity project
  • Create new files and directories
  • Search for specific files or asset types
  • Analyze your project structure
  • Make targeted code changes with diff previews

All file operations are restricted to the Unity project directory for security. The system intelligently handles both absolute and relative paths, always resolving them relative to your project's Assets folder for convenience.

Example usages:

  • Get a directory listing: list_directory(path: "Scenes")
  • Read a script file: read_file(path: "Scripts/Player.cs")
  • Edit a configuration file: edit_file(path: "Resources/config.json", edits: [{oldText: "value: 10", newText: "value: 20"}], dryRun: true)
  • Find all materials: find_assets_by_type(assetType: "Material")

๐Ÿ‘ฅ Contributing

Contributions are welcome! Here's how you can contribute:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Make your changes
  4. Commit your changes (git commit -m 'Add some amazing feature')
  5. Push to the branch (git push origin feature/amazing-feature)
  6. Open a Pull Request

Development Setup

Unity Side:

  • Open the project in Unity
  • Modify the C# scripts in the UnityMCPConnection/Editor directory

Server Side:

  • Navigate to the mcpServer directory
  • Install dependencies: npm install
  • Make changes to the TypeScript files in the src directory
  • Build the server: npm run build
  • Run the server: node build/index.js

๐Ÿ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

๐Ÿ“ž Support

If you encounter any issues or have questions, please file an issue on the GitHub repository.