Raw scan report

Unrealmcp — the complete, unedited output of the deterministic mcptrustchecker engine v1.9.0, scanned . Every finding, capability tag and score component below is exactly what the engine produced — no AI, no post-processing.

← Back to the scan page
{
  "tool": {
    "name": "mcptrustchecker",
    "version": "1.9.0",
    "methodologyVersion": "mcptrustchecker-1.9"
  },
  "target": {
    "id": "unrealmcp",
    "source": {
      "kind": "package",
      "origin": "unrealmcp"
    },
    "server": {
      "name": "unrealmcp"
    }
  },
  "grade": "A",
  "score": {
    "score": 93,
    "threatScore": 100,
    "grade": "A",
    "band": "A",
    "categorySubtotals": {
      "injection": 0,
      "exfiltration": 0,
      "permissions": 0,
      "supply-chain": 0,
      "network": 0,
      "hygiene": 0
    },
    "vector": [
      {
        "kind": "client",
        "term": "capability-exposure",
        "level": "high",
        "label": "capability blast radius (high) — client exposure if the model is manipulated",
        "appliedPenalty": 6
      },
      {
        "kind": "client",
        "term": "verification-discount",
        "level": "repo",
        "label": "publisher verification (public source) — no provenance, but the source is public and inspectable",
        "appliedPenalty": 1
      },
      {
        "kind": "client",
        "term": "coverage-honesty",
        "level": "source",
        "label": "inspection depth (source) — how much of the target the scan could see",
        "appliedPenalty": 0
      }
    ],
    "gatesFired": [],
    "methodologyVersion": "mcptrustchecker-1.9"
  },
  "capability": {
    "level": "high",
    "reasons": [
      "can execute shell commands or code"
    ],
    "tags": [
      "code-exec"
    ]
  },
  "coverage": {
    "level": "source",
    "inputs": {
      "toolSurface": true,
      "implementationSource": true,
      "packageMetadata": true,
      "liveTransport": false
    },
    "caveats": [
      "Tools were statically extracted from the published source (200 recovered), not enumerated from a running server. Tool-poisoning, Unicode-smuggling, capability and toxic-flow analysis ran on this inferred surface, but a mis-parsed registration could be missed or mis-attributed, so tool-derived findings are capped below “confirmed”. To grade the real runtime surface, scan the running server: --command \"npx -y <package>\"."
    ]
  },
  "findings": [
    {
      "ruleId": "MTC-CAP-001",
      "title": "Tool \"spawn_actor\" exposes command/code execution",
      "category": "permissions",
      "severity": "high",
      "confidence": "strong",
      "description": "Tool \"spawn_actor\" appears to run shell commands or evaluate code (keyword \"spawn\" in tool name). Arbitrary execution driven by model input is one of the most dangerous MCP capabilities; combined with any untrusted input it becomes RCE.",
      "remediation": "Sandbox execution, allowlist commands/arguments, and never pass model output to a shell unescaped.",
      "location": {
        "kind": "tool",
        "name": "spawn_actor"
      },
      "owasp": "LLM05:2025 Improper Output Handling",
      "data": {
        "tags": [
          "code-exec"
        ]
      }
    },
    {
      "ruleId": "MTC-CAP-001",
      "title": "Tool \"spawn_blueprint_actor\" exposes command/code execution",
      "category": "permissions",
      "severity": "high",
      "confidence": "strong",
      "description": "Tool \"spawn_blueprint_actor\" appears to run shell commands or evaluate code (keyword \"spawn\" in tool name). Arbitrary execution driven by model input is one of the most dangerous MCP capabilities; combined with any untrusted input it becomes RCE.",
      "remediation": "Sandbox execution, allowlist commands/arguments, and never pass model output to a shell unescaped.",
      "location": {
        "kind": "tool",
        "name": "spawn_blueprint_actor"
      },
      "owasp": "LLM05:2025 Improper Output Handling",
      "data": {
        "tags": [
          "code-exec"
        ]
      }
    },
    {
      "ruleId": "MTC-CAP-001",
      "title": "Tool \"spawn_actor_by_class\" exposes command/code execution",
      "category": "permissions",
      "severity": "high",
      "confidence": "strong",
      "description": "Tool \"spawn_actor_by_class\" appears to run shell commands or evaluate code (keyword \"spawn\" in tool name). Arbitrary execution driven by model input is one of the most dangerous MCP capabilities; combined with any untrusted input it becomes RCE.",
      "remediation": "Sandbox execution, allowlist commands/arguments, and never pass model output to a shell unescaped.",
      "location": {
        "kind": "tool",
        "name": "spawn_actor_by_class"
      },
      "owasp": "LLM05:2025 Improper Output Handling",
      "data": {
        "tags": [
          "code-exec"
        ]
      }
    },
    {
      "ruleId": "MTC-CAP-001",
      "title": "Tool \"spawn_niagara_effect\" exposes command/code execution",
      "category": "permissions",
      "severity": "high",
      "confidence": "strong",
      "description": "Tool \"spawn_niagara_effect\" appears to run shell commands or evaluate code (keyword \"spawn\" in tool name). Arbitrary execution driven by model input is one of the most dangerous MCP capabilities; combined with any untrusted input it becomes RCE.",
      "remediation": "Sandbox execution, allowlist commands/arguments, and never pass model output to a shell unescaped.",
      "location": {
        "kind": "tool",
        "name": "spawn_niagara_effect"
      },
      "owasp": "LLM05:2025 Improper Output Handling",
      "data": {
        "tags": [
          "code-exec"
        ]
      }
    },
    {
      "ruleId": "MTC-CAP-005",
      "title": "Mutating tool \"spawn_actor\" declares no destructiveHint",
      "category": "hygiene",
      "severity": "low",
      "confidence": "heuristic",
      "description": "Tool \"spawn_actor\" can mutate/egress but declares no destructiveHint. Clients that don't default to spec-safe behavior may not prompt before running it.",
      "remediation": "Declare accurate annotations, and gate destructive tools on user confirmation regardless.",
      "location": {
        "kind": "tool",
        "name": "spawn_actor"
      },
      "data": {
        "tags": [
          "code-exec"
        ]
      }
    },
    {
      "ruleId": "MTC-CAP-005",
      "title": "Mutating tool \"spawn_blueprint_actor\" declares no destructiveHint",
      "category": "hygiene",
      "severity": "low",
      "confidence": "heuristic",
      "description": "Tool \"spawn_blueprint_actor\" can mutate/egress but declares no destructiveHint. Clients that don't default to spec-safe behavior may not prompt before running it.",
      "remediation": "Declare accurate annotations, and gate destructive tools on user confirmation regardless.",
      "location": {
        "kind": "tool",
        "name": "spawn_blueprint_actor"
      },
      "data": {
        "tags": [
          "code-exec"
        ]
      }
    },
    {
      "ruleId": "MTC-CAP-005",
      "title": "Mutating tool \"spawn_actor_by_class\" declares no destructiveHint",
      "category": "hygiene",
      "severity": "low",
      "confidence": "heuristic",
      "description": "Tool \"spawn_actor_by_class\" can mutate/egress but declares no destructiveHint. Clients that don't default to spec-safe behavior may not prompt before running it.",
      "remediation": "Declare accurate annotations, and gate destructive tools on user confirmation regardless.",
      "location": {
        "kind": "tool",
        "name": "spawn_actor_by_class"
      },
      "data": {
        "tags": [
          "code-exec"
        ]
      }
    },
    {
      "ruleId": "MTC-CAP-005",
      "title": "Mutating tool \"spawn_niagara_effect\" declares no destructiveHint",
      "category": "hygiene",
      "severity": "low",
      "confidence": "heuristic",
      "description": "Tool \"spawn_niagara_effect\" can mutate/egress but declares no destructiveHint. Clients that don't default to spec-safe behavior may not prompt before running it.",
      "remediation": "Declare accurate annotations, and gate destructive tools on user confirmation regardless.",
      "location": {
        "kind": "tool",
        "name": "spawn_niagara_effect"
      },
      "data": {
        "tags": [
          "code-exec"
        ]
      }
    },
    {
      "ruleId": "MTC-SUP-012",
      "title": "Package has no license",
      "category": "hygiene",
      "severity": "info",
      "confidence": "strong",
      "description": "\"unrealmcp\" has no declared license. This is a legal/reuse concern, not a security finding.",
      "location": {
        "kind": "package",
        "name": "unrealmcp"
      }
    }
  ],
  "toxicFlows": [],
  "capabilities": [
    {
      "tool": "find_assets",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "list_assets",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "open_asset",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "get_asset_info",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "get_asset_properties",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "set_asset_property",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "find_references",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "duplicate_asset",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "rename_asset",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "delete_asset",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "save_asset",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "save_all",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "import_asset",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "import_assets_batch",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "get_selected_assets",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "sync_browser",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "add_blueprint_node",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "connect_blueprint_nodes",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "create_blueprint_variable",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "set_blueprint_variable_properties",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "add_event_node",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "delete_blueprint_node",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "set_blueprint_node_property",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "create_blueprint_function",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "add_function_input",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "add_function_output",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "delete_blueprint_function",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "rename_blueprint_function",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "read_blueprint_content",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "analyze_blueprint_graph",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "get_blueprint_variable_details",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "get_blueprint_function_details",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "compile_blueprint",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "search_parent_classes",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "create_blueprint",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "add_component_to_blueprint",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "get_blueprint_class_defaults",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "set_blueprint_class_defaults",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "execute_python",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "health_check",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "list_data_asset_classes",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "create_data_asset",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "get_data_asset_properties",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "set_data_asset_property",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "set_data_asset_properties",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "get_property_valid_types",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "search_class_paths",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "get_mass_config_traits",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "add_mass_config_trait",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "set_mass_config_trait_property",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "remove_mass_config_trait",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "list_data_assets",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "get_data_table_rows",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "get_data_table_row",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "get_data_table_schema",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "add_data_table_row",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "update_data_table_row",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "delete_data_table_row",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "rename_data_table_row",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "duplicate_data_table_row",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "set_mcp_debug",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "get_mcp_token_stats",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "get_actors_in_level",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "find_actors_by_name",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "spawn_actor",
      "tags": [
        "code-exec"
      ],
      "reasons": {
        "code-exec": [
          "keyword \"spawn\" in tool name"
        ]
      }
    },
    {
      "tool": "delete_actor",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "set_actor_transform",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "spawn_blueprint_actor",
      "tags": [
        "code-exec"
      ],
      "reasons": {
        "code-exec": [
          "keyword \"spawn\" in tool name"
        ]
      }
    },
    {
      "tool": "set_static_mesh_properties",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "set_physics_properties",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "set_mesh_material_color",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "get_available_materials",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "apply_material_to_actor",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "apply_material_to_blueprint",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "get_actor_material_info",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "get_blueprint_material_info",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "take_screenshot",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "create_input_action",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "get_input_action",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "set_input_action_properties",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "add_input_action_trigger",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "add_input_action_modifier",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "remove_input_action_trigger",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "remove_input_action_modifier",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "list_input_actions",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "create_input_mapping_context",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "get_input_mapping_context",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "add_key_mapping",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "remove_key_mapping",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "set_key_mapping",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "add_mapping_trigger",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "add_mapping_modifier",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "remove_mapping_trigger",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "remove_mapping_modifier",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "list_input_mapping_contexts",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "list_trigger_types",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "list_modifier_types",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "list_input_keys",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "get_selected_actors",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "get_world_info",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "get_actor_properties",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "set_actor_property",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "get_actor_property_metadata",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "spawn_actor_by_class",
      "tags": [
        "code-exec"
      ],
      "reasons": {
        "code-exec": [
          "keyword \"spawn\" in tool name"
        ]
      }
    },
    {
      "tool": "find_actors",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "create_material",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "create_material_instance",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "build_material_graph",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "get_material_info",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "recompile_material",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "get_material_errors",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "set_material_properties",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "get_material_graph_nodes",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "add_material_expression",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "connect_material_expressions",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "delete_material_expression",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "add_material_comments",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "get_material_expression_info",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "get_material_property_connections",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "set_material_expression_property",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "move_material_expression",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "duplicate_material_expression",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "layout_material_expressions",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "get_material_instance_parameters",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "set_material_instance_parameter",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "list_material_expression_types",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "get_expression_type_info",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "get_available_material_pins",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "disconnect_material_expression",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "search_material_functions",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "validate_material_graph",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "trace_material_connection",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "cleanup_material_graph",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "create_material_function",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "get_material_function_info",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "build_material_function_graph",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "add_material_function_input",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "add_material_function_output",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "set_material_function_input",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "set_material_function_output",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "validate_material_function",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "cleanup_material_function",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "create_niagara_system",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "get_niagara_system_info",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "list_niagara_systems",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "delete_niagara_system",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "compile_niagara_system",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "get_niagara_emitters",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "add_niagara_emitter",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "remove_niagara_emitter",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "set_niagara_emitter_property",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "duplicate_niagara_emitter",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "reorder_niagara_emitter",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "get_niagara_modules",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "add_niagara_module",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "remove_niagara_module",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "set_niagara_module_enabled",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "reorder_niagara_module",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "get_niagara_module_inputs",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "set_niagara_module_input",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "set_niagara_dynamic_input",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "set_niagara_curve",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "get_niagara_user_parameters",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "add_niagara_user_parameter",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "set_niagara_user_parameter",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "remove_niagara_user_parameter",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "link_niagara_parameter",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "add_niagara_renderer",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "remove_niagara_renderer",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "get_niagara_renderer_info",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "set_niagara_renderer_property",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "set_niagara_renderer_binding",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "add_niagara_event_handler",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "add_niagara_simulation_stage",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "get_niagara_event_handlers",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "spawn_niagara_effect",
      "tags": [
        "code-exec"
      ],
      "reasons": {
        "code-exec": [
          "keyword \"spawn\" in tool name"
        ]
      }
    },
    {
      "tool": "control_niagara_effect",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "add_niagara_component",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "get_niagara_actors",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "list_niagara_modules",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "list_niagara_emitter_templates",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "list_niagara_data_interfaces",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "list_niagara_parameter_types",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "get_niagara_emitter_attributes",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "get_niagara_rapid_iteration_parameters",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "set_niagara_rapid_iteration_parameter",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "get_niagara_renderer_properties",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "set_niagara_system_property",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "get_niagara_system_errors",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "get_niagara_particle_stats",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "set_niagara_playback_range",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "get_niagara_playback_range",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "get_niagara_module_versions",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "create_niagara_scratch_pad_module",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "duplicate_niagara_scratch_pad_module",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "delete_niagara_scratch_pad_module",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "rename_niagara_scratch_pad_module",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "get_niagara_graph_nodes",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "get_niagara_node_info",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "trace_niagara_connection",
      "tags": [],
      "reasons": {}
    }
  ],
  "surfaceDigest": "cc3588e891a3ccf2a34005d102d87fdba5de599049ba88cdd7b1cd85f56a8e31",
  "stats": {
    "tools": 200,
    "prompts": 0,
    "resources": 0,
    "findingsBySeverity": {
      "critical": 0,
      "high": 4,
      "medium": 0,
      "low": 4,
      "info": 1
    }
  }
}