A Model Context Protocol (MCP) server for Unity that enables AI agents to query and control the Unity Editor.
MCP is an open standard by Anthropic that allows AI systems to access external tools and data. This package turns Unity into an MCP server, letting AI assistants like Antigravity, Claude, and Cursor query your scenes, assets, and execute editor commands.
- ๐ฎ Scene Hierarchy - Query GameObjects, components, and structure
- โ๏ธ Write Operations - Create, delete, and modify GameObjects in real-time
- ๐งฉ Component Control - Add, remove, and configure components
- ๐ฌ Scene Management - Open, save, create, and manage scenes
- ๐ท๏ธ Prefab Tools - Instantiate, create, and inspect prefabs
- ๐ฆ Asset Browser - List and search project assets
- ๐ Resource Access - Read scripts, prefabs, and ScriptableObjects
- ๐ Console Access - Read and clear Unity console logs
- โ๏ธ Editor Control - Execute menu items, select objects
- ๐ง Compilation Status - Monitor build errors and warnings
- ๐ท Screenshots - Capture Game View or Scene View (v2.1)
- ๐ Project Search - Search by name, content, or references (v2.1)
โถ๏ธ Play Mode Control - Enter/exit/pause play mode (v2.1)- ๐ฎ Input Simulation - Keyboard, mouse, and UI interactions (v2.1)
- ๐ Schema Support - Full JSON Schema for all tool parameters (v2.1)
- ๐ Secure - Localhost only, no external access
- Open
Window > Package Manager - Click
+>Add package from git URL... - Enter:
https://github.com/usmanbutt-dev/unity-mcp.git
- The server auto-starts when Unity loads
- Open
Window > MCP Serverto view status - Click "Copy Config to Clipboard"
- Paste into your MCP client's configuration file
| Tool | Description |
|---|---|
unity_create_gameobject |
Create new GameObjects (primitives supported) |
unity_delete_gameobject |
Delete GameObjects from scene |
unity_set_transform |
Set position, rotation, scale |
unity_add_component |
Add components to GameObjects |
unity_remove_component |
Remove components |
unity_set_component_property |
Set component property values |
| Tool | Description |
|---|---|
unity_get_hierarchy |
Get scene GameObject hierarchy |
unity_get_gameobject |
Get details of a specific GameObject |
unity_get_components |
List components on a GameObject |
| Tool | Description |
|---|---|
unity_instantiate_prefab |
Instantiate prefabs in scene |
unity_get_prefab_info |
Get prefab structure |
unity_create_prefab |
Create prefab from GameObject |
unity_unpack_prefab |
Unpack prefab instances |
| Tool | Description |
|---|---|
unity_get_scenes |
List all scenes in project |
unity_open_scene |
Open a scene |
unity_save_scene |
Save current scene |
unity_new_scene |
Create new scene |
unity_close_scene |
Close a scene |
unity_set_active_scene |
Set active scene |
| Tool | Description |
|---|---|
unity_get_assets |
List assets in a folder |
unity_get_project_settings |
Get project configuration |
unity_get_console_logs |
Get recent console logs |
unity_clear_console |
Clear the console |
unity_execute_menu |
Execute a menu item |
unity_select_object |
Select a GameObject |
unity_get_selection |
Get current selection |
unity_get_editor_state |
Get editor play/pause state |
| Tool | Description |
|---|---|
unity_get_compilation_status |
Get compile errors/warnings |
unity_recompile_scripts |
Force recompilation |
unity_get_assemblies |
List project assemblies |
| Tool | Description |
|---|---|
unity_take_screenshot |
Capture Game View or Scene View as base64 PNG |
unity_search_project |
Search by name, content, or asset references |
| Tool | Description |
|---|---|
unity_enter_play_mode |
Enter play mode |
unity_exit_play_mode |
Exit play mode |
unity_pause_play_mode |
Pause/unpause play mode |
unity_simulate_key |
Simulate keyboard input |
unity_simulate_mouse |
Simulate mouse clicks |
unity_click_ui_element |
Click UI buttons/toggles by name |
| Tool | Description |
|---|---|
unity_set_animator_parameter |
Set bool/float/int/trigger parameters |
unity_get_animator_info |
Get animator state, parameters, layers |
unity_play_animation |
Play animation state by name |
| Tool | Description |
|---|---|
unity_get_material_info |
Get material properties and shader |
unity_set_material_property |
Set color/float/int/vector properties |
unity_set_material |
Assign material to renderer |
| Tool | Description |
|---|---|
unity_raycast |
Cast ray and get hit info |
unity_overlap_sphere |
Find colliders in radius |
unity_add_force |
Apply force to Rigidbody |
| Tool | Description |
|---|---|
unity_create_folder |
Create project folders |
unity_create_material |
Create material assets |
unity_create_script |
Create C# scripts with templates |
unity_move_asset |
Move/rename assets |
unity_duplicate_asset |
Duplicate assets |
| Tool | Description |
|---|---|
unity_get_scene_summary |
Compact scene overview for AI |
unity_get_component_schema |
Get component properties schema |
unity_get_type_info |
Discover Unity component types |
The server also provides resource access via MCP resources protocol:
- Scripts - Read C# source files
- Scenes - Get scene metadata
- Prefabs - Read prefab structure
- ScriptableObjects - Read SO data as JSON
Add to your MCP client config (e.g., mcp_config.json):
{
"mcpServers": {
"unity": {
"command": "node",
"args": ["path/to/Packages/com.community.unity-mcp/Bridge/mcp-bridge.js"]
}
}
}Note: Use the "Copy Config to Clipboard" button in
Window > MCP Serverto get the correct path.
Once connected, ask your AI assistant:
- "Create a red cube at position (0, 2, 0)"
- "Add a Rigidbody to the Player object"
- "What GameObjects are in my current scene?"
- "Show me the components on the Player object"
- "Open the MainMenu scene"
- "What compilation errors do I have?"
- Unity 2021.3 or later
- Node.js (for the MCP bridge)
- Antigravity IDE Support - IDE integration for Unity
MIT License - see LICENSE