Skip to main content
Glama

Server Details

Check a catalogue against The MLC, look up a song's writers, publishers and ISWC, validate CWR files

Ownership verified
Status
Healthy
Uptime
99.8% over 27 days
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL

TDQS

A4.3/5.0

Scored across 4 tools

Disambiguation4/5

check_catalogue and lookup_recording both return MLC registration verdicts, so an agent could hesitate over a single ISRC, but the batch-vs-single and identifier-flexibility boundaries are explicit. request_full_report and validate_cwr are clearly separate.

Naming Consistency5/5

All four names use snake_case with a predictable verb_noun shape: check_catalogue, lookup_recording, request_full_report, validate_cwr. The acronym CWR is used consistently as the object noun.

Tool Count5/5

Four tools map cleanly to the core jobs: batch check, single lookup, human report request, and CWR validation. Each is substantive and none appears redundant.

Completeness4/5

The suite covers diagnostics, lookup, validation, and human handoff well, but it stops short of generating CWR files or producing the full report itself. These are reasonable but noticeable gaps for end-to-end royalty review.

Available Tools

4 tools
check_catalogueCatalogue registration check: up to 50 recordings against The MLCA
Read-onlyIdempotent
Inspect

Catalogue registration check (batch ISRC lookup): checks up to 50 recordings at once against The MLC's bulk data (US mechanical royalties), and a larger catalogue in several calls. Returns each recording's verdict (registered, partial, nobody, conflict, unknown) with its confidence, MLC song code and any unclaimed share, plus a summary counting each verdict, the next step for each verdict found, and the as_of date of the MLC snapshot. Each row also lists the ISWCs and writers of the works MusicBrainz links to the recording. Invalid ISRCs are listed and skipped. It finds recordings whose music royalties may be unmatched or unclaimed. Findings from registration data, not legal advice or a statement of song ownership.

NameRequiredDescriptionDefault
isrcsYesISRCs, 12 characters, e.g. USIR20400274 (hyphens and spaces allowed). At most 50; split larger catalogues into several calls.

Output Schema

NameRequiredDescription
itemsYes
summaryYes
mlc_sourceNo

TDQS

A3.9/5.0
Behavior4/5

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

Annotations cover read-only, idempotent, non-destructive safety. Beyond that, the description adds valuable behavioral detail: invalid ISRCs are listed and skipped, results include an as_of snapshot date, and it explicitly disclaims legal advice/ownership. It does not mention rate limits or performance, which would complete the picture.

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?

Well front-loaded: batch scope, output verdicts, and the disclaimer are stated efficiently. However, the enumeration of return fields (verdicts, confidence, MLC song code, unclaimed share, summary, next steps, as_of, ISWCs, writers) is somewhat dense and long for a description when an output schema exists.

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 batch lookup with an output schema and annotations, the description covers scope, expected outputs, edge cases (invalid ISRCs), and a legal caveat. It is nearly complete but lacks explicit routing guidance to sibling tools, which would make it fully self-contained.

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 coverage is 100% and the schema itself documents ISRC format, max 50, and the split-catalogue guidance. The description repeats the batching constraint but adds no new syntax or semantic detail beyond the schema, so baseline 3 is appropriate.

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: 'Catalogue registration check (batch ISRC lookup)' against The MLC. It clearly distinguishes its batch scope (up to 50) from the singular sibling lookup_recording.

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?

Implies the use case ('finds recordings whose music royalties may be unmatched or unclaimed') and notes batching for larger catalogues, but never explicitly states when to use this tool vs. lookup_recording (its single-record sibling) or request_full_report.

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

lookup_recordingSong registration check: MLC registration, unclaimed shares, writers, publishers and ISWCsA
Read-onlyIdempotent
Inspect

ISRC lookup and music royalties registration check for one recording, with the song's rights data. Give exactly one of: an ISRC, a Spotify track link, a song title (optionally with the artist), or a YouTube link. Returns candidate recordings and MLC works, how each was matched and how confidently, and a verdict per recording: registered, partial (a share is unclaimed), nobody (no MLC work is linked), conflict, or unknown. Each verdict carries dated evidence (as_of, from The MLC's bulk data snapshot) and a factual next step. Also returns what MusicBrainz records for the recording: the linked works with their ISWCs, the writers and publishers with their IPI and ISNI numbers, the earliest release's album, date, label and catalogue number, and the MusicBrainz page. With full_record true it adds every release (label, catalogue number, country and date), performer and producer credits and related recordings; that answer is many times larger. When several matches are equally likely, ambiguous is true and all are returned. Findings from registration data, not legal advice or a statement of song ownership.

