Niagara VFX: systems, emitters, spawning, parameters, and graph authoring. Actions: - list: List Niagara assets. Params: directory?, recursive? - get_info: Inspect system. Params: assetPath - spawn: Spawn VFX. Params: systemPath, location, rotation?, label? - set_parameter: Set parameter. Params...
Accepts file system path (directory); High parameter count (37 properties)
Part of the Ue MCP server. Enforce policies on this tool with Intercept, the open-source MCP proxy.
AI agents may call niagara to permanently remove or destroy resources in Ue. Without a policy, an autonomous agent could delete critical data in a loop with no way to undo the damage. Intercept blocks destructive tools by default and requires explicit human approval before enabling them.
Without a policy, an AI agent could call niagara in a loop, permanently destroying resources in Ue. There is no undo for destructive operations. Intercept blocks this tool by default and only allows it when a human explicitly approves the action.
Destructive tools permanently remove data. Block by default. Only enable with explicit approval workflows.
tools:
niagara:
rules:
- action: deny
reason: "Blocked by default — enable with approval" See the full Ue policy for all 20 tools.
Agents calling destructive-class tools like niagara have been implicated in these attack patterns. Read the full case and prevention policy for each:
Other tools in the Destructive risk category across the catalogue. The same policy patterns (deny, require_approval) apply to each.
niagara is one of the critical-risk operations in Ue. For the full severity-focused view — only the critical-risk tools with their recommended policies — see the breakdown for this server, or browse all critical-risk tools across every MCP server.
Niagara VFX: systems, emitters, spawning, parameters, and graph authoring. Actions: - list: List Niagara assets. Params: directory?, recursive? - get_info: Inspect system. Params: assetPath - spawn: Spawn VFX. Params: systemPath, location, rotation?, label? - set_parameter: Set parameter. Params: actorLabel, parameterName, value, parameterType? - create: Create system. Params: name, packagePath? - create_emitter: Create Niagara emitter. Params: name, packagePath?, templatePath? - add_emitter: Add emitter to system. Params: systemPath, emitterPath - list_emitters: List emitters in system. Params: systemPath - set_emitter_property: Set emitter property. Params: systemPath, emitterName?, propertyName, value - list_modules: List Niagara modules. Params: directory? - get_emitter_info: Inspect emitter. Params: assetPath - list_renderers: List renderers on an emitter. Params: systemPath, emitterName?, emitterIndex? - add_renderer: Add renderer (sprite/mesh/ribbon or full class). Params: systemPath, rendererType, emitterName?, emitterIndex? - remove_renderer: Remove renderer by index. Params: systemPath, rendererIndex, emitterName?, emitterIndex? - set_renderer_property: Set renderer bool/number/string property. Params: systemPath, rendererIndex, propertyName, value, emitterName?, emitterIndex? - inspect_data_interfaces: List user-scope data interfaces. Params: systemPath - create_system_from_spec: Declaratively create a system + emitters. Params: name, packagePath?, emitters?:[{path}] - get_compiled_hlsl: Read GPU compute script info for an emitter. Params: systemPath, emitterName?, emitterIndex? - list_system_parameters: List user-exposed system parameters. Params: systemPath - list_module_inputs: List modules + their input pins for an emitter. Params: systemPath, emitterName?, emitterIndex?, stackContext? (ParticleSpawn|ParticleUpdate|EmitterSpawn|EmitterUpdate|all — default all) - set_module_input: Set literal default on a module input pin. Params: systemPath, moduleName, inputName, value, emitterName?, emitterIndex?, stackContext? - list_static_switches: List static switch inputs on a module. Params: systemPath, moduleName, emitterName?, emitterIndex?, stackContext? - set_static_switch: Set static switch value on a module's function call node. Params: systemPath, moduleName, switchName, value, emitterName?, emitterIndex?, stackContext? - create_module_from_hlsl: Create a NiagaraScript module backed by a custom HLSL node. Params: name, hlsl, packagePath?, inputs?:[{name,type}], outputs?:[{name,type}] - batch: Run a sequence of niagara operations against the bridge in order. Fails fast on the first error (returns results up to that point + error). Params: ops:[{action, params}] where action is any niagara subaction listed above.. It is categorised as a Destructive tool in the Ue MCP Server, which means it can permanently delete or destroy data. Block by default and require explicit approval.
Add a rule in your Intercept YAML policy under the tools section for niagara. You can allow, deny, rate-limit, or validate arguments. Then run Intercept as a proxy in front of the Ue MCP server.
niagara is a Destructive tool with critical risk. Critical-risk tools should be blocked by default and only enabled with explicit human approval.
Yes. Add a rate_limit block to the niagara rule in your Intercept policy. For example, setting max: 10 and window: 60 limits the tool to 10 calls per minute. Rate limits are tracked per agent session and reset automatically.
Set action: deny in the Intercept policy for niagara. The AI agent will receive a policy violation error and cannot call the tool. You can also include a reason field to explain why the tool is blocked.
niagara is provided by the Ue MCP server (ue-mcp). Intercept sits as a proxy in front of this server to enforce policies before tool calls reach the server.
Open source. One binary. Zero dependencies.
npx -y @policylayer/intercept