Skip to main content
Glama

Find asset references that do not resolve

check_assets
Read-only

Scan RPG Maker MZ project data for referenced images and audio, then report missing files and filename case mismatches before playtesting.

Instructions

Scan every image and audio name the project data mentions — database fields (character, face, battler, title1/title2, battlebacks, tileset names, animation effect), map parallax/bgm/bgs fields, and Play BGM/BGS/ME/SE, Show Picture and Play Movie commands inside events — and report the ones with no file on disk plus the ones whose spelling differs from the file only in case. This is the cheap way to find both before a playtest does: a missing image stops the engine's game loop and paints an error into a DOM panel that a canvas screenshot cannot see, and a missing audio file says nothing at all. Icons are not covered: MZ draws them by index from img/system/IconSet.png rather than by name.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
limitNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.4.2

TDQS

A4.3/5.0
Behavior5/5

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

Beyond the readOnlyHint annotation, it discloses exactly what is scanned, that it reports two categories of finding (missing file, case-only mismatch), why the findings matter (missing image halts the game loop and paints into a DOM panel invisible to screenshots; missing audio is silent), and an explicit scope boundary for icons.

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?

The purpose and scan scope are front-loaded in the first sentence, followed by the rationale and the icon exclusion. Every sentence carries information; there is no filler.

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?

For a read-only tool with no output schema, the description does state what is reported (unresolved references plus case-mismatch findings), which covers the substantive return content. It omits the result shape and the limit parameter, leaving minor gaps.

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

Parameters2/5

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

Schema description coverage is 0% and the sole parameter (limit, 1-500) is never mentioned in the description, so it fails to compensate for the coverage gap. The agent must guess that limit caps the number of reported results.

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?

The description states a specific verb (scan/report) and resource (image and audio asset references), and enumerates the exact sources checked: database fields, map parallax/bgm/bgs, and event commands. An agent can immediately distinguish it from write-side siblings like import_asset.

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

Usage Guidelines4/5

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

It gives clear when-to-use context ('the cheap way to find both before a playtest does') and an explicit when-not exclusion ('Icons are not covered'). It stops short of naming a sibling tool as the alternative, so it is slightly below full routing guidance.

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