NameRequiredDescriptionDefault
isrcNoISRC, 12 characters, e.g. USIR20400274 (hyphens and spaces allowed).
titleNoSong title, when no ISRC or link is available.
artistNoOptional artist name; only together with title.
full_recordNoTrue to add MusicBrainz's full record of the recording: every release with its label, catalogue number, country and date, the credits, and related recordings. Only for an ISRC or a Spotify link that resolves to one recording. Leave it out unless that detail is needed: the answer is many times larger.
spotify_urlNoSpotify track link (https://open.spotify.com/track/...) or spotify:track:... URI. Album and playlist links are not accepted.
youtube_urlNoYouTube video link; resolved from the video title, so matches are low confidence.

Output Schema

NameRequiredDescription
notesNo
queryYes
resultsNo
ambiguousNo
candidatesNo
input_kindYes
mlc_sourceNo

TDQS

A4.6/5.0
Behavior5/5

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

Annotations cover readOnly/idempotent/openWorld, but the description adds substantial context beyond them: the verdict taxonomy (registered, partial, nobody, conflict, unknown), the dated as_of evidence from The MLC snapshot, the ambiguous flag behavior, relative payload size of full_record, and an explicit 'not legal advice' disclaimer. This is unusually rich disclosure.

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?

Front-loaded with the core action and input rule, then layered detail. It is long, but nearly every clause carries information (verdicts, evidence, output contents, size warning). Slightly dense in the middle where MusicBrainz field lists could be trimmed.

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

Completeness5/5

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

Given six optional params, an output schema, and a rich annotation set, the description covers inputs, verdict semantics, ambiguity handling, payload-size tradeoffs, and a scope disclaimer. Nothing an agent needs to call this correctly is missing.

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?

Schema coverage is 100%, so the baseline is 3, but the description adds real meaning: the mutual-exclusivity rule ('exactly one of') and the cost/size tradeoff of full_record. It also clarifies the confidence implications of YouTube links, which the schema alone does not convey.

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 ('ISRC lookup and music royalties registration check for one recording') and immediately scopes the domain to rights/registration data. It is clearly distinguishable from siblings like check_catalogue and validate_cwr without opening any 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?

Explicitly tells the agent to give exactly one of ISRC, Spotify link, title (+optional artist), or YouTube link, and states when to enable full_record ('leave it out unless that detail is needed'). It does not name alternative siblings for adjacent use cases, so routing between tools is only implicit.

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

request_full_reportRequest a music royalties review (a person follows up)AInspect

Ask for a full music royalties and registration review of a catalogue. Records the request (contact name, email, optional organisation, the catalogue's ISRCs and/or a description) so a person at TrackForge can follow up by email. It does not generate or send a report. Call it only when the user has asked for a follow-up and agreed to be contacted: consent_to_contact must be true.

NameRequiredDescriptionDefault
nameYesContact name.
emailYesContact email address for the follow-up.
isrcsNoISRCs in the catalogue (up to 200). Give isrcs, catalogue_description, or both.
organisationNoOptional label, publisher or company name.
consent_to_contactYesTrue only if the user has agreed that TrackForge may contact them by email about this request.
catalogue_descriptionNoFree-text description of the catalogue, e.g. artist names, number of songs, territories.

Output Schema

NameRequiredDescription
recordedYes
follow_upYes
referenceYes
isrcs_recordedYes
report_generatedNo
isrcs_not_recognisedNo

TDQS

A4.5/5.0
Behavior4/5

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

Annotations declare a non-read-only, open-world, non-idempotent, non-destructive call, and the description usefully adds what the side effect actually is: it records a request for a human to follow up by email, not a report generation. It does not discuss duplicate requests or rate limits, so it stops short of fully rich behavioral context.

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?

Three sentences, each earning its place: what it does, what it records, and the consent gating rule. Front-loaded with the action and its human-follow-up nature before the constraints.

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

Completeness5/5

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

For a low-parameter request-submission tool with a full schema and an output schema, the description supplies the missing context: that no report is generated, a person follows up, and consent is required. Nothing needed to invoke it correctly is absent.

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 is already documented with type, bounds, and meaning. The description restates the key fields (name, email, organisation, ISRCs/description) and the consent gate but adds no format or syntax detail beyond the schema. 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 ('Ask for a full music royalties and registration review of a catalogue') and explicitly disambiguates from what siblings might suggest by noting it does not generate or send a report. An agent can distinguish this from check_catalogue, lookup_recording, and validate_cwr without opening the schema.

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

Usage Guidelines5/5

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

Gives an explicit when-to-use condition ('only when the user has asked for a follow-up and agreed to be contacted') plus a hard prerequisite ('consent_to_contact must be true'). It also states the negative case ('does not generate or send a report'), leaving nothing to inference.

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

validate_cwrCWR validation (CWR 2.1 file check)A
Read-onlyIdempotent
Inspect

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.

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

NameRequiredDescription
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

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.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 1 tool update
    • Changedvalidate_cwr1 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. 1 tool update
    • Changedlookup_recording2 fields changed
      • addedOutput schema / $defs / MLCData / properties / writers_vs_discogs
        Added value: +{
        +  "anyOf": [
        +    {
        +      "$ref": "#/$defs/WriterMatch"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null
        +}
      • addedOutput schema / $defs / MLCOtherWork / properties / writers_vs_discogs
        Added value: +{
        +  "anyOf": [
        +    {
        +      "$ref": "#/$defs/WriterMatch"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null
        +}
  3. 4 tool updates
    • First observedcheck_catalogue
    • First observedlookup_recording
    • First observedrequest_full_report
    • First observedvalidate_cwr

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    Provides read-only tools for searching CWI's catalog by title, artist, or ISRC, retrieving game metadata and play links, and querying ledger state, trust verdicts, and needle-drop verification via a streamable HTTP MCP server with Bearer token auth.
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    Provides access to the SonoVault music metadata API, enabling search and retrieval of information about 90M+ tracks, artists, labels, and releases, including ISRC, ISWC, and cross-platform IDs.
    15
    96 npm
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    Connects AI assistants to a local music library for full-text search and filtering of tracks, albums, artists, genres, composers, and lyrics, plus listening analytics and metadata hygiene audits. Also lets users generate and populate playlists and control playback (play, pause, seek, volume) in a running player instance.
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Gives AI agents 21 tools to verify artists, identify tracks by perceptual audio fingerprint, read and register rights manifests, and audit a music-rights registry, with royalties cascading down derivation chains. It also covers royalty balances, checkout, epoch snapshots, audience insights, and workflow triggers.
    342 npm
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources