upilot
Automates Unity Editor tasks including project inspection, asset management, scene manipulation, GameObject/component control, console logs, compilation, package management, menu execution, script creation, material editing, builds, tests, and diagnostics via a local MCP server.
Enables YAML-driven UI automation for Unity Editor windows using UIFlow, supporting actions like clicking, typing, assertions, and screenshots with selectors for UIToolkit and selected IMGUI workflows.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@upilotlist all scenes in the project"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
upilot
upilot is an open-source Unity Editor automation bridge for AI agents and MCP clients. It lets external tools inspect, control, and diagnose the Unity Editor through a local MCP server.
UIFlow is included as an optional add-on for YAML-driven EditorWindow UI automation. The main package identity is upilot.
Features
Unity Editor automation over MCP Streamable HTTP.
Python MCP server connected to the Unity Editor bridge over WebSocket.
Tools for editor status, console logs, compilation, assets, scenes, GameObjects, components, windows, screenshots, packages, menus, scripts, prefabs, materials, builds, tests, and diagnostics.
Optional UIFlow automation for UIToolkit and selected IMGUI EditorWindow workflows.
Core bridge support on Unity 2022.3+; UIFlow remains opt-in for Unity 6+.
Related MCP server: Unity MCP Server
Compatibility
Capability | Requirement | Notes |
upilot core bridge | Unity | Compiled by default. |
upilot MCP server | Python | Bundled under |
UIFlow YAML automation | Unity | Requires |
Current validation project | Unity | See |
UIFlow also requires these Unity packages in the consuming project:
com.unity.inputsystemcom.unity.uicom.unity.ui.test-frameworkcom.unity.test-framework
On Unity 2022, do not enable UNITYPILOT_ENABLE_UIFLOW; UIFlow MCP calls return UIFLOW_UNAVAILABLE, while the rest of upilot remains available.
Installation
Add the package via Window > Package Manager > Add package from git URL:
https://github.com/codingriver/upilot.git#v0.1.0Or edit Packages/manifest.json:
{
"dependencies": {
"io.github.codingriver.upilot": "https://github.com/codingriver/upilot.git#v0.1.0"
}
}Use upilot
Open the Unity panel:
upilot/upilotThe panel can start and stop the local MCP server, inspect bridge status, and show diagnostics.
For local development, the Python MCP server can also be started from this repository:
python -m pip install -r unitypilot~/requirements.txt
python unitypilot~/run_upilot_mcp.py --transport http --http-port 8011 --port 8765Configure MCP clients to use:
{
"servers": {
"upilot": {
"type": "http",
"url": "http://127.0.0.1:8011/mcp"
}
}
}The legacy launcher remains available for compatibility:
python unitypilot~/run_unitypilot_mcp.py --transport http --http-port 8011 --port 8765UIFlow Add-On
UIFlow automates Unity Editor EditorWindow UI with YAML test cases. It is not a Game View or Play Mode runtime UI test framework.
Supported capabilities:
UIToolkit selection with
#name,.class, type names, and[data-role=value]style selectors.Pointer actions: click, double click, hover, drag, scroll, context menu, popup menu.
Keyboard and input actions: focus, key press, text input, fast text assignment.
Field and collection actions: set values, select options, sliders, tabs, lists, trees, tables, split views, breadcrumbs.
Assertions and waits: visible, not visible, text, value, enabled state, property, element wait.
Screenshots and Markdown/JSON reports.
Selected IMGUI workflows through
imgui_*actions.Headed Test Runner for local visual debugging and MCP-driven runs for agent validation.
Enable UIFlow with this scripting define symbol:
UNITYPILOT_ENABLE_UIFLOWThen open:
upilot/UIFlow/Test RunnerMinimal YAML example:
fixture:
host_window: ExampleBasicLoginWindow
steps:
- type_text_fast:
selector: "#username-input"
text: "admin"
- type_text_fast:
selector: "#password-input"
text: "password"
- click:
selector: "#login-button"
- assert_text:
selector: "#status-label"
text: "Login successful"Complex UIFlow usage, action details, selector rules, page authoring conventions, and automation limits are documented separately:
Documentation~/UIFlow.mdDocumentation~/UIFlow.zh-CN.mdDocumentation~/00-API速查与最佳实践.mdDocumentation~/00-UIToolkit控件自动化覆盖与限制说明.mdDocumentation~/00-IMGUI控件自动化覆盖与限制说明.md
Compatibility Aliases
During the rename, some internal C# namespaces, assembly names, Python module names, and legacy MCP tool aliases still contain UnityPilot, unitypilot, or UnityUIFlow.
These remain intentionally for source and script compatibility while the public package, menu, panel, and MCP server identity move to upilot.
Documentation
Chinese README:
README.zh-CN.mdupilot MCP server details:
unitypilot~/README.mdUIFlow guide:
Documentation~/UIFlow.mdUIFlow Chinese guide:
Documentation~/UIFlow.zh-CN.mdAgent/MCP execution rules:
Documentation~/03-UnityUIFlow-Agent-MCP测试强制规范.md
License
See LICENSE for the main project terms. Embedded third-party components keep their original licenses.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/codingriver/upilot'
If you have feedback or need assistance with the MCP directory API, please join our Discord server