MCP Server to control and interact with Unity3d Game Engine for game development
English | ๐จ๐ณ็ฎไฝไธญๆ | ๐ฏ๐ตๆฅๆฌ่ช |
---|
,/(/. *(/,
*/(((((/. *((((((*.
.*((((((((((/. *((((((((((/.
./((((((((((((((/ *((((((((((((((/,
,/(((((((((((((/*. */(((((((((((((/*.
,%%#((/((((((* ,/(((((/(#&@@(
,%%##%%##((((((/*. ,/((((/(#&@@@@@@(
,%%######%%##((/(((/*. .*/(((//(%@@@@@@@@@@@(
,%%####%#(%%#%%##((/((((((((//#&@@@@@@&@@@@@@@@(
,%%####%( /#%#%%%##(//(#@@@@@@@%, #@@@@@@@(
,%%####%( *#%###%@@@@@@( #@@@@@@@(
,%%####%( #%#%@@@@, #@@@@@@@(
,%%##%%%( #%#%@@@@, #@@@@@@@(
,%%%#* #%#%@@@@, *%@@@(
., ,/##*. #%#%@@@@, ./&@#* *`
,/#%#####%%#/, #%#%@@@@, ,/&@@@@@@@@@&\.
`*#########%%%%###%@@@@@@@@@@@@@@@@@@&*ยด
`*%%###########%@@@@@@@@@@@@@@&*ยด
`*%%%######%@@@@@@@@@@&*ยด
`*#%%##%@@@@@&*ยด
`*%#%@&*ยด
โโโโ โโโโ โโโโโโโโโโโโโโ โโโ โโโโโโโ โโโโโโโโโโโโโโโโโโ โโโ
โโโโโ โโโโโโโโโโโโโโโโโโโโโ โโโ โโโโโโโโ โโโโโโโโโโโโโโโโโโโ โโโโ
โโโโโโโโโโโโโโ โโโโโโโโ โโโ โโโโโโโโโ โโโโโโ โโโ โโโโโโโ
โโโโโโโโโโโโโโ โโโโโโโ โโโ โโโโโโโโโโโโโโโโ โโโ โโโโโ
โโโ โโโ โโโโโโโโโโโโโโ โโโโโโโโโโโโ โโโโโโโโโ โโโ โโโ
โโโ โโโ โโโโโโโโโโ โโโโโโโ โโโ โโโโโโโโ โโโ โโโ
MCP Unity is an implementation of the Model Context Protocol for Unity Editor, allowing AI assistants to interact with your Unity projects. This package provides a bridge between Unity and a Node.js server that implements the MCP protocol, enabling AI agents like Claude, Windsurf, and Cursor to execute operations within the Unity Editor.
MCP Unity provides automatic integration with VSCode-like IDEs (Visual Studio Code, Cursor, Windsurf) by adding the Unity Library/PackedCache
folder to your workspace. This feature:
The following tools are available for manipulating and querying Unity scenes and GameObjects via MCP:
execute_menu_item
: Executes Unity menu items (functions tagged with the MenuItem attribute)
Example prompt: "Execute the menu item 'GameObject/Create Empty' to create a new empty GameObject"
select_gameobject
: Selects game objects in the Unity hierarchy by path or instance ID
Example prompt: "Select the Main Camera object in my scene"
update_gameobject
: Updates a GameObject's core properties (name, tag, layer, active/static state), or creates the GameObject if it does not exist
Example prompt: "Set the Player object's tag to 'Enemy' and make it inactive"
update_component
: Updates component fields on a GameObject or adds it to the GameObject if it does not contain the component
Example prompt: "Add a Rigidbody component to the Player object and set its mass to 5"
add_package
: Installs new packages in the Unity Package Manager
Example prompt: "Add the TextMeshPro package to my project"
run_tests
: Runs tests using the Unity Test Runner
Example prompt: "Run all the EditMode tests in my project"
send_console_log
: Send a console log to Unity
Example prompt: "Send a console log to Unity Editor"
add_asset_to_scene
: Adds an asset from the AssetDatabase to the Unity scene
Example prompt: "Add the Player prefab from my project to the current scene"
unity://menu-items
: Retrieves a list of all available menu items in the Unity Editor to facilitate execute_menu_item
tool
Example prompt: "Show me all available menu items related to GameObject creation"
unity://scenes-hierarchy
: Retrieves a list of all game objects in the current Unity scene hierarchy
Example prompt: "Show me the current scenes hierarchy structure"
unity://gameobject/{id}
: Retrieves detailed information about a specific GameObject by instance ID or object path in the scene hierarchy, including all GameObject components with it's serialized properties and fields
Example prompt: "Get me detailed information about the Player GameObject"
unity://logs
: Retrieves a list of all logs from the Unity console
Example prompt: "Show me the recent error messages from the Unity console"
unity://packages
: Retrieves information about installed and available packages from the Unity Package Manager
Example prompt: "List all the packages currently installed in my Unity project"
unity://assets
: Retrieves information about assets in the Unity Asset Database
Example prompt: "Find all texture assets in my project"
unity://tests/{testMode}
: Retrieves information about tests in the Unity Test Runner
Example prompt: "List all available tests in my Unity project"
Installing this MCP Unity Server is a multi-step process:
https://github.com/CoderGamester/mcp-unity.git
To run MCP Unity server, you'll need to have Node.js 18 or later installed on your computer:
node --version
brew install node@18
node --version
Open the MCP configuration file of your AI client (e.g. claude_desktop_config.json in Claude Desktop) and copy the following text:
Replace
ABSOLUTE/PATH/TO
with the absolute path to your MCP Unity installation or just copy the text from the Unity Editor MCP Server window (Tools > MCP Unity > Server Window).
{
"mcpServers": {
"mcp-unity": {
"command": "node",
"args": [
"ABSOLUTE/PATH/TO/mcp-unity/Server~/build/index.js"
]
}
}
}
When the AI client connects to the WebSocket server, it will automatically show in the green box in the window
By default, the Node.js server is installed in the Server~/
directory.
In case of issues, you can force install it in by:
[!TIP]
The Node.js server is installed in theServer~/
directory.
By default, the WebSocket server runs on port '8090'. You can change this port in two ways:
By default, the timeout between the MCP server and the WebSocket is 10 seconds. You can change depending on the OS you are using:
[!TIP]
The timeout between your AI Coding IDE (e.g., Claude Desktop, Cursor IDE, Windsurf IDE) and the MCP Server depends on the IDE.
The MCP Unity server is built using Node.js . It requires to compile the TypeScript code to JavaScript in the build
directory.
This process is automatically handled by the Unity Editor when you click on "Start Server", but if you want to build it manually, you can follow these steps:
Open a terminal/PowerShell/Command Prompt
Navigate to the Server directory:
cd ABSOLUTE/PATH/TO/mcp-unity/Server~
Install dependencies:
npm install
Build the server:
npm run build
Run the server:
node build/index.js
Debug the server with @modelcontextprotocol/inspector:
npx @modelcontextprotocol/inspector node Server~/build/index.js
npx @modelcontextprotocol/inspector node Server~/build/index.js
Don't forget to shutdown the server with Ctrl + C
before closing the terminal or debugging it with the MCP Inspector.
$env:LOGGING = "true"
$env:LOGGING_FILE = "true"
set LOGGING=true
set LOGGING_FILE=true
MCP Unity is a powerful bridge that connects your Unity Editor environment to AI assistants LLM tools using the Model Context Protocol (MCP).
In essence, MCP Unity:
MCP Unity offers several compelling advantages for developers, artists, and project managers:
Unity 6.2 is set to introduce new built-in AI tools, including the previous Unity Muse (for generative AI capabilities like texture and animation generation) and Unity Sentis (for running neural networks in Unity runtime). As Unity 6.2 is not yet fully released, this comparison is based on publicly available information and anticipated functionalities:
Focus:
Use Cases:
Complementary, Not Mutually Exclusive: MCP Unity and Unity's native AI tools can be seen as complementary. You might use MCP Unity with your AI coding assistant to set up a scene or batch-modify assets, and then use Unity AI tools to generate a specific texture, or to create animations, or 2D sprites for one of those assets. MCP Unity provides a flexible, protocol-based way to interact with the Editor, which can be powerful for developers who want to integrate with a broader range of external AI services or build custom automation workflows.
MCP Unity is designed to work with any AI assistant or development environment that can act as an MCP client. The ecosystem is growing, but current known integrations or compatible platforms include:
Yes, absolutely! One of the significant benefits of the MCP Unity architecture is its extensibility.
McpToolBase
(or a similar base for resources) to expose custom Unity Editor functionality. These tools would then be registered in McpUnityServer.cs
. For example, you could write a tool to automate a specific asset import pipeline unique to your project.Server/src/tools/
directory, including its Zod schema for inputs/outputs, and register it in Server/src/index.ts
. This Node.js part will forward the request to your new C# tool in Unity.This allows you to tailor the AI's capabilities to the specific needs and workflows of your game or application.
Yes, MCP Unity is an open-source project distributed under the MIT License. You are free to use, modify, and distribute it according to the license terms.
The run_tests
tool returns the following response:
Error:
Connection failed: Unknown error
This error occurs because the bridge connection is lost when the domain reloads upon switching to Play Mode.
The workaround is to turn off Reload Domain in Edit > Project Settings > Editor > "Enter Play Mode Settings".
If you have any questions or need support, please open an issue on this repository or alternative you can reach out on:
Contributions are welcome! Please feel free to submit a Pull Request or open an Issue with your request.
Commit your changes following the Conventional Commits format.
This project is under MIT License
GitLab API, enabling project management
Create crafted UI components inspired by the best 21st.dev design engineers.
ALAPI MCP Tools,Call hundreds of API interfaces via MCP
APIMatic MCP Server is used to validate OpenAPI specifications using APIMatic. The server processes OpenAPI files and returns validation summaries by leveraging APIMaticโs API.
MCP to interface with multiple blockchains, staking, DeFi, swap, bridging, wallet management, DCA, Limit Orders, Coin Lookup, Tracking and more.
Enable AI agents to interact with the Atla API for state-of-the-art LLMJ evaluation.
Get prescriptive CDK advice, explain CDK Nag rules, check suppressions, generate Bedrock Agent schemas, and discover AWS Solutions Constructs patterns.
Query and analyze your Axiom logs, traces, and all other event data in natural language
Bring the full power of BrowserStackโs Test Platform to your AI tools, making testing faster and easier for every developer and tester on your team.
Flag features, manage company data, and control feature access using Bucket