TrackForge
Server Details
Check a catalogue against The MLC, look up a song's writers, publishers and ISWC, validate CWR files
- Status
- Healthy
- Uptime
- 99.8% over 27 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 4 tools
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.
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.
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.
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 toolscheck_catalogueCatalogue registration check: up to 50 recordings against The MLCARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| isrcs | Yes | ISRCs, 12 characters, e.g. USIR20400274 (hyphens and spaces allowed). At most 50; split larger catalogues into several calls. |
Output Schema
| Name | Required | Description |
|---|---|---|
| items | Yes | |
| summary | Yes | |
| mlc_source | No |
TDQS
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.
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.
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.
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.
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.
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 ISWCsARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| isrc | No | ISRC, 12 characters, e.g. USIR20400274 (hyphens and spaces allowed). | |
| title | No | Song title, when no ISRC or link is available. | |
| artist | No | Optional artist name; only together with title. | |
| full_record | No | True 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_url | No | Spotify track link (https://open.spotify.com/track/...) or spotify:track:... URI. Album and playlist links are not accepted. | |
| youtube_url | No | YouTube video link; resolved from the video title, so matches are low confidence. |
Output Schema
| Name | Required | Description |
|---|---|---|
| notes | No | |
| query | Yes | |
| results | No | |
| ambiguous | No | |
| candidates | No | |
| input_kind | Yes | |
| mlc_source | No |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Contact name. | |
| Yes | Contact email address for the follow-up. | ||
| isrcs | No | ISRCs in the catalogue (up to 200). Give isrcs, catalogue_description, or both. | |
| organisation | No | Optional label, publisher or company name. | |
| consent_to_contact | Yes | True only if the user has agreed that TrackForge may contact them by email about this request. | |
| catalogue_description | No | Free-text description of the catalogue, e.g. artist names, number of songs, territories. |
Output Schema
| Name | Required | Description |
|---|---|---|
| recorded | Yes | |
| follow_up | Yes | |
| reference | Yes | |
| isrcs_recorded | Yes | |
| report_generated | No | |
| isrcs_not_recognised | No |
TDQS
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.
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.
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.
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.
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.
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)ARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| cwr_text | Yes | The full CWR file content (ASCII text, HDR to TRL). | |
| filename | No | Optional original filename, e.g. CW260001TF_000.V21. A society receiver code in the name selects that society's rules. | |
| recipient_profile | No | Which society's rules to apply; cisac_base when unsure. | cisac_base |
Output Schema
| Name | Required | Description |
|---|---|---|
| issues | Yes | |
| stored | No | |
| is_valid | Yes | |
| error_count | Yes | |
| full_report | Yes | |
| issues_total | Yes | |
| record_count | Yes | |
| spec_version | Yes | |
| warning_count | Yes | |
| issues_truncated | Yes | |
| recipient_profile | Yes | |
| status_dimensions | No | |
| transaction_count | Yes | |
| recipient_resolution | Yes | |
| line_endings_converted | Yes |
TDQS
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.
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.
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.
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.
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.
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 tool update
- Changed
validate_cwr1 field changed- changed
Input schema / properties / recipient_profile / enumPrevious 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" +]
1 tool update
- Changed
lookup_recording2 fields changed- added
Output schema / $defs / MLCData / properties / writers_vs_discogsAdded value: +{ + "anyOf": [ + { + "$ref": "#/$defs/WriterMatch" + }, + { + "type": "null" + } + ], + "default": null +} - added
Output schema / $defs / MLCOtherWork / properties / writers_vs_discogsAdded value: +{ + "anyOf": [ + { + "$ref": "#/$defs/WriterMatch" + }, + { + "type": "null" + } + ], + "default": null +}
4 tool updates
- First observed
check_catalogue - First observed
lookup_recording - First observed
request_full_report - First observed
validate_cwr
Related MCP Connectors
Search, analyze, and discover commercially released music using sonic intelligence.
Music search over 185M+ tracks: describe a sound, find similar songs, ISRC/ISWC lookup, beat grids.
1Search MusicBrainz artists, releases, works, labels; resolve ISRC/ISWC/barcode; fetch cover art.
Free ISRC lookup and public titles for Reels, TikTok, Shorts, and X links.
Related MCP Servers
AlicenseNot gradedqualityBmaintenanceProvides 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
sonovault-mcpofficial
AlicenseAqualityBmaintenanceProvides 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.1596 npmMIT- AlicenseNot gradedqualityAmaintenanceConnects 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
- AlicenseNot gradedqualityBmaintenanceGives 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 npmMIT
Glama MCP Gateway
Add one secure layer between your agents and this server.