upilot
Unity Editor automation bridge for AI agents and MCP clients, enabling inspection, control, and diagnostics of the Editor.
README
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+.
Compatibility
| Capability | Requirement | Notes |
|---|---|---|
| upilot core bridge | Unity 2022.3 or newer |
Compiled by default. |
| upilot MCP server | Python 3.11 or newer |
Bundled under unitypilot~/ during the rename. |
| UIFlow YAML automation | Unity 6000.0 or newer |
Requires UNITYPILOT_ENABLE_UIFLOW. |
| Current validation project | Unity 6000.6.0a2 |
See Tests~/UnityUIFlowTest. |
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.0
Or 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/upilot
The 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 8765
Configure 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 8765
UIFlow 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_UIFLOW
Then open:
upilot/UIFlow/Test Runner
Minimal 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.md - upilot MCP server details:
unitypilot~/README.md - UIFlow guide:
Documentation~/UIFlow.md - UIFlow Chinese guide:
Documentation~/UIFlow.zh-CN.md - Agent/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.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.