Asset management: list, search, read, CRUD, import meshes/textures, datatables. Actions: - list: List assets in directory. Params: directory?, typeFilter?, recursive? - search: Search by name/class/path. Params: query, directory?, maxResults?, searchAll? - read: Read asset via reflection. Params...
Accepts file system path (directory); Accepts freeform code/query input (query); High parameter count (57 properties); Single-target operation
Part of the Ue MCP server. Enforce policies on this tool with Intercept, the open-source MCP proxy.
AI agents may call asset 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 asset 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:
asset:
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 asset 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.
asset 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.
Asset management: list, search, read, CRUD, import meshes/textures, datatables. Actions: - list: List assets in directory. Params: directory?, typeFilter?, recursive? - search: Search by name/class/path. Params: query, directory?, maxResults?, searchAll? - read: Read asset via reflection. Params: assetPath - read_properties: Read asset properties with values. Params: assetPath, propertyName?, includeValues? - duplicate: Duplicate asset. Params: sourcePath, destinationPath - rename: Rename asset. Params: assetPath, newName. For batches of 3+ scene-referenced assets use bulk_rename instead — each single rename forces a full redirector-fixup pass and can crash the editor. - bulk_rename: Batched rename using IAssetTools::RenameAssets — single transaction with one redirector-fixup pass (matches Content Browser drag). Use this over looped rename for scene-referenced assets. Params: renames[] where each entry is {sourcePath, destinationPath} OR {assetPath, newName}. - move: Move asset. Params: sourcePath, destinationPath - delete: Delete asset. Params: assetPath - delete_batch: Batch-delete assets. Params: assetPaths[]. Returns per-path status (deleted/absent/failed). - create_data_asset: Create UDataAsset instance of custom class. Params: name, className (/Script/Module.ClassName or loaded name), packagePath?, properties? (key/value map) - save: Save asset(s). Params: assetPath? - set_mesh_material: Assign material to static mesh slot. Params: assetPath, materialPath, slotIndex? - recenter_pivot: Move static mesh pivot to geometry center. Params: assetPath OR assetPaths - import_static_mesh: Import from FBX/OBJ. Params: filePath, name?, packagePath?, combineMeshes?, importMaterials?, importTextures?, generateLightmapUVs? - import_skeletal_mesh: Import skeletal mesh from FBX. Params: filePath, name?, packagePath?, skeletonPath?, importMaterials?, importTextures? - import_animation: Import anim from FBX. Params: filePath, name?, packagePath?, skeletonPath - import_texture: Import image. Params: filePath, name?, packagePath? - reimport: Reimport asset from source file. Params: assetPath, filePath? - read_datatable: Read DataTable rows. Params: assetPath, rowFilter? - create_datatable: Create DataTable. Params: name, packagePath?, rowStruct - reimport_datatable: Reimport DataTable from JSON. Params: assetPath, jsonPath?, jsonString? - list_textures: List textures. Params: directory?, recursive? - get_texture_info: Get texture details. Params: assetPath - set_texture_settings: Set texture settings. Params: assetPath, settings (object with compressionSettings?, lodGroup?, sRGB?, neverStream?). Keys may also be passed at the top level. - add_socket: Add socket to StaticMesh or SkeletalMesh. Params: assetPath, socketName, boneName?, relativeLocation?, relativeRotation?, relativeScale? - remove_socket: Remove socket by name. Params: assetPath, socketName - list_sockets: List sockets on a mesh. Params: assetPath - reload_package: Force reload an asset package from disk. Params: assetPath - export: Export asset to disk file (Texture2D → PNG, StaticMesh → FBX, etc.). Params: assetPath, outputPath - search_fts: Ranked asset search (token-scored over name/class/path). Params: query, maxResults?, classFilter? - reindex_fts: Rebuild the SQLite FTS5 asset index. Params: directory? - get_referencers: Reverse dependency lookup. Params: packages[] OR packagePath (#150). Returns {referencersByPackage, totalReferencers}. - set_sk_material_slots: Set materials on a USkeletalMesh by slot name or slotIndex (bypasses the blueprint override-materials path that UE's ICH silently reverts). Params: assetPath, slots[{slotName?|slotIndex?, materialPath}] - diagnose_registry: Scan a content path and compare disk vs AssetRegistry (including in-memory pending-kill entries). Returns onDiskCount, inMemoryIncludedCount, ghostCount and paths. Params: path, recursive? (default true), reconcile? (forceRescan=true). 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 asset. You can allow, deny, rate-limit, or validate arguments. Then run Intercept as a proxy in front of the Ue MCP server.
asset 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 asset 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 asset. 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.
asset 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