Skip to main content
Glama

find_duplicate_assets

Read-onlyIdempotent

Scan a content folder for assets sharing the same base name, revealing duplicate groups across vendored libraries and forks.

Instructions

Find groups of assets sharing the same base name under a folder tree (e.g. same name existing under both a vendored library tree and a first-party fork)

Returns: { folder_path, recursive, class_filter, min_group_size, group_count, total_duplicate_assets, assets_scanned, max_results, results_truncated, groups: [{ name, count, classes: [string], assets: [{path, package, class}] }] } (groups sorted by count descending)

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
recursiveNoIf true, scan subfolders, default true
folder_pathNoContent folder to scan, default /Game
max_resultsNoCap on the number of duplicate GROUPS returned (not raw assets), clamped 1..20000, default 2000
class_filterNoOptional list of class short names (e.g. "StaticMesh","Material"); only assets whose AssetClassPath short name case-insensitively matches one of these are considered
min_group_sizeNoMinimum number of same-named assets to report as a duplicate group, default 2

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.1.0

TDQS

A3.7/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds only the return-shape detail (notably results_truncated and assets_scanned), which hints at scan behavior but does not address performance, large-tree cost, or scan scope limits beyond what annotations provide.

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

Conciseness4/5

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

The purpose sentence is front-loaded and free of waste. The trailing 'Returns' block is dense but every field listed is informative given there is no output schema; the '(groups sorted by count descending)' note earns its place. Slightly verbose for a single-sentence tool, but structured well.

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

Completeness4/5

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

With no output schema, describing the return object (group_count, total_duplicate_assets, assets_scanned, results_truncated, nested groups) is genuinely load-bearing and compensates for the missing schema. Coverage of parameters is complete via the schema, so nothing essential is missing, though the absence of any alternative-tool guidance is a minor gap.

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

Parameters3/5

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

Schema description coverage is 100%, so every parameter (recursive, folder_path, max_results, class_filter, min_group_size) is already documented in the schema. The description merely echoes these field names in its return block without adding syntax, defaults, or format detail beyond the schema, so baseline 3 applies.

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+resource with a scoping constraint: 'Find groups of assets sharing the same base name under a folder tree.' The parenthetical example (vendored library vs first-party fork) makes the intent unmistakable and separates it from adjacent asset-audit tools like find_unused_assets or get_assets_by_name.

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

Usage Guidelines3/5

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

The vendored-library-vs-fork example implies the use case (asset audit / dedup) but there is no explicit when-to-use framing and no named alternative such as audit_fork_refs or find_unused_assets. Usage is inferable from the example rather than stated.

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