MCP Connector

Integrate AI with Unity Editor in Real-Time

An MCP server connecting AI assistants to the Unity Editor for real-time scene inspection, code execution, and file access.

Works with unitygithubnode.js

91
Spark score
out of 100
Updated Apr 2025
Version 0.0.1
Models
universal

Add to Favorites

Why it matters

Enable AI assistants to interact with the Unity Editor in real-time, allowing for code execution, project file manipulation, and comprehensive project state monitoring.

Outcomes

What it gets done

01

Execute C# code directly within the Unity Editor.

02

Read, write, and edit project files programmatically.

03

Access and monitor Unity project state, scene hierarchy, and logs.

04

Automate development tasks through AI-driven interaction with Unity.

Install

Add it to your toolbox

Run in your project directory:

curl -fsSL https://spark.entire.vc/get/vb-unity-integration-advanced | bash

Capabilities

Tools your agent gets

get_editor_state

Get comprehensive information about Unity project and editor state

get_current_scene_info

Get detailed information about the current scene

get_game_objects_info

Get information about specific GameObjects in the scene

execute_editor_command

Execute C# code directly in Unity Editor

get_logs

Get and filter Unity console logs

verify_connection

Verify active connection to Unity Editor

read_file

Read file contents from your Unity project

read_multiple_files

Read multiple files at once

+7 tools

Overview

Unity Integration (Advanced) MCP Server

An MCP server connecting AI assistants to a live Unity Editor session for real-time scene inspection, C# code execution, and project file access via WebSocket. Use when an AI assistant needs live access to a running Unity project rather than a static export; requires the MCP server connected to an active Editor session.

What it does

This MCP server connects AI assistants to a running Unity Editor in real time, letting them understand and interact with a Unity project rather than just read its source files. It has two components communicating over WebSocket with JSON messages: a C# Unity plugin resident in the Editor with access to Editor APIs, and a TypeScript/Node.js MCP server implementing the MCP protocol between the plugin and the AI client. Unity Editor tools expose get_editor_state (comprehensive project and editor state), get_current_scene_info, get_game_objects_info, execute_editor_command (runs C# code directly in the Editor), get_logs (filtered console log retrieval), and verify_connection. Filesystem tools add project-file access: read_file, read_multiple_files, write_file, edit_file (targeted edits with a diff preview), list_directory, directory_tree, search_files, get_file_info, find_assets_by_type (e.g. all Materials or Prefabs), and list_scripts for every C# script in the project. File paths can be absolute or relative to the project's Assets folder - "Scenes/MyScene.unity" resolves to <project>/Assets/Scenes/MyScene.unity - and all file operations are restricted to the Unity project directory for security. A Window > MCP Debug panel inside Unity shows connection status, lets you test code execution, view logs, and monitor events.

When to use - and when NOT to

Use this when an AI assistant needs live access to a Unity project - inspecting the current scene hierarchy and GameObjects, executing C# code directly in the Editor, reading or editing project files and scripts, or finding assets by type - rather than working from a static export of the project.

The MCP server must be running and connected to a live Unity Editor session (verifiable via verify_connection or the MCP Debug window) for any of these tools to function; this is not a headless build-time integration.

Inputs and outputs

Inputs are tool calls from the AI assistant - a scene/GameObject query, a C# snippet to execute, a file path to read or edit, or an asset-type search. Outputs are structured Unity Editor and filesystem data: list_directory(path: "Scenes") returns a directory listing, read_file(path: "Scripts/Player.cs") returns file contents, edit_file(path: "Resources/config.json", edits: [{oldText: "value: 10", newText: "value: 20"}], dryRun: true) previews a targeted change, and find_assets_by_type(assetType: "Material") returns matching assets.

Integrations

Requires Unity 2021.3 or later and Node.js 18+ for the MCP server. The Unity package installs via the Package Manager (Add package from git URL) or by importing a .unitypackage; the server can be run directly (npm install then node build/index.js) or installed automatically via Smithery for Claude Desktop (npx -y @smithery/cli install @quazaai/unitymcpintegration --client claude). The project is MIT-licensed.

