VFX — Niagara
23 tools — 0 typed MCP · 23 via cu CLI.
- Niagara — Systems & Emitters — 15 tools
- Niagara — Parameters & Module Inputs — 8 tools
Niagara — Systems & Emitters
Section titled “Niagara — Systems & Emitters”create_niagara_system CLI
Section titled “create_niagara_system ”Create Niagara particle systems for VFX
@mcp.tool()@showcase( "Create Niagara particle systems for VFX", featured=True,)def create_niagara_system( ctx: Context, name: str, path: str = None, template: str = None,) -> ToolResult: """[Niagara] Create a new Niagara System asset.
Anti-patterns: - Do not pass a ``path`` that fails ``IsValidLongPackageName`` (engine paths, malformed slashes, etc.) — handler returns "Invalid package path: <path>". - Do not pass a ``template`` that doesn't resolve to a ``UNiagaraSystem`` — handler returns "Template Niagara System not found". - Do not call without the **Niagara** plugin enabled — the ``UNiagaraSystem`` class lookups fail and the system is not created.
Args: ctx: The MCP context name: Asset name for the Niagara System (e.g. "NS_Fire") path: Content path (default "/Game/FX") template: Optional path to an existing Niagara System to clone from (e.g. "/Game/FX/NS_Template") """ from claude_unreal_server import get_unreal_connection
try: unreal = get_unreal_connection() if not unreal: logger.warning("Failed to connect to Unreal Engine") return err("Failed to create Niagara System: no response from Unreal Engine")
params = {"name": name} if path is not None: params["path"] = path if template is not None: params["template"] = template
response = unreal.send_command("create_niagara_system", params) if not response: return err("Failed to create Niagara System: no response from Unreal Engine")
if response.get("status") == "error": return err("Failed to create Niagara System", error=response.get("error", "Unknown error"))
result = response.get("result", response) return ok( f"Created Niagara System '{name}' at {result.get('path', path or '/Game/FX')}", name=result.get("name", name), path=result.get("path", ""), num_emitters=result.get("num_emitters", 0), ) except Exception as e: logger.error(f"Error creating Niagara System: {e}") return err("Failed to create Niagara System", error=str(e))