Unreal Blueprint Authoring
flopperam/unreal-engine-mcp
Walks an agent through creating and editing Unreal Engine Blueprints with the Flopperam MCP's bp_* tools, from inspection to commit and verification.
Builds and edits Unreal Engine UMG interfaces through the Unreal Motion Graphics MCP, covering widget trees, HLSL materials, Sequencer animations and readback checks.
$ npx skills add winyunq/UnrealMotionGraphicsMCP --skill umg-mcp-authoring -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install winyunq/UnrealMotionGraphicsMCP umg-mcp-authoring --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/winyunq/UnrealMotionGraphicsMCP.git skills-src && mkdir -p .claude/skills && cp -r skills-src/Skills/umg-mcp-authoring .claude/skills/umg-mcp-authoring && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "umg-mcp-authoring" agent skill from https://github.com/winyunq/UnrealMotionGraphicsMCP/tree/main/Skills/umg-mcp-authoring into .claude/skills/umg-mcp-authoring/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "umg-mcp-authoring", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/winyunq/UnrealMotionGraphicsMCP/tree/main/Skills/umg-mcp-authoringType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add winyunq/UnrealMotionGraphicsMCP --skill umg-mcp-authoring -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install winyunq/UnrealMotionGraphicsMCP umg-mcp-authoring --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/winyunq/UnrealMotionGraphicsMCP.git skills-src && mkdir -p .agents/skills && cp -r skills-src/Skills/umg-mcp-authoring .agents/skills/umg-mcp-authoring && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "umg-mcp-authoring" agent skill from https://github.com/winyunq/UnrealMotionGraphicsMCP/tree/main/Skills/umg-mcp-authoring into .agents/skills/umg-mcp-authoring/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "umg-mcp-authoring", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add winyunq/UnrealMotionGraphicsMCP --skill umg-mcp-authoring -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install winyunq/UnrealMotionGraphicsMCP umg-mcp-authoring --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/winyunq/UnrealMotionGraphicsMCP.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/Skills/umg-mcp-authoring .cursor/skills/umg-mcp-authoring && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "umg-mcp-authoring" agent skill from https://github.com/winyunq/UnrealMotionGraphicsMCP/tree/main/Skills/umg-mcp-authoring into .cursor/skills/umg-mcp-authoring/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "umg-mcp-authoring", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/winyunq/UnrealMotionGraphicsMCP.git --path Skills/umg-mcp-authoring--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add winyunq/UnrealMotionGraphicsMCP --skill umg-mcp-authoring -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install winyunq/UnrealMotionGraphicsMCP umg-mcp-authoring --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/winyunq/UnrealMotionGraphicsMCP.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/Skills/umg-mcp-authoring .gemini/skills/umg-mcp-authoring && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "umg-mcp-authoring" agent skill from https://github.com/winyunq/UnrealMotionGraphicsMCP/tree/main/Skills/umg-mcp-authoring into .gemini/skills/umg-mcp-authoring/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "umg-mcp-authoring", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install winyunq/UnrealMotionGraphicsMCP umg-mcp-authoringInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add winyunq/UnrealMotionGraphicsMCP --skill umg-mcp-authoring -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/winyunq/UnrealMotionGraphicsMCP.git skills-src && mkdir -p .github/skills && cp -r skills-src/Skills/umg-mcp-authoring .github/skills/umg-mcp-authoring && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "umg-mcp-authoring" agent skill from https://github.com/winyunq/UnrealMotionGraphicsMCP/tree/main/Skills/umg-mcp-authoring into .github/skills/umg-mcp-authoring/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "umg-mcp-authoring", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add winyunq/UnrealMotionGraphicsMCP --skill umg-mcp-authoring -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install winyunq/UnrealMotionGraphicsMCP umg-mcp-authoring --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/winyunq/UnrealMotionGraphicsMCP.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/Skills/umg-mcp-authoring .opencode/skills/umg-mcp-authoring && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "umg-mcp-authoring" agent skill from https://github.com/winyunq/UnrealMotionGraphicsMCP/tree/main/Skills/umg-mcp-authoring into .opencode/skills/umg-mcp-authoring/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "umg-mcp-authoring", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
umg-mcp-authoringBuilds and edits Unreal Engine UMG interfaces through the Unreal Motion Graphics MCP, covering widget trees, HLSL materials, Sequencer animations and readback checks.
This skill teaches an agent to build and edit Unreal Engine 5.8 UMG interfaces through the Unreal Motion Graphics MCP server, using its tools instead of editing .uasset files directly or bypassing MCP with raw socket scripts. Work starts by setting the target asset with set_target_umg_asset, which creates a WidgetBlueprint when given a missing /Game path, while set_target_widget is used only for operations meant to be scoped to one widget.
Widget trees are built from panel parents such as CanvasPanel, Overlay, VerticalBox and HorizontalBox; children cannot go directly under a Button or Border, so text on a button is added through an Overlay with siblings. Properties are written as union updates that leave unspecified values alone, delete_widget needs explicit confirmation, and apply_layout is preferred for bulk layout. Visual richness comes from HLSL-backed UI materials, and widget animations are authored through Sequencer tracks and checked with overview calls rather than trusting write responses. A reference covers a login demo.
7 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit a0494ef. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
pythonFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
UMG MCP Authoring loads about 2.6k tokens when it runs, and up to ~3.3k if it reads all its reference files. Until then it costs about 86 tokens; SKILL.md has 1,112 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from winyunq/UnrealMotionGraphicsMCP at commit a0494ef, republished under its MIT licence (© winyunq). 1,112 words, ~2,585 tokens.
.claude/skills/umg-mcp-authoring/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.Use MCP tools as the hands and this skill as the experience. Do not mutate .uasset files directly and do not bypass MCP with raw socket scripts when validating the public protocol.
For the five-system login demo and concrete script workflow, read login-demo.md.
Set the attention target first with set_target_umg_asset.
/Game/... UMG path creates a WidgetBlueprint.set_target_widget only when the next operation is intentionally scoped to a widget.Build widget structure with panel parents.
CanvasPanel, Overlay, VerticalBox, and HorizontalBox are reliable authoring parents.create_widget attaches children through UPanelWidget; do not create children directly under Button or Border.Overlay and add the visual widget plus the text as siblings.Write properties as union updates.
set_widget_properties should set or overwrite supplied properties and leave unspecified properties intact.Slot.Position and Slot.Size aliases for CanvasPanel children when possible.Slot objects for panel-slot alignment and padding.delete_widget only for explicit deletion and pass confirm_delete=true.apply_layout for bulk layout authoring; export_umg_to_json and apply_json_to_umg are hidden compatibility/debug paths.Use HLSL materials for UI visual richness.
hlsl_set_target, hlsl_set, and hlsl_compile.umg-material-mcp skill.Animate widgets through Sequencer.
create_animation and set_animation_scope.set_target_widget or set_widget_scope.animation_append_widget_tracks for widget-oriented union key writes.animation_append_time_slice when authoring a single moment across one or more widgets.animation_overview or animation_time_properties; do not trust write responses alone.get_animation_keyframes, get_animation_full_data, set_property_keys, remove_property_track, and remove_keys as hidden compatibility commands, not default authoring tools.Wire Blueprint through BlueCode.
bluecode_set_function("WidgetName.EventName") for component event scope.bluecode_read_function(detail="semantic") is the attention-compressed comprehension view and intentionally omits node/pin sidecars. Before editing an existing graph, re-read with detail="roundtrip"; use detail="debug" or include_connections=true only when raw nodes, pins, or edges are actually needed.base_revision, source_map, action_hints, expression_hints, and action_hints_by_line from the round-trip read and pass them back to bluecode_apply. A stale base_revision must fail instead of rematching changed graph state.node_id cause bluecode_apply to update the existing node's supplied input pins/defaults instead of appending a duplicate node, including variable-set and Branch nodes; Pin=A+B and Pin=value("Select", ...) can create data expression nodes for that existing pin. Unmentioned pins and links are preserved.connections via detail="debug" or include_connections=true; use each entry's connect as a bluecode_connect reference and delete_target as a bluecode_delete(..., confirm_delete=true) target.bluecode_apply(mode="union") and bluecode_apply_variables; use dry_run=true when the insertion plan should be inspected first. Union mode aligns semantic statements, inserts unmatched statements before the next matched right anchor, otherwise appends at the block end, and never deletes omitted graph content. Use FunctionName(Pin=value, ...) for normal calls, node("Action Menu Name", Pin=value, ...) for generic exec/action nodes, and value("Action Menu Name", Pin=value, ...) for pure/data nodes.Pin=value and bluecode_connect endpoints may use internal pin names, editor display names, or FriendlyName. When omitting an endpoint pin, rely on automatic resolution only if the node has one matching data input/output.{path:"/Game/..."}, {class:"/Script/..."}, {object:"..."}, {text:"..."}, or {literal:"(X=0,Y=0)"}. Check input_warnings after writes.Pin=value("Select", Index=ActiveIndex), Pin=PureFunction(A, B), or Pin=A + B. These create pure/data nodes and connect their compatible output.expression_hints={"My Custom Pure": {...}} for Pin=value("My Custom Pure", Input=A). Readback returns these dependency hints in expression_hints, mirrors them into action_hints, and bluecode_apply accepts either object directly.node_properties to bluecode_apply using the same statement/name keys as action_hints, or put node_properties/properties inside the matching hint object. Treat operations[].result.node_properties.failures as a failed semantic write.input_warnings.value("Make Array", 0=First, 1=Second, 2=Third) or multi-input math nodes. Array-style pins accept either [0] or 0.Format Text is preconfigured from its Format pin before the rest of the inputs are applied, so value("Format Text", Format="Hello {Name}", Name=PlayerName) can generate the Name argument pin.input_warnings as write feedback that must be read and handled; warnings mean part of the requested semantic write did not map cleanly.alias=Name inside bluecode_apply statements, or pass node_aliases, when newly created nodes must be referenced later. Pass the returned aliases map into bluecode_connect and use Name:Pin endpoints.bluecode_apply.operations[].result as immediate context for the next operation: it returns nodeId/node_id, node title/class, is_exec, pin_counts, and inputs/outputs pin evidence using the same endpoint format as readback hints.bluecode_connect only when a complex custom, plugin, or macro node needs explicit pin links that cannot be inferred from bluecode_apply inputs. Treat it as union-only connection append, not as a reconnect/delete tool.bluecode_search_nodes first and pass its returned handle as an action_handle, or place the returned search result object directly in bluecode_apply.action_hints so signature/category/node_class/node_class_path remain available for fallback matching. Use is_exec to choose node(...) versus value(...); use include_pins=true only when pin_counts is not enough.bluecode_delete(..., confirm_delete=true). For connection deletes, use {"kind":"connection","source":"NodeA:Then","target":"NodeB:Execute"} or "NodeA:Then -> NodeB:Execute"; if a node pair has multiple links, provide the exact pin names instead of guessing.add_step, prepare_value, connect_data_to_pin, get_function_nodes, delete_node, and delete_variable as backend compatibility tools, not default authoring tools.Validate with read operations.
get_widget_tree after structure writes.query_widget_properties for precise property checks.export_umg_to_json only when that advanced tool is enabled and a full file snapshot is needed.save_asset only after the target has passed focused readback checks.Treat BlueCode as the default Blueprint MCP direction. The target is semantic/code-like Blueprint read/write, not raw node dumps. Node-level reads should be compressed into intent such as events, variables, calls, branches, bindings, and data dependencies.
Useful reference directions:
python -m py_compile Resources\Python\UmgMcpServer.py Resources\Python\APITest\Login_Demo_Five_Systems.py Resources\Python\APITest\Umg_Widget_Protocol_Static_Check.py Resources\Python\APITest\Blueprint_Protocol_Static_Check.py Resources\Python\APITest\Animation_Protocol_Static_Check.py Resources\Python\APITest\Sequencer_RenderTransform_Check.py
python Resources\Python\APITest\Umg_Widget_Protocol_Static_Check.py
python Resources\Python\APITest\Blueprint_Protocol_Static_Check.py
python Resources\Python\APITest\Animation_Protocol_Static_Check.py
python Resources\Python\APITest\Material_Protocol_Static_Check.py
python Resources\Python\APITest\Sequencer_RenderTransform_Check.py
python Resources\Python\APITest\Login_Demo_Five_Systems.pyThe runtime demo requires Unreal Editor to be open with the UMG MCP bridge listening on the configured host and port.
© winyunq, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 2 other files (references) in Skills/umg-mcp-authoring of winyunq/UnrealMotionGraphicsMCP.
Open the folder on GitHubat commit a0494ef
UMG MCP Authoring next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| UMG MCP Authoring this skillwinyunq/UnrealMotionGraphicsMCP | 210 | — | ~2.6k | Automated safety check: Pass | MIT | |
| Unreal Blueprint Authoringflopperam/unreal-engine-mcp | 1.1k | — | ~1.6k | Automated safety check: Pass | None | |
| Unreal Engine MCPEpicGames/unreal-engine-skills-for-claude-code-plugin | 338 | — | ~1.8k | Automated safety check: Pass | MIT | |
| Unreal Scene Buildingflopperam/unreal-engine-mcp | 1.1k | — | ~1.4k | Automated safety check: Pass | None | |
| Unreal Engine MCP Overviewflopperam/unreal-engine-mcp | 1.1k | — | ~1.7k | Automated safety check: Pass | None | |
| Vibeuekevinpbuckley/VibeUE | 730 | — | ~5.2k | Automated safety check: Pass | MIT |
flopperam/unreal-engine-mcp
Walks an agent through creating and editing Unreal Engine Blueprints with the Flopperam MCP's bp_* tools, from inspection to commit and verification.
EpicGames/unreal-engine-skills-for-claude-code-plugin
Drives a live Unreal Editor through the unreal-mcp server: spawn actors, edit Blueprints, materials and sequences, change properties and trigger Live Coding.
flopperam/unreal-engine-mcp
Guides scene and world building in Unreal Engine through the Flopperam MCP: placing actors, sculpting landscapes, scattering foliage, editing materials and verifying the level.
flopperam/unreal-engine-mcp
Maps the tools of the Flopperam Unreal Engine MCP server and how to choose among them when working with a live Unreal Editor.
kevinpbuckley/VibeUE
Unreal Engine 5 development using the VibeUE Python API. An agent skill from kevinpbuckley/VibeUE.
Luciole-Studio/Misaka-Agent
Automate Unreal Engine editor scenes, actors, and renders. An agent skill from Luciole-Studio/Misaka-Agent.
winyunq/UnrealMotionGraphicsMCP
Creates, edits and compiles Unreal Engine 5.8 material assets as one HLSL Custom node through the UMG MCP bridge, instead of editing .uasset files directly.
Works with
Categories
Builds and edits Unreal Engine UMG interfaces through the Unreal Motion Graphics MCP, covering widget trees, HLSL materials, Sequencer animations and readback checks. uasset files directly or bypassing MCP with raw socket scripts. Work starts by setting the target asset with set_target_umg_asset, which creates a WidgetBlueprint when given a missing /Game path, while set_target_widget is used only for operations meant to be scoped to one widget.
UMG MCP Authoring fits situations like: creating a new widget blueprint and laying out its widget tree; writing widget properties and bulk layouts through MCP tools; adding HLSL-backed materials to UI; animating widgets with Sequencer and verifying by readback.
Run `npx skills add winyunq/UnrealMotionGraphicsMCP --skill umg-mcp-authoring -a claude-code`. Or copy the skill folder (Skills/umg-mcp-authoring in winyunq/UnrealMotionGraphicsMCP) into .claude/skills/umg-mcp-authoring in your project. Claude Code loads it when a task matches its description.
Run `npx skills add winyunq/UnrealMotionGraphicsMCP --skill umg-mcp-authoring -a codex`. Or copy the skill folder (Skills/umg-mcp-authoring in winyunq/UnrealMotionGraphicsMCP) into .agents/skills/umg-mcp-authoring in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add winyunq/UnrealMotionGraphicsMCP --skill umg-mcp-authoring -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/umg-mcp-authoring, .gemini/skills/umg-mcp-authoring, .github/skills/umg-mcp-authoring and .opencode/skills/umg-mcp-authoring in your project.
Going by SKILL.md and its folder, UMG MCP Authoring needs the command-line tools its instructions call (python). Our summary lists: Unreal Engine 5.8 with the Unreal Motion Graphics MCP (FabUmgMcp) running.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
UMG MCP Authoring is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.6k tokens (SKILL.md is roughly 10k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 736 tokens, read only when the agent opens those files.
Skills that share tags, products or a category with UMG MCP Authoring: Unreal Blueprint Authoring (flopperam/unreal-engine-mcp, 1.1k stars), Unreal Engine MCP (EpicGames/unreal-engine-skills-for-claude-code-plugin, 338 stars), Unreal Scene Building (flopperam/unreal-engine-mcp, 1.1k stars) and Unreal Engine MCP Overview (flopperam/unreal-engine-mcp, 1.1k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
winyunq (a GitHub user) maintains it in winyunq/UnrealMotionGraphicsMCP, which has 210 GitHub stars. The repository holds 2 skills in this directory. The repository was last updated on August 2, 2026.
Source: winyunq/UnrealMotionGraphicsMCP on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.