Skip to main content
Glama

Get the tracks of a crate

get_crate_tracks
Read-onlyIdempotent

Retrieve the track list of a Serato crate in the DJ's arranged order. Specify a crate by ID or exact name, with optional fields and pagination.

Instructions

List the tracks of one crate, in the crate's own order -- the order the DJ arranged, not the order they were added to the library. Only crates in the Serato Library space can be given. Give the crate by id or by exact name; an unknown name comes back with the list of names that exist. Default fields: id, artist, title, bpm, key, key_source, genre, rating, length. Paths are redacted to ~.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
limitNo
cursorNo
fieldsNo
crate_idNo
crate_nameNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
crateYes
tracksYes
warningsNo
generationYes
next_cursorNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.1

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, so the safety profile is covered. The description adds valuable behavioral details: the ordering (DJ-arranged vs library-added), path redaction to ~, default fields, and unknown-name error behavior. These go beyond the annotations and help an agent anticipate response characteristics.

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 description is concise and well-structured. It front-loads the core purpose and ordering, then adds constraints, input methods, defaults, and redaction in a logical sequence. Every sentence adds value with no fluff. It is easy to read and digest.

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?

Given the tool has 5 parameters and an output schema, the description covers identification, default fields, redaction, and error behavior. It does not mention pagination (limit/cursor) behavior, which is relevant for large crates, but the output schema and annotations provide additional context. Overall it is almost complete, missing only pagination details.

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 0%, so the description must compensate. It explains crate_id and crate_name (by id or exact name) and implies the fields parameter via default fields. However, it does not explain the limit and cursor parameters, which are pagination controls. It provides partial parameter semantics but leaves out important ones, so it does not fully compensate for the low coverage.

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 ('List'), a specific resource ('the tracks of one crate'), and a distinguishing feature (the crate's own order, not addition order). It also clarifies scope ('Only crates in the Serato Library space') and input methods (id or exact name), making it unmistakable what the tool does and how it differs from siblings like list_crates or search_tracks.

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 clear guidance on how to specify the crate (by id or exact name) and what happens on an unknown name (returns list of names). It states a constraint (Serato Library space). However, it does not explicitly mention alternatives or when to prefer this over sibling tools like get_tracks or search_tracks, though the scope is implicit from the name and wording.

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