Skip to main content
Glama

Audit the collection

audit_library
Read-onlyIdempotent

Audit a DJ library for health issues like missing files, duplicates, missing cues, and beatgrid problems. Select specific checks or target a library to identify tracks that may fail on hardware.

Instructions

Run collection health checks. Available: missing_files, unavailable, unanalyzed, no_cues, no_beatgrid, missing_key, suspicious_bpm, duplicates, empty_metadata, orphan_entries, path_form_mismatch. missing_files resolves each track against the selected library's own folder. path_form_mismatch finds files that are there, but under a name in a different Unicode normalization form from the stored path -- macOS opens them anyway, Linux does not (measured on its exFAT driver), and Engine OS on a player is Linux, so these may fail to load on hardware while missing_files on a Mac reports nothing. no_cues means "no hot cue is set" -- the quickCues blob is decoded for this, since Engine writes one to every analysed track whether or not a pad is used -- while no_beatgrid means the beatData blob is absent or empty. With more than one library connected, pass library (a uuid or path from list_libraries, either the ~/... form or the absolute one) to choose which one; the default is the supported library with the most tracks.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
checksNo
libraryNoWhich library to use: either the uuid or the path reported by list_libraries (the reported ~/... form is accepted, as is the absolute path). Omit it to use the supported library holding the most tracks. A READ may always omit it. A WRITE may omit it only when a single supported library is connected: with two or more, a write refuses with ambiguous_library listing them, since the choice decides which disk changes; ask the user which, then pass it here. A library copied onto another drive keeps its uuid, so a uuid can name two connected libraries: a write naming such a uuid refuses with ambiguous_library as well. Pass the path to write to one of them.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.17.2

TDQS

A3.6/5.0
Behavior1/5

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

The description adds rich behavioral detail, such as Unicode normalization semantics for path_form_mismatch and decoding of quickCues/beatData. However, the library parameter description explicitly discusses WRITE operations, disk changes, and refusing ambiguous libraries, while annotations declare readOnlyHint=true. This is a direct contradiction.

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 description is dense and front-loaded with the main action and available checks. Some details could be structured as bullets for readability, but every sentence carries meaningful information and there is no filler.

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

Completeness3/5

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

The description covers check semantics and library disambiguation thoroughly, but it does not explain the return value/output format, and it is unclear what happens when checks is omitted. Without an output schema, these are meaningful gaps for an agent deciding how to invoke the tool and interpret results.

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?

The checks parameter has no schema description, but the tool description lists valid check names and explains several in depth, compensating for the coverage gap. The library parameter receives additional guidance about uuid vs path and ambiguity, going beyond the schema description.

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 opens with a specific verb and resource, 'Run collection health checks', and enumerates the exact health checks supported. It is unambiguous and clearly distinct from sibling tools like get_tracks or search_tracks, even without naming them.

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?

The description gives concrete guidance for selecting a library: with more than one connected, pass library from list_libraries; otherwise the default is the supported library with the most tracks. It does not explicitly contrast against sibling tools, so full alternative-selection guidance is missing.

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