UnrealMotionGraphicsMCP
π UE5-UMG-MCP: A deep-focused MCP for Unreal Engine UMG layout. Designed to maximize AI efficiency within limited context windows by prioritizing precision in UI structure, animations, and blueprint integration.
Install / Use
/learn @winyunq/UnrealMotionGraphicsMCPQuality Score
Category
Development & EngineeringSupported Platforms
README
UE5-UMG-MCP π€π
A Version-Controlled AI-Assisted UMG Workflow
Demo Recreating the UE5 editor
Demo Recreating the UE5 editor in UMG editor
Chat with Gemini 3 to editor the UMG file
ποΈ Looking for an easier Setup? Try the Fab Version!
If you find manual plugin configuration and MCP environment setup too cumbersome, check out our commercial version on Fab: UMG MCP on Fab Marketplace
Differences between Fab and Open Source versions:
- Out-of-the-Box: The Fab version installs directly via the Unreal Engine launcher, eliminating the need for manual cloning and Python environment setup.
- Context Compression: The Fab version includes advanced context management, automatically filtering redundant MCP history to maximize available tokens for the AI.
- Commercial Focus: While the Open Source version is our protocol testbed, the Fab version is optimized for production business logic. Commercial users receive prioritized support for their specific integration challenges.
- Maintained Parity: We remain committed to open source; all core logic improvements will continue to be synced to this GitHub repository.
π Quick Start
This guide covers the two-step process to install the UmgMcp plugin and connect it to your Gemini CLI.
- Prerequisite: Unreal Engine 5.6 or newer.
1. Install the Plugin
-
Navigate to your project's Plugins folder:
YourProject/Plugins/(create it if it doesn't exist). -
Clone the repository directly into this directory:
git clone https://github.com/winyunq/UnrealMotionGraphicsMCP.git UmgMcp -
Restart the Unreal Editor. This allows the engine to detect and compile the new plugin.
2. Connect the Gemini CLI
Tell Gemini how to find and launch the MCP server.
-
Edit your
settings.jsonfile (usually located atC:\Users\YourUsername\.gemini\). -
Add the tool definition to the
mcpServersobject."mcpServers": { "UmgMcp": { "command": "uv", "args": [ "run", "--directory", "D:\\Path\\To\\YourUnrealProject\\Plugins\\UmgMcp\\Resources\\Python", "UmgMcpServer.py" ] } }IMPORTANT: You must replace the path with the correct absolute path to the
Resources/Pythonfolder from the cloned repository on your machine.
That's it! When you start the Gemini CLI, it will automatically launch the MCP server in the background.
Testing the Connection
After restarting your Gemini CLI and opening your Unreal project, you can test the connection by calling any tool function:
cd Resources/Python/APITest
python UE5_Editor_Imitation.py
Python Environment (Optional)
The plugin's Python environment is managed by uv. In most cases, it should work automatically. If you encounter issues related to Python dependencies (e.g., uv command not found or module import errors), you can manually set up the environment:
- Navigate to the directory:
cd YourUnrealProject/Plugins/UmgMcp/Resources/Python - Run the setup:
uv venv .\.venv\Scripts\activate uv pip install -e .
π§ͺ Experimental: Gemini CLI Skill Support
We are experimenting with the Gemini CLI Skill system as an alternative to the standard MCP approach.
The Skill architecture allows the Python tools to be loaded directly by the CLI runtime, potentially optimizing context usage by dynamically enabling/disabling tools via prompts.json and avoiding the overhead of managing a separate MCP server process.
Note: The MCP server (configured above) is still the stable and recommended way to use this plugin. Use Skill mode if you want to test the latest integration capabilities.
Configuration (Skill Mode)
To enable Skill mode, add the following to your settings.json (replacing <YOUR_PROJECT_PATH>):
"skills": {
"unreal_umg": {
"path": "<YOUR_PROJECT_PATH>/Plugins/UmgMcp/Resources/Python/UmgMcpSkills.py",
"type": "local",
"description": "Direct control of Unreal Engine UMG via Python Skills. Auto-loads tools from prompts.json."
}
},
English
This project provides a powerful, command-line driven workflow for managing Unreal Engine's UMG UI assets. By treating human-readable .json files as the sole Source of Truth, it fundamentally solves the challenge of versioning binary .uasset files in Git.
Inspired by tools like blender-mcp, this system allows developers, UI designers, and AI assistants to interact with UMG assets programmatically, enabling true Git collaboration, automated UI generation, and iteration.
Prompt Manager
A visual web tool for configuring system instructions, tool descriptions, and user prompt templates.
Features
- System Instruction Editor: Modify the global instructions for the AI context.
- Tool Management:
- Enable/Disable: Toggle specific MCP tools on or off. Disabled tools are not registered with the MCP server, effectively compressing the context window to prevent AI distraction.
- Edit Descriptions: Customize tool descriptions (prompts) to better suit your workflow.
- User Templates (Prompts): Add reusable prompt templates for quick access by the MCP client.
How to Run
Execute the following command in your Python environment:
python Resources/Python/PromptManager/server.py
The browser will automatically open http://localhost:8085γ
Usage Tips
Prompts are crucial for AI tool effectiveness. Use the Prompt Manager to tailor the AI's behavior:
- One-Click Deployment Mode: If you want the AI to focus solely on generating UI from design, disable all tools except
apply_layoutandexport_umg_to_json. - Tutor Mode: If you want the AI to guide you without making changes, keep only read-only tools (e.g.,
get_widget_tree,get_widget_schema). - Context Optimization: For models with smaller context windows, disable tools you aren't currently using to improve speed and accuracy.
Contributions of effective prompt configurations are welcome!
AI Authorship & Disclaimer
This project has been developed with significant assistance from Gemini, an AI. As such:
- Experimental Nature: This is an experimental project. Its reliability is not guaranteed.
- Commercial Use: Commercial use is not recommended without thorough independent validation and understanding of its limitations.
- Disclaimer: Use at your own risk. The developers and AI are not responsible for any consequences arising from its use.
Current Technical Architecture Overview
The system now primarily relies on the UE5_UMG_MCP plugin for communication between external clients (like this CLI) and the Unreal Engine Editor.
Architecture Diagram:
flowchart LR
subgraph "Local Execution Environment"
CLI["Gemini CLI"] --"StdIO (JSON-RPC)"--> PY["Python (UmgMcpServer.py)"]
end
subgraph "Unreal Engine 5"
PY --"TCP Socket (JSON)"--> TCP["UmgMcpBridge (C++)"]
TCP --> API["Unreal API / UMG"]
end
API Status
| Category | API Name | Status |
| --------------------------- | -------------------------------- | :----: |
| Context & Attention | get_target_umg_asset | β
|
| | set_target_umg_asset | β
|
| | get_last_edited_umg_asset | β
|
| | get_recently_edited_umg_assets | β
|
| Sensing & Querying | get_widget_tree | β
|
| | query_widget_properties | β
|
| | get_creatable_widget_types | β
|
| | get_widget_schema | β
|
| | get_layout_data | β
|
| | check_widget_overlap | β
|
| Actions & Modifications | create_widget | β
|
| | delete_widget | β
|
| | set_widget_properties | β
|
| | reparent_widget | β
|
| | save_asset | β
|
| File Transformation | export_umg_to_json | β
|
| | apply_json_to_umg | β
|
| | apply_layout | β
|
UMG Blueprint API Status (New)
| Category | API Name | Status | Description |
| --------------------------- | ------------------------- | :----: | ------------------------------------------------------------------------------------------------ |
| Context & Attention | set_edit_function | β
| Set the current edit context (Function/Event). Supports auto-creating Custom Events. |
| | set_cursor_node | β
| Explicitly set the "Cursor" node (Program Counter). |
| **Sensing
Related Skills
apple-reminders
345.4kManage Apple Reminders via remindctl CLI (list, add, edit, complete, delete). Supports lists, date filters, and JSON/plain output.
gh-issues
345.4kFetch GitHub issues, spawn sub-agents to implement fixes and open PRs, then monitor and address PR review comments. Usage: /gh-issues [owner/repo] [--label bug] [--limit 5] [--milestone v1.0] [--assignee @me] [--fork user/repo] [--watch] [--interval 5] [--reviews-only] [--cron] [--dry-run] [--model glm-5] [--notify-channel -1002381931352]
healthcheck
345.4kHost security hardening and risk-tolerance configuration for OpenClaw deployments
imsg
345.4kiMessage/SMS CLI for listing chats, history, and sending messages via Messages.app.
