brainstorming
brainstorming
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or planning anything new, in software or out of it (a talk, a business, a renovation).
ue-mcp-workflowUse when driving Unreal Engine editor via the ue-mcp MCP server. Covers the required order of operations (status check first), editor lifecycle, project scoping, and what to do when the bridge says "still initializing". Pulls in automatically any time the user asks to use an Unreal project or references ue-mcp tools.
Independent GitHub snapshot · Automated classification · Original documentation governs
The ue-mcp MCP exposes 26 category tools (action-dispatch style) that drive a live Unreal Engine editor via a C++ bridge plugin. Every tool takes an action parameter.
How a call is spelled depends on the project's context strategy. These skills write level(action="get_outliner", limit=5); send it as:
tools(action="call", category="level", method="get_outliner", args={limit: 5}). tools(action="search") and tools(action="describe") return one-line signatures.level(action="get_outliner", args={limit: 5}). Flat parameters beside action are still accepted.Always call project(action="get_status") before anything else. It tells you:
If status reports not connected / editor not running, call editor(action="start_editor") to launch UE. Wait for the status check to succeed before issuing other calls - handlers that need the editor world will return "Editor is still initializing. Please wait and retry." if you call them too early.
Before writing, read. Common orientation calls:
level(action="get_outliner") - what's in the current levelasset(action="list", directory="/Game/...", recursive=true) - what assets existasset(action="search_fts", query="...") - ranked search across names/classes/paths (after asset(action="reindex_fts") has built the index)reflection(action="reflect_class", className="StaticMeshActor") - inspect any UE classproject(action="list_project_modules") - native C++ modules in the projectFor any write action:
blueprint(action="read", assetPath=...) before add_node).{ success, existed, created, updated, rollback? } - honor existed as "idempotent no-op" and updated as "real change made".ue-mcp.yml).action against an enum; a typo returns Unknown action '<x>'. Available: <list>. Read the Available: list rather than guessing./Game/..., not filesystem paths. Package paths (folder) vs object paths (Folder/Name.Name) matter - most create handlers take packagePath (folder) plus name; most read handlers take assetPath (full object path).execute_python is an escape hatch, not a shortcut - if a native tool exists for the job, use it. When you use execute_python, a hook may prompt you to file a GitHub issue so the native tool gap can be closed.list_* action retries with "still initializing", the editor is still starting - wait a few seconds and retry.If no native action covers your case:
project(action="search_tools", query=...) searches the whole surface by intent, and project(action="describe_action", action="...") gives one action's parameters.reflection(action="list_classes", parentFilter=...) finds the class and reflection(action="reflect_class", className=...) lists what it exposes. A BlueprintCallable function is reachable with editor(action="invoke_object_function").execute_python as a last resort.feedback(action="submit") to open a GitHub issue describing the gap. It checks the plugin registry and files against whichever tracker owns the surface - db-lyon/ue-mcp for core, or the plugin's own repo when the gap is in a plugin-provided category. Run feedback(action="route") first if you want to see where it would land without posting.