Skip to main content
Glama

CWR validation (CWR 2.1 file check)

validate_cwr
Read-onlyIdempotent

CWR validation: checks the text of a CWR 2.1 (Common Works Registration) file used to register songs with music royalties societies such as The MLC, PRS for Music / ICE, SACEM or CMRRA. Returns whether the file is valid, error and warning counts, and each issue with its line, rule, plain-language explanation and how to fix it. Pass the file content as ASCII text, up to 256 KB; larger files can be uploaded at https://trackforge.studio/cwr-tool. Validation does not guarantee acceptance by a society. The file is not stored.

Input Schema

NameRequiredDescriptionDefault
cwr_textYesThe full CWR file content (ASCII text, HDR to TRL).
filenameNoOptional original filename, e.g. CW260001TF_000.V21. A society receiver code in the name selects that society's rules.
recipient_profileNoWhich society's rules to apply; cisac_base when unsure.cisac_base

Output Schema

NameRequiredDescriptionDefault
issuesYes
storedNo
is_validYes
error_countYes
full_reportYes
issues_totalYes
record_countYes
spec_versionYes
warning_countYes
issues_truncatedYes
recipient_profileYes
status_dimensionsNo
transaction_countYes
recipient_resolutionYes
line_endings_convertedYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / recipient_profile / enum
      Previous value: -[
      -  "cisac_base",
      -  "mlc",
      -  "cmrra",
      -  "alltrack_worldwide",
      -  "alltrack_us_only",
      -  "capasso_africa",
      -  "ice",
      -  "sacem",
      -  "siae",
      -  "sgae",
      -  "prs"
      -]New value: +[
      +  "cisac_base",
      +  "mlc",
      +  "cmrra",
      +  "alltrack_worldwide",
      +  "alltrack_us_only",
      +  "capasso_africa",
      +  "abramus",
      +  "ice",
      +  "sacem",
      +  "siae",
      +  "sgae",
      +  "prs"
      +]
  2. First observed

TDQS

A4.4/5.0
Behavior5/5

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

Annotations already declare read-only/idempotent/non-destructive, and the description adds meaningful context beyond them: the 256 KB cap, that the file is not stored, and that a valid result does not guarantee society acceptance. It also previews the payload (validity flag, error/warning counts, per-issue line, rule, explanation, fix), so the agent knows what to expect back.

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?

Four sentences, front-loaded with purpose, then output, then input constraints and fallback, then caveats. Every clause carries distinct information (domain examples, issue structure, size limit, non-persistence, acceptance disclaimer) with 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?

An output schema exists, so the brief return-value summary is a bonus rather than a necessity, and the size/privacy/disclaimer coverage is complete for a stateless validator. The only real gap is guidance on choosing a society profile versus relying on the filename receiver code, which the agent must infer from the schema.

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 the baseline is 3; the description reinforces cwr_text's format and size but mostly restates the maxLength constraint. It never mentions recipient_profile or how a society code in filename selects rules, so the two optional parameters are explained only by the schema.

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?

Names a specific verb (checks/validates) and resource (the text of a CWR 2.1 file), plus the real-world domain (song registration with The MLC, PRS/ICE, SACEM, CMRRA). No sibling tool (check_catalogue, lookup_recording, request_full_report) touches file-format validation, so the agent can route correctly without opening a schema.

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?

Gives the input form (ASCII text) and an explicit size threshold with a fallback action ('larger files can be uploaded at <url>'), which is exactly the kind of routing guidance an agent needs. It stops short of saying when to pick this over a society-specific validation path or how filename/recipient_profile interact, leaving that to the schema.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources