execute_menu_itemLABSCO SUMMARY
An agent can build the scene, not just write the script that would.
The whole Editor surface is reachable — hierarchy, components, materials, prefabs, scenes, play mode and the Test Runner — and batch_execute turns a repetitive twenty-object setup into a single request that rolls back if it fails halfway.
What it is
A Unity Editor package plus a Node.js server that speaks MCP. The package runs inside the Editor and the server bridges your AI client to it, so operations happen in the project you have open.
What you get
- Scene and hierarchy work:
select_gameobject,get_gameobject,update_gameobject,duplicate_gameobject,delete_gameobject,reparent_gameobject,move_gameobject,rotate_gameobject,scale_gameobjectandset_transformfor position, rotation and scale in one call - Scenes as files:
create_scene,load_scenewith optional additive loading,save_scene,unload_scene,delete_sceneandget_scene_info - Components and assets:
update_componentadds a component if the object does not have it,add_asset_to_scenepulls from the AssetDatabase,create_prefabbuilds one with serialized field values, andadd_packageinstalls through the Package Manager - Materials:
create_material,assign_material,modify_materialandget_material_info - Editor control:
execute_menu_itemruns any MenuItem-tagged function,recompile_scriptsrebuilds,run_testsdrives the Test Runner, andsend_console_log/get_console_logswrite and read the console with pagination batch_executeruns several operations as one request, with optional rollback on failure- Play mode:
get_play_mode_statusandset_play_mode_statuswithplay,pause,stopandstep, plusshow_unity_dashboardfor the VS Code app - Resources rather than tools where a listing is the point:
unity://menu-items,unity://scenes-hierarchy,unity://gameobject/{id},unity://logs,unity://packages,unity://assetsandunity://tests/{testMode}
Requirements
Unity 6 or later, Node.js 18 or later, and npm 9 or later for debugging the server. Install the package through the Unity Package Manager with Add package from git URL... pointing at the repository. Project paths containing spaces are supported, though moving the project to a path without spaces is the first thing to try if the connection misbehaves. The package also adds Unity's Library/PackedCache folder to VSCode-like workspaces so autocompletion and type information cover Unity packages.
Setup effort
Follow the published steps
USE CASES
Setting up a scene from a description
Create the objects, parent them, set transforms and attach components in one batch, with rollback if any step fails, instead of a hundred round-trips through the Inspector.
Chasing an error in the console
Read the console with pagination, ask what the stack means, recompile after the fix, and check the console again — all without leaving the conversation.
Running the test suite and reading the result
Drive the Unity Test Runner directly and get the outcome back, so a change and its verification happen in the same turn.
Getting a material right
Create it with a chosen shader, assign it to a renderer, then tweak colours, floats and textures and read back every property.
Testing something in play mode
Start play mode, pause it, step a single frame, and stop — useful when the bug only shows up at one frame boundary.
Reaching an Editor feature that has no API
Almost everything in Unity has a menu item; execute_menu_item runs it, and unity://menu-items lists what is available.
33 tools
Listed in project docs. Your client may show a different list.
select_gameobjectupdate_gameobjectupdate_componentadd_packagerun_testssend_console_logadd_asset_to_scenecreate_prefabcreate_sceneload_scenedelete_sceneget_gameobjectget_console_logsrecompile_scriptssave_sceneget_scene_infounload_sceneduplicate_gameobjectdelete_gameobjectreparent_gameobjectmove_gameobjectrotate_gameobjectscale_gameobjectset_transformcreate_materialassign_materialmodify_materialget_material_infobatch_executeshow_unity_dashboardget_play_mode_statusset_play_mode_statusBEFORE YOU INSTALL
What to know first
Tools you get
33 tools named in the project's documentation.
Requires
- Unity 6 or later
- Node.js 18 or later
Where it runs
All 10 documented setups run the server on your machine.
INSTALLATION
Connect your client
Server setup
In Unity, open Window > Package Manager, click "+", choose "Add package from git URL...", enter https://github.com/CoderGamester/mcp-unity.git and click Add
Open Tools > MCP Unity > Server Window and click Configure for your client — or paste one of the blocks below, copying the exact path from that window
MCP Clients
Cursor, Windsurf, Claude Code, Other MCP clients
{
"mcpServers": {
"mcp-unity": {
"command": "node",
"args": [
"<YOUR_PATH_TO_MCP_UNITY>/Server~/build/index.js"
]
}
}
}<YOUR_PATH_TO_MCP_UNITY> is the absolute path to your MCP Unity installation. You can also copy the snippet from Tools > MCP Unity > Server Window in Unity.
VS Code — workspace
{
"servers": {
"mcp-unity": {
"command": "node",
"args": [
"${workspaceFolder}/Library/PackageCache/com.gamelovers.mcp-unity@<YOUR_HASH>/Server~/build/index.js"
]
}
}
}<YOUR_HASH> is the folder name Unity gives the package under Library/PackageCache. It changes when the package updates, so copy the path from Tools > MCP Unity > Server Window (with "Use relative path" on), or re-run its Configure button after an update.
Codex
[mcp_servers.mcp-unity]
command = "node"
args = ["<YOUR_PATH_TO_MCP_UNITY>/Server~/build/index.js"]<YOUR_PATH_TO_MCP_UNITY> is the absolute path to your MCP Unity installation. You can also copy the snippet from Tools > MCP Unity > Server Window in Unity.
Cursor — project local, Claude Code — project local
{
"mcpServers": {
"mcp-unity": {
"command": "node",
"args": [
"Library/PackageCache/com.gamelovers.mcp-unity@<YOUR_HASH>/Server~/build/index.js"
]
}
}
}<YOUR_HASH> is the folder name Unity gives the package under Library/PackageCache. It changes when the package updates, so copy the path from Tools > MCP Unity > Server Window (with "Use relative path" on), or re-run its Configure button after an update.
Codex — project local
[mcp_servers.mcp-unity]
command = "node"
args = ["Library/PackageCache/com.gamelovers.mcp-unity@<YOUR_HASH>/Server~/build/index.js"]<YOUR_HASH> is the folder name Unity gives the package under Library/PackageCache. It changes when the package updates, so copy the path from Tools > MCP Unity > Server Window (with "Use relative path" on), or re-run its Configure button after an update.
OpenCode
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"mcp-unity": {
"type": "local",
"enabled": true,
"command": [
"node",
"Library/PackageCache/com.gamelovers.mcp-unity@<YOUR_HASH>/Server~/build/index.js"
],
"environment": {}
}
}
}<YOUR_HASH> is the folder name Unity gives the package under Library/PackageCache. It changes when the package updates, so copy the path from Tools > MCP Unity > Server Window (with "Use relative path" on), or re-run its Configure button after an update.