unity-mcp
unity-mcp
Use this skill when Unity Editor automation is the execution surface. The point is not just "connect to MCP", but to use the editor as a safe, inspectable target for scripted scene changes, package operations, script validation, tests, and API checks.
When to use this skill
- Configuring an AI client to talk to a running Unity Editor over MCP
- Automating scene, prefab, script, or package changes from an agent workflow
- Routing commands to the correct Unity instance in a multi-project session
- Validating generated C# with Roslyn-aware script tooling
- Using
unity_docsandunity_reflectbefore writing or editing scripts - Running editor-side verification with
run_tests,get_test_job, andread_console
Instructions
Step 1: Install the Unity package
In Unity Package Manager:
https://github.com/CoplayDev/unity-mcp.git?path=/MCPForUnity#main
Beta builds can target the #beta branch instead. OpenUPM is also supported by the upstream project.
Step 2: Pick transport mode
HTTP is the default and easiest mode:
{
"mcpServers": {
"unityMCP": {
"url": "http://localhost:8080/mcp"
}
}
}
Stdio is useful for clients or environments that prefer local process transport:
{
"mcpServers": {
"unityMCP": {
"command": "uvx",
"args": ["--from", "mcpforunityserver", "mcp-for-unity", "--transport", "stdio"]
}
}
}
Use HTTP unless you specifically need stdio. The in-editor quick start remains:
Window > MCP for Unity- Start Server
- Configure your client
- Look for
Connected
Step 3: Know the high-value tools
Current upstream tools include:
- scene and object control:
manage_scene,manage_gameobject,manage_components,manage_prefabs - script lifecycle:
create_script,manage_script,script_apply_edits,validate_script,manage_script_capabilities - UI, rendering, and content:
manage_ui,manage_material,manage_texture,manage_shader,manage_vfx,manage_animation,manage_camera,manage_graphics,manage_packages - search and verification:
find_in_file,find_gameobjects,run_tests,get_test_job,read_console,unity_docs,unity_reflect - control and batching:
batch_execute,manage_tools,set_active_instance,refresh_unity
Step 4: Route to the right Unity instance
When multiple editors are open:
- inspect the
unity_instancesresource - call
set_active_instancewith the reportedName@hash - run all subsequent tools against that active instance
Do this before writing code or mutating scenes. Otherwise the agent can edit the wrong project.
Step 5: Prefer verification-aware editing
Before generating or modifying a script:
- use
unity_docsfor the relevant API page - use
unity_reflectwhen the live project type system matters - create or edit the script
- run
validate_script - inspect
read_console - run
run_testswhere applicable
This reduces hallucinated API usage and makes unity-mcp a real verification surface, not just a write surface.
Step 6: Use batching for repetitive editor work
batch_execute is the throughput tool. Use it for repetitive asset edits, prefab updates, or texture import changes instead of looping one tool call at a time.
Step 7: Enable Roslyn validation when script correctness matters
The upstream project supports one-click Roslyn installation from the Unity window and menu. Use that path first. Manual DLL installation is the fallback.
Examples
Example 1: HTTP quick start
omu "Create a simple player controller scene"
-> unity-mcp over http://localhost:8080/mcp
-> manage_scene / create_script / validate_script / run_tests
Example 2: Multi-instance routing
1. read unity_instances
2. set_active_instance MyProject@abc123
3. manage_scene create prototype arena
4. read_console
Example 3: API-safe code generation
1. unity_docs on CharacterController
2. unity_reflect on PlayerController assembly symbols
3. create_script PlayerController.cs
4. validate_script
5. read_console
Best practices
- Use HTTP first; use stdio only when the client or environment needs it.
- Always confirm the active Unity instance before mutating project state.
- Use
unity_docsandunity_reflectbefore writing complex runtime code. - Pair
validate_scriptwithread_console; one without the other is incomplete. - Prefer
batch_executefor repeated operations. - Enable Roslyn when strict API validation matters.
- Keep package management (
manage_packages) and script generation in the same verification loop.
References
- https://github.com/CoplayDev/unity-mcp
- See
scripts/setup.shfor client config bootstrap