Skip to main content
Glama

get_asset_referencers

Read-onlyIdempotent

Find which packages reference an asset before you delete, move, or rename it. Returns hard referencers by default, with optional soft references.

Instructions

List every asset that REFERENCES a target asset -- "who breaks if I delete, move or rename this?" -- wrapping AssetRegistry::GetReferencers over the Package category and returning each referencing package with its primary asset's name, path and class. It accepts an object path, a package path or a bare name, echoes resolved_package so you can confirm it queried the package you meant, and REFUSES an ambiguous bare name with the candidate list instead of picking one. Hard references only by default (the "what keeps this loaded" audit); set include_soft_references=true to include TSoftObjectPtr / FSoftObjectPath edges. Its mirror is get_asset_dependencies (what this asset needs); get_asset_dependents answers the same direction as this one from a bare asset name, and find_blueprint_node_references finds call sites INSIDE graphs, which package-level references cannot see.

Returns: { asset_path, resolved_package, include_soft_references, total, returned, results_truncated, referencers:[{ package_name, asset_name?, asset_path?, asset_class? }] }

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
asset_pathYesTarget asset: an object path ('/Game/X/DT_ItemRows.DT_ItemRows'), a package path ('/Game/X/DT_ItemRows'), or an unambiguous bare asset name ('DT_ItemRows'). An ambiguous bare name is an error listing the candidates, never a silent pick.
max_resultsNoCap on number of returned referencers (1..50000); defaults to 5000.
include_soft_referencesNoIf true, also include soft referencers (default false -> hard-only).

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.1.0

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish a safe, idempotent read, yet the description still adds real behavioral context: it refuses ambiguous bare names with a candidate list rather than silently picking, echoes resolved_package for verification, defaults to hard references only, and exposes results_truncated. That is meaningful disclosure beyond the annotation set.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core verb+resource, then sibling routing, then the return shape. It is dense and long but every sentence carries distinct information — none of it is filler or restatement of the schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Even without an output schema, the description inlines a full 'Returns' block covering asset_path, resolved_package, include_soft_references, total, returned, results_truncated and the referencer record shape. Combined with the routing guidance, an agent has everything needed to call and interpret it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds meaning the schema alone doesn't: it enumerates the three accepted addressing forms conceptually and explains the ambiguity-refusal contract on asset_path, plus what soft references actually are (TSoftObjectPtr / FSoftObjectPath) for the flag.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('List every asset that REFERENCES a target asset') and immediately grounds it in a user intent ('who breaks if I delete, move or rename this?'). It explicitly distinguishes itself from the three nearest siblings by name, so an agent can route without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Names the alternatives with their differing conditions: get_asset_dependencies is the mirror direction, get_asset_dependents is the same direction but from a bare asset name, and find_blueprint_node_references covers call sites inside graphs that package-level references cannot see. It also states when to flip include_soft_references (hard-only 'what keeps this loaded' audit vs TSoftObjectPtr edges).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Deploy Server

Other Tools