Who it's for

Unity developers who want an AI assistant to inspect their live scene, execute editor code, and read or edit project files and scripts directly, instead of working from static exports of the project.

{
  "mcpServers": {
    "unity-mcp-server": {
      "command": "node",
      "args": [
        "path-to-project>\\Library\\PackageCache\\com.quaza.unitymcp@d2b8f1260bca\\mcpServer\\mcpServer\\build\\index.js"
      ],
      "env": {
        "MCP_WEBSOCKET_PORT": "5010"
      }
    }
  }
}
Source README

🚀 Advacned Unity MCP Integration

MCP
smithery badge
Unity
Node.js
TypeScript
WebSockets

Stars
Forks
License

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

🚀 Getting Started

Prerequisites

  • Unity 2021.3 or later
  • Node.js 18+ (for running the MCP server)

Installation

1. Install Unity Package

You have several options to install the Unity package:

Option A: Package Manager (Git URL)

  1. Open the Unity Package Manager (Window > Package Manager)
  2. Click the + button and select Add package from git URL...
  3. Enter the repository URL: https://github.com/quazaai/UnityMCPIntegration.git
  4. Click Add

Option B: Import Custom Package

  1. Clone this repository or download it as a unityPackage
  2. In Unity, go to Assets > Import Package > Custom Package
  3. Select the UnityMCPIntegration.unitypackage file
2. Set up the MCP Server

You have two options to run the MCP server:

Option A: Run the server directly

  1. Navigate to the mcpServer (likely <path-to-project>\Library\PackageCache\com.quaza.unitymcp@d2b8f1260bca\mcpServer\) directory
  2. Install dependencies:
    npm install
    
  3. Run the server:
    node build/index.js
    

Option B: Add to MCP Host configuration

Add the server to your MCP Host configuration for Claude Desktop, Custom Implementation etc

{
  "mcpServers": {
    "unity-mcp-server": {
      "command": "node",
      "args": [
        "path-to-project>\\Library\\PackageCache\\com.quaza.unitymcp@d2b8f1260bca\\mcpServer\\mcpServer\\build\\index.js"
      ],
      "env": {
        "MCP_WEBSOCKET_PORT": "5010"
      }
    }
  }
}

Demo Video

YouTube

Installing via Smithery

To install Unity MCP Integration for Claude Desktop automatically via Smithery:

npx -y @smithery/cli install @quazaai/unitymcpintegration --client claude

🔧 Usage

Debugging and Monitoring

You can open the MCP Debug window in Unity to monitor the connection and test features:

  1. Go to Window > MCP Debug
  2. Use the debug window to:
    • Check connection status
    • Test code execution
    • View logs
    • Monitor events
Available Tools

The Unity MCP integration provides several tools to AI assistants:

Unity Editor Tools
  • get_editor_state: Get comprehensive information about the Unity project and editor state
  • get_current_scene_info: Get detailed information about the current scene
  • get_game_objects_info: Get information about specific GameObjects in the scene
  • execute_editor_command: Execute C# code directly in the Unity Editor
  • get_logs: Retrieve and filter Unity console logs
  • verify_connection: Check if there's an active connection to Unity Editor
Filesystem Tools
  • read_file: Read contents of a file in your Unity project
  • read_multiple_files: Read multiple files at once
  • write_file: Create or overwrite a file with new content
  • edit_file: Make targeted edits to existing files with diff preview
  • list_directory: Get a listing of files and folders in a directory
  • directory_tree: Get a hierarchical view of directories and files
  • search_files: Find files matching a search pattern
  • get_file_info: Get metadata about a specific file or directory
  • find_assets_by_type: Find all assets of a specific type (e.g. Material, Prefab)
  • list_scripts: Get a listing of all C# scripts in the project

File paths can be absolute or relative to the Unity project's Assets folder. For example, "Scenes/MyScene.unity" refers to <project>/Assets/Scenes/MyScene.unity.

🛠️ 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.

FAQ

Common questions

Discussion

Questions & comments · 0

Sign In Sign in to leave a comment.