Check a catalogue against The MLC, look up a song's writers, publishers and ISWC, validate CWR files
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
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.
ISRCs, 12 characters, e.g. USIR20400274 (hyphens and spaces allowed). At most 50; split larger catalogues into several calls.
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.
| Argument | Type | Description |
|---|---|---|
| isrcs* | array | ISRCs, 12 characters, e.g. USIR20400274 (hyphens and spaces allowed). At most 50; split larger catalogues into several calls. |
{
"type": "object",
"required": [
"isrcs"
],
"properties": {
"isrcs": {
"type": "array",
"items": {
"type": "string",
"maxLength": 32
},
"maxItems": 50,
"minItems": 1,
"description": "ISRCs, 12 characters, e.g. USIR20400274 (hyphens and spaces allowed). At most 50; split larger catalogues into several calls."
}
},
"additionalProperties": false
}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.
| Argument | Type | Description |
|---|---|---|
| isrc | string | ISRC, 12 characters, e.g. USIR20400274 (hyphens and spaces allowed). |
| title | string | Song title, when no ISRC or link is available. |
| artist | string | Optional artist name; only together with title. |
| full_record | boolean | 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 | string | Spotify track link (https://open.spotify.com/track/...) or spotify:track:... URI. Album and playlist links are not accepted. |
| youtube_url | string | YouTube video link; resolved from the video title, so matches are low confidence. |
{
"type": "object",
"properties": {
"isrc": {
"type": "string",
"maxLength": 32,
"description": "ISRC, 12 characters, e.g. USIR20400274 (hyphens and spaces allowed)."
},
"title": {
"type": "string",
"maxLength": 300,
"description": "Song title, when no ISRC or link is available."
},
"artist": {
"type": "string",
"maxLength": 300,
"description": "Optional artist name; only together with title."
},
"full_record": {
"type": "boolean",
"default": false,
"description": "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": {
"type": "string",
"maxLength": 500,
"description": "Spotify track link (https://open.spotify.com/track/...) or spotify:track:... URI. Album and playlist links are not accepted."
},
"youtube_url": {
"type": "string",
"maxLength": 500,
"description": "YouTube video link; resolved from the video title, so matches are low confidence."
}
},
"additionalProperties": false
}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.
| Argument | Type | Description |
|---|---|---|
| name* | string | Contact name. |
| email* | string | Contact email address for the follow-up. |
| isrcs | array | ISRCs in the catalogue (up to 200). Give isrcs, catalogue_description, or both. |
| organisation | string | Optional label, publisher or company name. |
| consent_to_contact* | boolean | True only if the user has agreed that TrackForge may contact them by email about this request. |
| catalogue_description | string | Free-text description of the catalogue, e.g. artist names, number of songs, territories. |
{
"type": "object",
"required": [
"name",
"email",
"consent_to_contact"
],
"properties": {
"name": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Contact name."
},
"email": {
"type": "string",
"maxLength": 254,
"minLength": 3,
"description": "Contact email address for the follow-up."
},
"isrcs": {
"type": "array",
"items": {
"type": "string",
"maxLength": 32
},
"maxItems": 200,
"description": "ISRCs in the catalogue (up to 200). Give isrcs, catalogue_description, or both."
},
"organisation": {
"type": "string",
"maxLength": 200,
"description": "Optional label, publisher or company name."
},
"consent_to_contact": {
"type": "boolean",
"const": true,
"description": "True only if the user has agreed that TrackForge may contact them by email about this request."
},
"catalogue_description": {
"type": "string",
"maxLength": 2000,
"description": "Free-text description of the catalogue, e.g. artist names, number of songs, territories."
}
},
"additionalProperties": false
}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.
| Argument | Type | Description |
|---|---|---|
| cwr_text* | string | The full CWR file content (ASCII text, HDR to TRL). |
| filename | string | Optional original filename, e.g. CW260001TF_000.V21. A society receiver code in the name selects that society's rules. |
| recipient_profile | string | Which society's rules to apply; cisac_base when unsure. |
{
"type": "object",
"required": [
"cwr_text"
],
"properties": {
"cwr_text": {
"type": "string",
"maxLength": 262144,
"minLength": 1,
"description": "The full CWR file content (ASCII text, HDR to TRL)."
},
"filename": {
"type": "string",
"maxLength": 255,
"description": "Optional original filename, e.g. CW260001TF_000.V21. A society receiver code in the name selects that society's rules."
},
"recipient_profile": {
"enum": [
"cisac_base",
"mlc",
"cmrra",
"alltrack_worldwide",
"alltrack_us_only",
"capasso_africa",
"abramus",
"ice",
"sacem",
"siae",
"sgae",
"prs"
],
"type": "string",
"default": "cisac_base",
"description": "Which society's rules to apply; cisac_base when unsure."
}
},
"additionalProperties": false
}