Server definition
- Hash
- sha256:41b7219b38f290dc1fb25f12a386f85c51d76350582bdf9f6fe7371480adba71
- What it is
- What a remote MCP server returned when asked what it offers: 10 tools
The blob, as servednamed by its sha256
{
"instructions": "Open music metadata over the live MusicBrainz Web Service v2 and the Cover Art Archive. Entities are addressed by MBID (a UUID); starting from a name, call musicbrainz_search_entities first and chain the MBID into the matching musicbrainz_get_* tool. The get_* tools embed at most one page (25) of any linked list (a discography, a label's releases, a work's recordings) — use musicbrainz_browse_entities for the complete set. musicbrainz_lookup_identifier resolves an ISRC/ISWC/barcode without a name search. The server is rate-limited to ~1 request/second against MusicBrainz, so batch enumeration via browse paces accordingly. External IDs (Wikidata QID, Discogs) arrive as url-rels chainable to those servers.",
"tools": [
{
"description": "Paginate the COMPLETE set of entities linked to a parent MBID — every release-group by an artist, every release on a label, every recording of a work, every release in a release-group. This is the only complete-enumeration path: the get_* tools embed at most one page (25) of any linked list, so use this tool whenever a linked set may exceed a page (a prolific artist, a major label with thousands of releases, a heavily-covered work). Provide exactly ONE link MBID matching a valid parent→child relationship for the target_type. Pages arbitrarily deep via offset; totalCount is the true upstream total.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false,
"properties": {
"limit": {
"default": 25,
"description": "Page size (1–100).",
"maximum": 100,
"minimum": 1,
"type": "integer"
},
"link": {
"description": "Exactly one parent MBID. The valid key depends on target_type (see the description).",
"properties": {
"area": {
"description": "Parent area MBID (artists/labels in this area).",
"type": "string"
},
"artist": {
"description": "Parent artist MBID (e.g. release-groups/recordings/releases by this artist).",
"type": "string"
},
"label": {
"description": "Parent label MBID (releases on this label).",
"type": "string"
},
"recording": {
"description": "Parent recording MBID (releases containing this recording).",
"type": "string"
},
"release-group": {
"description": "Parent release-group MBID (releases in this group).",
"type": "string"
},
"work": {
"description": "Parent work MBID (recordings of this work).",
"type": "string"
}
},
"type": "object"
},
"offset": {
"default": 0,
"description": "Result offset for deep pagination (0-based).",
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
"target_type": {
"description": "The entity type to enumerate (the children).",
"enum": [
"artist",
"release-group",
"release",
"recording",
"work",
"label"
],
"type": "string"
}
},
"required": [
"target_type",
"link"
],
"type": "object"
},
"name": "musicbrainz_browse_entities",
"outputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false,
"anyOf": [
{
"not": {
"required": [
"error"
]
},
"required": [
"targetType",
"linkType",
"linkMbid",
"entities",
"offset",
"totalCount"
]
},
{
"required": [
"error"
]
}
],
"properties": {
"cap": {
"description": "The page size that was applied. Absent when not truncated.",
"type": "number"
},
"entities": {
"description": "This page of linked entities, in upstream order.",
"items": {
"additionalProperties": false,
"description": "A lightweight reference to a linked entity.",
"properties": {
"artistCredit": {
"description": "Credited artist string, for release-group/release/recording. Omitted otherwise.",
"type": "string"
},
"country": {
"description": "Country code, where applicable. Omitted when absent.",
"type": "string"
},
"date": {
"description": "First-release/release date, where applicable. Omitted when absent.",
"type": "string"
},
"disambiguation": {
"description": "Short qualifier. Omitted when absent.",
"type": "string"
},
"length": {
"description": "Recording length as m:ss. Omitted when not a recording / unknown.",
"type": "string"
},
"mbid": {
"description": "Entity MBID — chain to the matching musicbrainz_get_* tool.",
"type": "string"
},
"name": {
"description": "Entity name (artist/label) or title (release-group/release/recording/work).",
"type": "string"
},
"type": {
"description": "Entity subtype, where applicable. Omitted when absent.",
"type": "string"
}
},
"required": [
"mbid",
"name"
],
"type": "object"
},
"type": "array"
},
"error": {
"additionalProperties": {},
"description": "Present when the call failed. Absent on success.",
"properties": {
"code": {
"description": "JSON-RPC error code for this failure.",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"type": "integer"
},
"data": {
"additionalProperties": {},
"properties": {
"reason": {
"description": "Machine-readable failure mode. Declared by this tool: `invalid_link`: No link MBID was provided, more than one was provided, or the link MBID is malformed (HTTP 400). `entity_not_found`: The link MBID is well-formed but no such parent entity exists (HTTP 404). Other values are possible when a failure originates below the handler.",
"examples": [
"invalid_link",
"entity_not_found"
],
"type": "string"
},
"recovery": {
"additionalProperties": {},
"description": "Actionable next step for the caller.",
"properties": {
"hint": {
"type": "string"
}
},
"required": [
"hint"
],
"type": "object"
},
"retryable": {
"description": "Whether retrying may succeed.",
"type": "boolean"
}
},
"type": "object"
},
"message": {
"description": "Human-readable description of what went wrong.",
"type": "string"
}
},
"required": [
"code",
"message"
],
"type": "object"
},
"linkMbid": {
"description": "The parent MBID that was browsed.",
"type": "string"
},
"linkType": {
"description": "The parent link type used (artist, label, release-group, recording, work, or area).",
"type": "string"
},
"notice": {
"description": "How to page further when results remain, or guidance when empty.",
"type": "string"
},
"offset": {
"description": "The offset used for this page.",
"type": "number"
},
"shown": {
"description": "Number of entities returned in this page. Absent when not truncated.",
"type": "number"
},
"targetType": {
"description": "The entity type that was enumerated.",
"type": "string"
},
"totalCount": {
"description": "True total number of linked entities upstream (the {type}-count field).",
"type": "number"
},
"truncated": {
"description": "True when more entities remain beyond this page (offset + shown < totalCount). Absent when the page is complete.",
"type": "boolean"
}
},
"type": "object"
}
},
{
"description": "Artist profile by MBID: type (person/group/…), country, life span, gender, area, aliases, tags/genres, plus the discography (release-groups) and band-membership / collaboration relationships and external links (Wikidata QID, Discogs, official site — surfaced as url-rels chainable to those servers). The 80% artist-detail call. Discography and relationships are capped at one page (25); for a prolific artist's complete release-group list, call musicbrainz_browse_entities with target_type=release-group and the artist link.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false,
"properties": {
"inc_relationships": {
"default": true,
"description": "Include band-membership / collaboration relationships and external links (url-rels).",
"type": "boolean"
},
"inc_release_groups": {
"default": true,
"description": "Include the discography (release-groups). Capped at one page; use browse for the full set.",
"type": "boolean"
},
"mbid": {
"description": "Artist MBID (36-character UUID).",
"type": "string"
}
},
"required": [
"mbid"
],
"type": "object"
},
"name": "musicbrainz_get_artist",
"outputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false,
"anyOf": [
{
"not": {
"required": [
"error"
]
},
"required": [
"mbid",
"name",
"aliases",
"tags",
"releaseGroups",
"relationships",
"externalLinks"
]
},
{
"required": [
"error"
]
}
],
"properties": {
"aliases": {
"description": "Alternate names (may be empty).",
"items": {
"additionalProperties": false,
"description": "An alternate name for the entity.",
"properties": {
"locale": {
"description": "BCP-47 locale of the alias. Omitted when absent.",
"type": "string"
},
"name": {
"description": "Alias name.",
"type": "string"
},
"primary": {
"description": "Whether this is the primary alias for its locale. Omitted when absent.",
"type": "boolean"
},
"sortName": {
"description": "Sortable form of the alias. Omitted when absent.",
"type": "string"
},
"type": {
"description": "Alias type (e.g. \"Artist name\", \"Legal name\"). Omitted when absent.",
"type": "string"
}
},
"required": [
"name"
],
"type": "object"
},
"type": "array"
},
"area": {
"description": "Associated area name. Omitted when unknown.",
"type": "string"
},
"cap": {
"description": "The one-page cap that was applied. Absent when not truncated.",
"type": "number"
},
"country": {
"description": "ISO country code. Omitted when unknown.",
"type": "string"
},
"disambiguation": {
"description": "Short qualifier distinguishing same-named artists. Omitted when absent.",
"type": "string"
},
"error": {
"additionalProperties": {},
"description": "Present when the call failed. Absent on success.",
"properties": {
"code": {
"description": "JSON-RPC error code for this failure.",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"type": "integer"
},
"data": {
"additionalProperties": {},
"properties": {
"reason": {
"description": "Machine-readable failure mode. Declared by this tool: `invalid_mbid`: The MBID is malformed or the all-zeros sentinel (MusicBrainz returns HTTP 400). `entity_not_found`: The MBID is well-formed but no artist exists with it (MusicBrainz returns HTTP 404). Other values are possible when a failure originates below the handler.",
"examples": [
"invalid_mbid",
"entity_not_found"
],
"type": "string"
},
"recovery": {
"additionalProperties": {},
"description": "Actionable next step for the caller.",
"properties": {
"hint": {
"type": "string"
}
},
"required": [
"hint"
],
"type": "object"
},
"retryable": {
"description": "Whether retrying may succeed.",
"type": "boolean"
}
},
"type": "object"
},
"message": {
"description": "Human-readable description of what went wrong.",
"type": "string"
}
},
"required": [
"code",
"message"
],
"type": "object"
},
"externalLinks": {
"description": "External resource links (url-rels) — Wikidata, Discogs, official site (may be empty).",
"items": {
"additionalProperties": false,
"description": "An external resource link (url-rel). Where cross-service IDs like Wikidata QID are surfaced.",
"properties": {
"resource": {
"description": "The external URL. Wikidata/Discogs IDs live in the URL path — chain to those servers.",
"type": "string"
},
"type": {
"description": "Link type (e.g. \"wikidata\", \"discogs\", \"official homepage\", \"streaming\").",
"type": "string"
}
},
"required": [
"type",
"resource"
],
"type": "object"
},
"type": "array"
},
"gender": {
"description": "Gender, for person-type artists. Omitted when unknown/inapplicable.",
"type": "string"
},
"lifeSpan": {
"additionalProperties": false,
"description": "Birth/death or formation/dissolution span. Omitted when unknown.",
"properties": {
"begin": {
"description": "Start date (YYYY, YYYY-MM, or YYYY-MM-DD). Omitted when unknown.",
"type": "string"
},
"end": {
"description": "End date. Omitted when unknown.",
"type": "string"
},
"ended": {
"description": "Whether the entity has ended. Omitted when the upstream value is unknown/null.",
"type": "boolean"
}
},
"type": "object"
},
"mbid": {
"description": "Artist MBID.",
"type": "string"
},
"name": {
"description": "Artist name.",
"type": "string"
},
"notice": {
"description": "How to fetch the complete discography when truncated.",
"type": "string"
},
"relationships": {
"description": "Band membership and collaboration relationships (may be empty).",
"items": {
"additionalProperties": false,
"description": "A typed relationship to another entity (band membership, performer, writer, etc.).",
"properties": {
"attributes": {
"description": "Role modifiers (e.g. \"lead vocals\", \"assistant\", \"co\"). Omitted when none.",
"items": {
"type": "string"
},
"type": "array"
},
"begin": {
"description": "Relationship start date. Omitted when absent.",
"type": "string"
},
"direction": {
"description": "Relationship direction (\"forward\" | \"backward\"). Omitted when absent.",
"type": "string"
},
"end": {
"description": "Relationship end date. Omitted when absent.",
"type": "string"
},
"targetId": {
"description": "MBID of the related entity — chain to the matching get_* tool. Omitted for url targets.",
"type": "string"
},
"targetName": {
"description": "Name/title of the related entity. Omitted when absent.",
"type": "string"
},
"targetType": {
"description": "Type of the related entity (\"artist\" | \"work\" | \"recording\" | \"label\" | \"url\").",
"type": "string"
},
"type": {
"description": "Relationship role (e.g. \"member of band\", \"producer\", \"writer\", \"performance\").",
"type": "string"
}
},
"required": [
"type",
"targetType"
],
"type": "object"
},
"type": "array"
},
"releaseGroups": {
"description": "Discography — release-groups (one page; may be empty or capped).",
"items": {
"additionalProperties": false,
"description": "A release-group in the artist discography (capped to one page — use browse for all).",
"properties": {
"disambiguation": {
"description": "Short qualifier. Omitted when absent.",
"type": "string"
},
"firstReleaseDate": {
"description": "First-release date. Omitted when absent.",
"type": "string"
},
"mbid": {
"description": "Release-group MBID — chain to musicbrainz_get_release_group.",
"type": "string"
},
"primaryType": {
"description": "Primary type (Album, Single, EP, …). Omitted when absent.",
"type": "string"
},
"secondaryTypes": {
"description": "Secondary types (Live, Compilation, …). Omitted when none.",
"items": {
"type": "string"
},
"type": "array"
},
"title": {
"description": "Release-group title.",
"type": "string"
}
},
"required": [
"mbid",
"title"
],
"type": "object"
},
"type": "array"
},
"shown": {
"description": "Number of release-groups returned. Absent when not truncated.",
"type": "number"
},
"sortName": {
"description": "Sortable name form. Omitted when absent.",
"type": "string"
},
"tags": {
"description": "Community tags/genres with vote counts (may be empty).",
"items": {
"additionalProperties": false,
"description": "A folksonomy tag or genre with its vote count.",
"properties": {
"count": {
"description": "Community vote count for this tag.",
"type": "number"
},
"name": {
"description": "Tag or genre name.",
"type": "string"
}
},
"required": [
"name",
"count"
],
"type": "object"
},
"type": "array"
},
"truncated": {
"description": "True when the discography hit the one-page cap and more release-groups exist. Absent when the full set fit in one page.",
"type": "boolean"
},
"type": {
"description": "Artist type (Person, Group, Orchestra, …). Omitted when unknown.",
"type": "string"
}
},
"type": "object"
}
},
{
"description": "Cover Art Archive images for a release or release-group MBID: front/back flags, image types, full-resolution URLs, and 250/500/1200px thumbnail URLs. Returns an empty image set (NOT an error) when the entity has no art — absence of art is information. An MBID that matches no release or release-group of the given entity_type fails with entity_not_found instead of an empty set. Art is served at the release level; a release-group MBID resolves to a representative release's art automatically. URLs are linked, never rehosted — image copyright stays with the rights holders (only MusicBrainz core metadata is CC0).",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false,
"properties": {
"entity_type": {
"default": "release",
"description": "Whether the MBID is a release (default) or a release-group.",
"enum": [
"release",
"release-group"
],
"type": "string"
},
"mbid": {
"description": "Release or release-group MBID (36-character UUID).",
"type": "string"
}
},
"required": [
"mbid"
],
"type": "object"
},
"name": "musicbrainz_get_cover_art",
"outputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false,
"anyOf": [
{
"not": {
"required": [
"error"
]
},
"required": [
"mbid",
"entityType",
"images",
"hasArt"
]
},
{
"required": [
"error"
]
}
],
"properties": {
"entityType": {
"description": "Whether the MBID was treated as a release or release-group.",
"type": "string"
},
"error": {
"additionalProperties": {},
"description": "Present when the call failed. Absent on success.",
"properties": {
"code": {
"description": "JSON-RPC error code for this failure.",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"type": "integer"
},
"data": {
"additionalProperties": {},
"properties": {
"reason": {
"description": "Machine-readable failure mode. Declared by this tool: `invalid_mbid`: The MBID is malformed or the all-zeros sentinel — a value MusicBrainz rejects outright (HTTP 400). `entity_not_found`: The MBID is well-formed but no entity of the given entity_type exists with it (the archive returns 404 and the MusicBrainz check of the MBID returns 404). Other values are possible when a failure originates below the handler.",
"examples": [
"invalid_mbid",
"entity_not_found"
],
"type": "string"
},
"recovery": {
"additionalProperties": {},
"description": "Actionable next step for the caller.",
"properties": {
"hint": {
"type": "string"
}
},
"required": [
"hint"
],
"type": "object"
},
"retryable": {
"description": "Whether retrying may succeed.",
"type": "boolean"
}
},
"type": "object"
},
"message": {
"description": "Human-readable description of what went wrong.",
"type": "string"
}
},
"required": [
"code",
"message"
],
"type": "object"
},
"hasArt": {
"description": "Whether any cover art exists for this entity.",
"type": "boolean"
},
"images": {
"description": "Cover-art images (empty when the entity has no art).",
"items": {
"additionalProperties": false,
"description": "One cover-art image with its full URL and thumbnails.",
"properties": {
"approved": {
"description": "Whether the image is community-approved. Omitted when unknown.",
"type": "boolean"
},
"back": {
"description": "Whether this is a designated back image.",
"type": "boolean"
},
"comment": {
"description": "Editor comment on the image. Omitted when absent.",
"type": "string"
},
"front": {
"description": "Whether this is a designated front image.",
"type": "boolean"
},
"id": {
"description": "Cover Art Archive image ID.",
"type": "string"
},
"imageUrl": {
"description": "Full-resolution image URL (linked, not rehosted — copyright stays with the rights holder).",
"type": "string"
},
"thumbnail1200": {
"description": "1200px thumbnail URL. Omitted when unavailable.",
"type": "string"
},
"thumbnail250": {
"description": "250px thumbnail URL. Omitted when unavailable.",
"type": "string"
},
"thumbnail500": {
"description": "500px thumbnail URL. Omitted when unavailable.",
"type": "string"
},
"types": {
"description": "Image types (Front, Back, Booklet, Medium, …; may be empty).",
"items": {
"type": "string"
},
"type": "array"
}
},
"required": [
"id",
"front",
"back",
"types",
"imageUrl"
],
"type": "object"
},
"type": "array"
},
"mbid": {
"description": "The MBID that was queried.",
"type": "string"
},
"notice": {
"description": "Present when the entity has no art: states that no images exist, or — when the MBID could not be checked against MusicBrainz — that its existence is unconfirmed.",
"type": "string"
},
"representativeRelease": {
"description": "For a release-group query, the release MBID whose art was returned. Omitted for direct release queries.",
"type": "string"
}
},
"type": "object"
}
},
{
"description": "Label by MBID: type (Original Production, Reissue, Imprint, …), country, life span, label code (the LC number), area, aliases, tags, and external links (url-rels — Wikidata, Discogs, official site). A label's releases are a potentially huge linked set (a major label can have tens of thousands), so they are NOT embedded here — enumerate them with musicbrainz_browse_entities (target_type=release, link.label).",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false,
"properties": {
"mbid": {
"description": "Label MBID (36-character UUID).",
"type": "string"
}
},
"required": [
"mbid"
],
"type": "object"
},
"name": "musicbrainz_get_label",
"outputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false,
"anyOf": [
{
"not": {
"required": [
"error"
]
},
"required": [
"mbid",
"name",
"aliases",
"tags",
"externalLinks"
]
},
{
"required": [
"error"
]
}
],
"properties": {
"aliases": {
"description": "Alternate names (may be empty).",
"items": {
"additionalProperties": false,
"description": "An alternate name for the entity.",
"properties": {
"locale": {
"description": "BCP-47 locale of the alias. Omitted when absent.",
"type": "string"
},
"name": {
"description": "Alias name.",
"type": "string"
},
"primary": {
"description": "Whether this is the primary alias for its locale. Omitted when absent.",
"type": "boolean"
},
"sortName": {
"description": "Sortable form of the alias. Omitted when absent.",
"type": "string"
},
"type": {
"description": "Alias type (e.g. \"Artist name\", \"Legal name\"). Omitted when absent.",
"type": "string"
}
},
"required": [
"name"
],
"type": "object"
},
"type": "array"
},
"area": {
"description": "Associated area name. Omitted when unknown.",
"type": "string"
},
"country": {
"description": "ISO country code. Omitted when unknown.",
"type": "string"
},
"disambiguation": {
"description": "Short qualifier. Omitted when absent.",
"type": "string"
},
"error": {
"additionalProperties": {},
"description": "Present when the call failed. Absent on success.",
"properties": {
"code": {
"description": "JSON-RPC error code for this failure.",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"type": "integer"
},
"data": {
"additionalProperties": {},
"properties": {
"reason": {
"description": "Machine-readable failure mode. Declared by this tool: `invalid_mbid`: The MBID is malformed or the all-zeros sentinel (MusicBrainz returns HTTP 400). `entity_not_found`: The MBID is well-formed but no label exists with it (MusicBrainz returns HTTP 404). Other values are possible when a failure originates below the handler.",
"examples": [
"invalid_mbid",
"entity_not_found"
],
"type": "string"
},
"recovery": {
"additionalProperties": {},
"description": "Actionable next step for the caller.",
"properties": {
"hint": {
"type": "string"
}
},
"required": [
"hint"
],
"type": "object"
},
"retryable": {
"description": "Whether retrying may succeed.",
"type": "boolean"
}
},
"type": "object"
},
"message": {
"description": "Human-readable description of what went wrong.",
"type": "string"
}
},
"required": [
"code",
"message"
],
"type": "object"
},
"externalLinks": {
"description": "External resource links (url-rels) (may be empty).",
"items": {
"additionalProperties": false,
"description": "An external resource link (url-rel). Where cross-service IDs like Wikidata QID are surfaced.",
"properties": {
"resource": {
"description": "The external URL. Wikidata/Discogs IDs live in the URL path — chain to those servers.",
"type": "string"
},
"type": {
"description": "Link type (e.g. \"wikidata\", \"discogs\", \"official homepage\", \"streaming\").",
"type": "string"
}
},
"required": [
"type",
"resource"
],
"type": "object"
},
"type": "array"
},
"labelCode": {
"description": "Label code (LC number), without the \"LC\" prefix. Omitted when absent.",
"type": "number"
},
"lifeSpan": {
"additionalProperties": false,
"description": "Founding/dissolution span. Omitted when unknown.",
"properties": {
"begin": {
"description": "Start date (YYYY, YYYY-MM, or YYYY-MM-DD). Omitted when unknown.",
"type": "string"
},
"end": {
"description": "End date. Omitted when unknown.",
"type": "string"
},
"ended": {
"description": "Whether the entity has ended. Omitted when the upstream value is unknown/null.",
"type": "boolean"
}
},
"type": "object"
},
"mbid": {
"description": "Label MBID.",
"type": "string"
},
"name": {
"description": "Label name.",
"type": "string"
},
"sortName": {
"description": "Sortable name form. Omitted when absent.",
"type": "string"
},
"tags": {
"description": "Community tags/genres (may be empty).",
"items": {
"additionalProperties": false,
"description": "A folksonomy tag or genre with its vote count.",
"properties": {
"count": {
"description": "Community vote count for this tag.",
"type": "number"
},
"name": {
"description": "Tag or genre name.",
"type": "string"
}
},
"required": [
"name",
"count"
],
"type": "object"
},
"type": "array"
},
"type": {
"description": "Label type. Omitted when unknown.",
"type": "string"
}
},
"type": "object"
}
},
{
"description": "Recording (a specific performance/track, distinct from the abstract work) by MBID: length, artist credits, ISRCs, the releases it appears on, the work(s) it performs (work-rels — chain to musicbrainz_get_work), and performance/production relationships (who played, produced, engineered, conducted — each with the role and the credited artist MBID). Relationships are capped at one page; for a heavily-covered recording call musicbrainz_browse_entities with target_type=recording and link.work.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false,
"properties": {
"inc_relationships": {
"default": true,
"description": "Include performance/production relationships (performers, producers, engineers) and work-rels.",
"type": "boolean"
},
"mbid": {
"description": "Recording MBID (36-character UUID).",
"type": "string"
}
},
"required": [
"mbid"
],
"type": "object"
},
"name": "musicbrainz_get_recording",
"outputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false,
"anyOf": [
{
"not": {
"required": [
"error"
]
},
"required": [
"mbid",
"title",
"artistCredit",
"artistCreditString",
"isrcs",
"releases",
"relationships",
"externalLinks"
]
},
{
"required": [
"error"
]
}
],
"properties": {
"artistCredit": {
"description": "Credited artists (may be empty).",
"items": {
"additionalProperties": false,
"description": "One credited artist within an artist credit.",
"properties": {
"artistId": {
"description": "MBID of the credited artist — chain to musicbrainz_get_artist.",
"type": "string"
},
"artistName": {
"description": "Canonical artist name.",
"type": "string"
},
"joinPhrase": {
"description": "Text that joins this credit to the next (e.g. \" feat. \", \" & \"). Omitted when empty.",
"type": "string"
},
"name": {
"description": "Credited name as it appears on the release (may be an alias).",
"type": "string"
}
},
"required": [
"name",
"artistId",
"artistName"
],
"type": "object"
},
"type": "array"
},
"artistCreditString": {
"description": "Display string of the artist credit with join phrases.",
"type": "string"
},
"disambiguation": {
"description": "Short qualifier. Omitted when absent.",
"type": "string"
},
"error": {
"additionalProperties": {},
"description": "Present when the call failed. Absent on success.",
"properties": {
"code": {
"description": "JSON-RPC error code for this failure.",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"type": "integer"
},
"data": {
"additionalProperties": {},
"properties": {
"reason": {
"description": "Machine-readable failure mode. Declared by this tool: `invalid_mbid`: The MBID is malformed or the all-zeros sentinel (MusicBrainz returns HTTP 400). `entity_not_found`: The MBID is well-formed but no recording exists with it (MusicBrainz returns HTTP 404). Other values are possible when a failure originates below the handler.",
"examples": [
"invalid_mbid",
"entity_not_found"
],
"type": "string"
},
"recovery": {
"additionalProperties": {},
"description": "Actionable next step for the caller.",
"properties": {
"hint": {
"type": "string"
}
},
"required": [
"hint"
],
"type": "object"
},
"retryable": {
"description": "Whether retrying may succeed.",
"type": "boolean"
}
},
"type": "object"
},
"message": {
"description": "Human-readable description of what went wrong.",
"type": "string"
}
},
"required": [
"code",
"message"
],
"type": "object"
},
"externalLinks": {
"description": "External resource links (url-rels) (may be empty).",
"items": {
"additionalProperties": false,
"description": "An external resource link (url-rel). Where cross-service IDs like Wikidata QID are surfaced.",
"properties": {
"resource": {
"description": "The external URL. Wikidata/Discogs IDs live in the URL path — chain to those servers.",
"type": "string"
},
"type": {
"description": "Link type (e.g. \"wikidata\", \"discogs\", \"official homepage\", \"streaming\").",
"type": "string"
}
},
"required": [
"type",
"resource"
],
"type": "object"
},
"type": "array"
},
"firstReleaseDate": {
"description": "Earliest release date for this recording. Omitted when absent.",
"type": "string"
},
"isrcs": {
"description": "ISRCs assigned to this recording (may be empty).",
"items": {
"type": "string"
},
"type": "array"
},
"length": {
"description": "Recording length as m:ss. Omitted when unknown.",
"type": "string"
},
"mbid": {
"description": "Recording MBID.",
"type": "string"
},
"relationships": {
"description": "Performance/production relationships and work-rels (may be empty).",
"items": {
"additionalProperties": false,
"description": "A typed relationship to another entity (band membership, performer, writer, etc.).",
"properties": {
"attributes": {
"description": "Role modifiers (e.g. \"lead vocals\", \"assistant\", \"co\"). Omitted when none.",
"items": {
"type": "string"
},
"type": "array"
},
"begin": {
"description": "Relationship start date. Omitted when absent.",
"type": "string"
},
"direction": {
"description": "Relationship direction (\"forward\" | \"backward\"). Omitted when absent.",
"type": "string"
},
"end": {
"description": "Relationship end date. Omitted when absent.",
"type": "string"
},
"targetId": {
"description": "MBID of the related entity — chain to the matching get_* tool. Omitted for url targets.",
"type": "string"
},
"targetName": {
"description": "Name/title of the related entity. Omitted when absent.",
"type": "string"
},
"targetType": {
"description": "Type of the related entity (\"artist\" | \"work\" | \"recording\" | \"label\" | \"url\").",
"type": "string"
},
"type": {
"description": "Relationship role (e.g. \"member of band\", \"producer\", \"writer\", \"performance\").",
"type": "string"
}
},
"required": [
"type",
"targetType"
],
"type": "object"
},
"type": "array"
},
"releases": {
"description": "Releases this recording appears on (may be empty).",
"items": {
"additionalProperties": false,
"description": "A release this recording appears on.",
"properties": {
"country": {
"description": "Release country code. Omitted when absent.",
"type": "string"
},
"date": {
"description": "Release date. Omitted when absent.",
"type": "string"
},
"mbid": {
"description": "Release MBID — chain to musicbrainz_get_release.",
"type": "string"
},
"title": {
"description": "Release title.",
"type": "string"
}
},
"required": [
"mbid",
"title"
],
"type": "object"
},
"type": "array"
},
"title": {
"description": "Recording title.",
"type": "string"
}
},
"type": "object"
}
},
{
"description": "One edition's full detail by MBID: the tracklist (media → tracks → recordings with lengths and recording MBIDs), label + catalog number, barcode, country, release date, format, packaging, text representation (language/script), and a cover-art availability stub. Track lengths are rendered m:ss (stored as milliseconds upstream). For the actual cover image URLs, call musicbrainz_get_cover_art with this release MBID.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false,
"properties": {
"mbid": {
"description": "Release MBID (36-character UUID).",
"type": "string"
}
},
"required": [
"mbid"
],
"type": "object"
},
"name": "musicbrainz_get_release",
"outputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false,
"anyOf": [
{
"not": {
"required": [
"error"
]
},
"required": [
"mbid",
"title",
"artistCredit",
"artistCreditString",
"labelInfo",
"media",
"coverArt"
]
},
{
"required": [
"error"
]
}
],
"properties": {
"artistCredit": {
"description": "Credited artists (may be empty).",
"items": {
"additionalProperties": false,
"description": "One credited artist within an artist credit.",
"properties": {
"artistId": {
"description": "MBID of the credited artist — chain to musicbrainz_get_artist.",
"type": "string"
},
"artistName": {
"description": "Canonical artist name.",
"type": "string"
},
"joinPhrase": {
"description": "Text that joins this credit to the next (e.g. \" feat. \", \" & \"). Omitted when empty.",
"type": "string"
},
"name": {
"description": "Credited name as it appears on the release (may be an alias).",
"type": "string"
}
},
"required": [
"name",
"artistId",
"artistName"
],
"type": "object"
},
"type": "array"
},
"artistCreditString": {
"description": "Display string of the artist credit with join phrases.",
"type": "string"
},
"barcode": {
"description": "Barcode (UPC/EAN). Omitted when absent; empty string upstream means \"known to have none\".",
"type": "string"
},
"country": {
"description": "Release country code. Omitted when absent.",
"type": "string"
},
"coverArt": {
"additionalProperties": false,
"description": "Whether cover art exists (availability stub from WS/2).",
"properties": {
"back": {
"description": "Whether a designated back image exists. Omitted when unknown.",
"type": "boolean"
},
"count": {
"description": "Number of images available. Omitted when unknown.",
"type": "number"
},
"exists": {
"description": "Whether the Cover Art Archive has any artwork for this entity.",
"type": "boolean"
},
"front": {
"description": "Whether a designated front image exists. Omitted when unknown.",
"type": "boolean"
}
},
"required": [
"exists"
],
"type": "object"
},
"date": {
"description": "Release date. Omitted when absent.",
"type": "string"
},
"disambiguation": {
"description": "Short qualifier. Omitted when absent.",
"type": "string"
},
"error": {
"additionalProperties": {},
"description": "Present when the call failed. Absent on success.",
"properties": {
"code": {
"description": "JSON-RPC error code for this failure.",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"type": "integer"
},
"data": {
"additionalProperties": {},
"properties": {
"reason": {
"description": "Machine-readable failure mode. Declared by this tool: `invalid_mbid`: The MBID is malformed or the all-zeros sentinel (MusicBrainz returns HTTP 400). `entity_not_found`: The MBID is well-formed but no release exists with it (MusicBrainz returns HTTP 404). Other values are possible when a failure originates below the handler.",
"examples": [
"invalid_mbid",
"entity_not_found"
],
"type": "string"
},
"recovery": {
"additionalProperties": {},
"description": "Actionable next step for the caller.",
"properties": {
"hint": {
"type": "string"
}
},
"required": [
"hint"
],
"type": "object"
},
"retryable": {
"description": "Whether retrying may succeed.",
"type": "boolean"
}
},
"type": "object"
},
"message": {
"description": "Human-readable description of what went wrong.",
"type": "string"
}
},
"required": [
"code",
"message"
],
"type": "object"
},
"labelInfo": {
"description": "Label / catalog-number pairings (may be empty).",
"items": {
"additionalProperties": false,
"description": "Label + catalog-number pairing for the release.",
"properties": {
"catalogNumber": {
"description": "Catalog number on this release. Omitted when absent.",
"type": "string"
},
"labelId": {
"description": "Label MBID — chain to musicbrainz_get_label. Omitted when absent.",
"type": "string"
},
"labelName": {
"description": "Label name. Omitted when absent.",
"type": "string"
}
},
"type": "object"
},
"type": "array"
},
"language": {
"description": "Text-representation language code. Omitted when absent.",
"type": "string"
},
"mbid": {
"description": "Release MBID.",
"type": "string"
},
"media": {
"description": "Media (discs) with their tracklists (may be empty).",
"items": {
"additionalProperties": false,
"description": "One physical/digital medium (disc) of the release.",
"properties": {
"format": {
"description": "Medium format (CD, Vinyl, Digital Media, …). Omitted when unknown.",
"type": "string"
},
"position": {
"description": "Medium position in the release (disc 1, 2, …). Omitted when absent.",
"type": "number"
},
"title": {
"description": "Medium title, when the disc is named. Omitted when absent.",
"type": "string"
},
"trackCount": {
"description": "Number of tracks on the medium. Omitted when absent.",
"type": "number"
},
"tracks": {
"description": "Tracks on this medium (may be empty).",
"items": {
"additionalProperties": false,
"description": "A track on a medium, linked to its underlying recording.",
"properties": {
"length": {
"description": "Track length as m:ss. Omitted when unknown.",
"type": "string"
},
"number": {
"description": "Printed track number (may differ from position). Omitted when absent.",
"type": "string"
},
"position": {
"description": "Track position on the medium. Omitted when absent.",
"type": "number"
},
"recordingId": {
"description": "Recording MBID — chain to musicbrainz_get_recording. Omitted when absent.",
"type": "string"
},
"title": {
"description": "Track title.",
"type": "string"
}
},
"required": [
"title"
],
"type": "object"
},
"type": "array"
}
},
"required": [
"tracks"
],
"type": "object"
},
"type": "array"
},
"packaging": {
"description": "Packaging type (Jewel Case, Digipak, …). Omitted when absent.",
"type": "string"
},
"releaseGroupId": {
"description": "Parent release-group MBID — chain to musicbrainz_get_release_group. Omitted when absent.",
"type": "string"
},
"script": {
"description": "Text-representation script code. Omitted when absent.",
"type": "string"
},
"status": {
"description": "Release status (Official, Promotion, Bootleg, …). Omitted when absent.",
"type": "string"
},
"title": {
"description": "Release title.",
"type": "string"
}
},
"type": "object"
}
},
{
"description": "Release-group (\"the album\" above specific pressings) by MBID: primary type (Album/Single/EP) and secondary types (Live/Compilation), first-release date, artist credit, the list of releases (editions), tags/genres, and cover-art availability from the Cover Art Archive (image count and front/back flags for the release-group's representative release — the art musicbrainz_get_cover_art returns; use that tool for the image URLs). The embedded releases list is capped at one page (25); for the complete set of editions, call musicbrainz_browse_entities with target_type=release and link.release-group. For a specific edition's tracklist, take a release MBID from the releases list and call musicbrainz_get_release.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false,
"properties": {
"mbid": {
"description": "Release-group MBID (36-character UUID).",
"type": "string"
}
},
"required": [
"mbid"
],
"type": "object"
},
"name": "musicbrainz_get_release_group",
"outputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false,
"anyOf": [
{
"not": {
"required": [
"error"
]
},
"required": [
"mbid",
"title",
"artistCredit",
"artistCreditString",
"releases",
"tags"
]
},
{
"required": [
"error"
]
}
],
"properties": {
"artistCredit": {
"description": "Credited artists (may be empty).",
"items": {
"additionalProperties": false,
"description": "One credited artist within an artist credit.",
"properties": {
"artistId": {
"description": "MBID of the credited artist — chain to musicbrainz_get_artist.",
"type": "string"
},
"artistName": {
"description": "Canonical artist name.",
"type": "string"
},
"joinPhrase": {
"description": "Text that joins this credit to the next (e.g. \" feat. \", \" & \"). Omitted when empty.",
"type": "string"
},
"name": {
"description": "Credited name as it appears on the release (may be an alias).",
"type": "string"
}
},
"required": [
"name",
"artistId",
"artistName"
],
"type": "object"
},
"type": "array"
},
"artistCreditString": {
"description": "Display string of the artist credit with join phrases.",
"type": "string"
},
"cap": {
"description": "The one-page cap that was applied. Absent when not truncated.",
"type": "number"
},
"coverArt": {
"additionalProperties": false,
"description": "Cover-art availability from the Cover Art Archive: the images of the release-group's representative release, the same art musicbrainz_get_cover_art returns (exists: false with count 0 when the archive has none). Omitted when the archive lookup could not complete — the notice says so.",
"properties": {
"back": {
"description": "Whether a designated back image exists. Omitted when unknown.",
"type": "boolean"
},
"count": {
"description": "Number of images available. Omitted when unknown.",
"type": "number"
},
"exists": {
"description": "Whether the Cover Art Archive has any artwork for this entity.",
"type": "boolean"
},
"front": {
"description": "Whether a designated front image exists. Omitted when unknown.",
"type": "boolean"
}
},
"required": [
"exists"
],
"type": "object"
},
"disambiguation": {
"description": "Short qualifier. Omitted when absent.",
"type": "string"
},
"error": {
"additionalProperties": {},
"description": "Present when the call failed. Absent on success.",
"properties": {
"code": {
"description": "JSON-RPC error code for this failure.",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"type": "integer"
},
"data": {
"additionalProperties": {},
"properties": {
"reason": {
"description": "Machine-readable failure mode. Declared by this tool: `invalid_mbid`: The MBID is malformed or the all-zeros sentinel (MusicBrainz returns HTTP 400). `entity_not_found`: The MBID is well-formed but no release-group exists with it (MusicBrainz returns HTTP 404). Other values are possible when a failure originates below the handler.",
"examples": [
"invalid_mbid",
"entity_not_found"
],
"type": "string"
},
"recovery": {
"additionalProperties": {},
"description": "Actionable next step for the caller.",
"properties": {
"hint": {
"type": "string"
}
},
"required": [
"hint"
],
"type": "object"
},
"retryable": {
"description": "Whether retrying may succeed.",
"type": "boolean"
}
},
"type": "object"
},
"message": {
"description": "Human-readable description of what went wrong.",
"type": "string"
}
},
"required": [
"code",
"message"
],
"type": "object"
},
"firstReleaseDate": {
"description": "Earliest release date across all editions. Omitted when absent.",
"type": "string"
},
"mbid": {
"description": "Release-group MBID.",
"type": "string"
},
"notice": {
"description": "Present when the releases list was capped (how to fetch the complete set of editions) and/or when cover-art availability could not be checked (why coverArt is omitted).",
"type": "string"
},
"primaryType": {
"description": "Primary type (Album, Single, EP, Broadcast, Other). Omitted when absent.",
"type": "string"
},
"releases": {
"description": "Releases (editions) in this group (one page; may be empty or capped — use browse for all).",
"items": {
"additionalProperties": false,
"description": "A release (edition) within the release-group.",
"properties": {
"country": {
"description": "Release country code. Omitted when absent.",
"type": "string"
},
"date": {
"description": "Release date. Omitted when absent.",
"type": "string"
},
"disambiguation": {
"description": "Short qualifier. Omitted when absent.",
"type": "string"
},
"mbid": {
"description": "Release MBID — chain to musicbrainz_get_release for the tracklist.",
"type": "string"
},
"status": {
"description": "Release status (Official, Promotion, …). Omitted when absent.",
"type": "string"
},
"title": {
"description": "Release (edition) title.",
"type": "string"
}
},
"required": [
"mbid",
"title"
],
"type": "object"
},
"type": "array"
},
"secondaryTypes": {
"description": "Secondary types (Live, Compilation, Soundtrack, …). Omitted when none.",
"items": {
"type": "string"
},
"type": "array"
},
"shown": {
"description": "Number of releases returned. Absent when not truncated.",
"type": "number"
},
"tags": {
"description": "Community tags/genres (may be empty).",
"items": {
"additionalProperties": false,
"description": "A folksonomy tag or genre with its vote count.",
"properties": {
"count": {
"description": "Community vote count for this tag.",
"type": "number"
},
"name": {
"description": "Tag or genre name.",
"type": "string"
}
},
"required": [
"name",
"count"
],
"type": "object"
},
"type": "array"
},
"title": {
"description": "Release-group title.",
"type": "string"
},
"truncated": {
"description": "True when the releases list hit the one-page cap and more editions exist. Absent when the full set fit in one page.",
"type": "boolean"
}
},
"type": "object"
}
},
{
"description": "Work (a composition — the song as written, distinct from any specific recording) by MBID: type, language(s), ISWCs (the work-level standard identifier), writer/composer/lyricist relationships (with the credited artist MBID), aliases, tags, and the recordings that perform it. The recording relationships are returned in full (the work lookup does not page them).",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false,
"properties": {
"inc_relationships": {
"default": true,
"description": "Include writer/composer relationships, recording relationships, and external links.",
"type": "boolean"
},
"mbid": {
"description": "Work MBID (36-character UUID).",
"type": "string"
}
},
"required": [
"mbid"
],
"type": "object"
},
"name": "musicbrainz_get_work",
"outputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false,
"anyOf": [
{
"not": {
"required": [
"error"
]
},
"required": [
"mbid",
"title",
"languages",
"iswcs",
"aliases",
"tags",
"relationships",
"externalLinks"
]
},
{
"required": [
"error"
]
}
],
"properties": {
"aliases": {
"description": "Alternate titles (may be empty).",
"items": {
"additionalProperties": false,
"description": "An alternate name for the entity.",
"properties": {
"locale": {
"description": "BCP-47 locale of the alias. Omitted when absent.",
"type": "string"
},
"name": {
"description": "Alias name.",
"type": "string"
},
"primary": {
"description": "Whether this is the primary alias for its locale. Omitted when absent.",
"type": "boolean"
},
"sortName": {
"description": "Sortable form of the alias. Omitted when absent.",
"type": "string"
},
"type": {
"description": "Alias type (e.g. \"Artist name\", \"Legal name\"). Omitted when absent.",
"type": "string"
}
},
"required": [
"name"
],
"type": "object"
},
"type": "array"
},
"disambiguation": {
"description": "Short qualifier. Omitted when absent.",
"type": "string"
},
"error": {
"additionalProperties": {},
"description": "Present when the call failed. Absent on success.",
"properties": {
"code": {
"description": "JSON-RPC error code for this failure.",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"type": "integer"
},
"data": {
"additionalProperties": {},
"properties": {
"reason": {
"description": "Machine-readable failure mode. Declared by this tool: `invalid_mbid`: The MBID is malformed or the all-zeros sentinel (MusicBrainz returns HTTP 400). `entity_not_found`: The MBID is well-formed but no work exists with it (MusicBrainz returns HTTP 404). Other values are possible when a failure originates below the handler.",
"examples": [
"invalid_mbid",
"entity_not_found"
],
"type": "string"
},
"recovery": {
"additionalProperties": {},
"description": "Actionable next step for the caller.",
"properties": {
"hint": {
"type": "string"
}
},
"required": [
"hint"
],
"type": "object"
},
"retryable": {
"description": "Whether retrying may succeed.",
"type": "boolean"
}
},
"type": "object"
},
"message": {
"description": "Human-readable description of what went wrong.",
"type": "string"
}
},
"required": [
"code",
"message"
],
"type": "object"
},
"externalLinks": {
"description": "External resource links (url-rels) (may be empty).",
"items": {
"additionalProperties": false,
"description": "An external resource link (url-rel). Where cross-service IDs like Wikidata QID are surfaced.",
"properties": {
"resource": {
"description": "The external URL. Wikidata/Discogs IDs live in the URL path — chain to those servers.",
"type": "string"
},
"type": {
"description": "Link type (e.g. \"wikidata\", \"discogs\", \"official homepage\", \"streaming\").",
"type": "string"
}
},
"required": [
"type",
"resource"
],
"type": "object"
},
"type": "array"
},
"iswcs": {
"description": "ISWCs assigned to this work (may be empty).",
"items": {
"type": "string"
},
"type": "array"
},
"languages": {
"description": "Lyrics languages (ISO codes; may be empty).",
"items": {
"type": "string"
},
"type": "array"
},
"mbid": {
"description": "Work MBID.",
"type": "string"
},
"relationships": {
"description": "Writer/composer/lyricist relationships and recording-rels — the complete set (may be empty).",
"items": {
"additionalProperties": false,
"description": "A typed relationship to another entity (band membership, performer, writer, etc.).",
"properties": {
"attributes": {
"description": "Role modifiers (e.g. \"lead vocals\", \"assistant\", \"co\"). Omitted when none.",
"items": {
"type": "string"
},
"type": "array"
},
"begin": {
"description": "Relationship start date. Omitted when absent.",
"type": "string"
},
"direction": {
"description": "Relationship direction (\"forward\" | \"backward\"). Omitted when absent.",
"type": "string"
},
"end": {
"description": "Relationship end date. Omitted when absent.",
"type": "string"
},
"targetId": {
"description": "MBID of the related entity — chain to the matching get_* tool. Omitted for url targets.",
"type": "string"
},
"targetName": {
"description": "Name/title of the related entity. Omitted when absent.",
"type": "string"
},
"targetType": {
"description": "Type of the related entity (\"artist\" | \"work\" | \"recording\" | \"label\" | \"url\").",
"type": "string"
},
"type": {
"description": "Relationship role (e.g. \"member of band\", \"producer\", \"writer\", \"performance\").",
"type": "string"
}
},
"required": [
"type",
"targetType"
],
"type": "object"
},
"type": "array"
},
"tags": {
"description": "Community tags/genres (may be empty).",
"items": {
"additionalProperties": false,
"description": "A folksonomy tag or genre with its vote count.",
"properties": {
"count": {
"description": "Community vote count for this tag.",
"type": "number"
},
"name": {
"description": "Tag or genre name.",
"type": "string"
}
},
"required": [
"name",
"count"
],
"type": "object"
},
"type": "array"
},
"title": {
"description": "Work title.",
"type": "string"
},
"type": {
"description": "Work type (Song, Symphony, …). Omitted when unknown.",
"type": "string"
}
},
"type": "object"
}
},
{
"description": "Resolve a standard identifier to MusicBrainz entities without a name search — the deterministic path when you already hold an ID. id_type=isrc → recordings (a recording-level code, often shared by several recordings); id_type=iswc → works (a composition-level code); id_type=barcode → releases (UPC/EAN digits; spaces and hyphens are ignored). ISRC and ISWC hit dedicated exact endpoints; barcode is a Lucene search filter so results are ranked (exact match scores 100). The output kind field tells you which entity type came back.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false,
"properties": {
"id_type": {
"description": "Which standard identifier: isrc (recording), iswc (work), or barcode (release).",
"enum": [
"isrc",
"iswc",
"barcode"
],
"type": "string"
},
"value": {
"description": "The identifier value. ISRC e.g. \"USRC17607839\"; ISWC e.g. \"T-010.140.236-1\"; barcode = the UPC/EAN digits, e.g. \"075678164125\" (spaces and hyphens are ignored; any other character, including a wildcard, is rejected).",
"minLength": 1,
"type": "string"
}
},
"required": [
"id_type",
"value"
],
"type": "object"
},
"name": "musicbrainz_lookup_identifier",
"outputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false,
"anyOf": [
{
"not": {
"required": [
"error"
]
},
"required": [
"result"
]
},
{
"required": [
"error"
]
}
],
"properties": {
"error": {
"additionalProperties": {},
"description": "Present when the call failed. Absent on success.",
"properties": {
"code": {
"description": "JSON-RPC error code for this failure.",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"type": "integer"
},
"data": {
"additionalProperties": {},
"properties": {
"reason": {
"description": "Machine-readable failure mode. Declared by this tool: `identifier_not_found`: The identifier is well-formed but resolves to zero entities. `invalid_identifier`: The ISRC/ISWC is malformed (the dedicated endpoint returns HTTP 400), or the barcode contains anything other than digits once spaces and hyphens are removed. Other values are possible when a failure originates below the handler.",
"examples": [
"identifier_not_found",
"invalid_identifier"
],
"type": "string"
},
"recovery": {
"additionalProperties": {},
"description": "Actionable next step for the caller.",
"properties": {
"hint": {
"type": "string"
}
},
"required": [
"hint"
],
"type": "object"
},
"retryable": {
"description": "Whether retrying may succeed.",
"type": "boolean"
}
},
"type": "object"
},
"message": {
"description": "Human-readable description of what went wrong.",
"type": "string"
}
},
"required": [
"code",
"message"
],
"type": "object"
},
"result": {
"description": "The resolved entities, discriminated by `kind` (recordings | works | releases).",
"oneOf": [
{
"additionalProperties": false,
"description": "ISRC result arm: recordings carrying the ISRC.",
"properties": {
"identifier": {
"description": "The looked-up identifier value.",
"type": "string"
},
"kind": {
"const": "recordings",
"description": "ISRC resolved to recordings.",
"type": "string"
},
"recordings": {
"description": "Recordings carrying this ISRC.",
"items": {
"additionalProperties": false,
"description": "A recording carrying the looked-up ISRC.",
"properties": {
"artistCredit": {
"description": "Credited artist string; falls back to \"Unknown artist\" when none is recorded.",
"type": "string"
},
"length": {
"description": "Recording length as m:ss. Omitted when unknown.",
"type": "string"
},
"mbid": {
"description": "Recording MBID — chain to musicbrainz_get_recording.",
"type": "string"
},
"title": {
"description": "Recording title.",
"type": "string"
}
},
"required": [
"mbid",
"title",
"artistCredit"
],
"type": "object"
},
"type": "array"
}
},
"required": [
"kind",
"identifier",
"recordings"
],
"type": "object"
},
{
"additionalProperties": false,
"description": "ISWC result arm: works carrying the ISWC.",
"properties": {
"identifier": {
"description": "The looked-up identifier value.",
"type": "string"
},
"kind": {
"const": "works",
"description": "ISWC resolved to works.",
"type": "string"
},
"works": {
"description": "Works carrying this ISWC.",
"items": {
"additionalProperties": false,
"description": "A work carrying the looked-up ISWC.",
"properties": {
"mbid": {
"description": "Work MBID — chain to musicbrainz_get_work.",
"type": "string"
},
"title": {
"description": "Work title.",
"type": "string"
},
"type": {
"description": "Work type. Omitted when absent.",
"type": "string"
}
},
"required": [
"mbid",
"title"
],
"type": "object"
},
"type": "array"
}
},
"required": [
"kind",
"identifier",
"works"
],
"type": "object"
},
{
"additionalProperties": false,
"description": "Barcode result arm: releases carrying the barcode.",
"properties": {
"identifier": {
"description": "The barcode digits that were searched (spaces and hyphens removed).",
"type": "string"
},
"kind": {
"const": "releases",
"description": "Barcode resolved to releases.",
"type": "string"
},
"releases": {
"description": "Releases carrying this barcode (ranked).",
"items": {
"additionalProperties": false,
"description": "A release carrying the looked-up barcode.",
"properties": {
"artistCredit": {
"description": "Credited artist string.",
"type": "string"
},
"country": {
"description": "Release country code. Omitted when absent.",
"type": "string"
},
"date": {
"description": "Release date. Omitted when absent.",
"type": "string"
},
"mbid": {
"description": "Release MBID — chain to musicbrainz_get_release.",
"type": "string"
},
"score": {
"description": "Lucene relevance score, 0–100 (barcode is a search filter; exact = 100).",
"type": "number"
},
"title": {
"description": "Release title.",
"type": "string"
}
},
"required": [
"mbid",
"title",
"artistCredit",
"score"
],
"type": "object"
},
"type": "array"
}
},
"required": [
"kind",
"identifier",
"releases"
],
"type": "object"
}
]
}
},
"type": "object"
}
},
{
"description": "Full-text search across a MusicBrainz entity type (artist, release-group, release, recording, work, label) using a Lucene query string. Returns ranked matches with MBID, name/title, disambiguation, type, and a 0–100 relevance score (100 = exact). Starting point when resolving a name to an MBID — chain the returned MBID into the matching musicbrainz_get_* tool. Results are in MusicBrainz score-descending order. Supports field-scoped Lucene syntax (e.g. `artist:radiohead AND country:GB`).",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false,
"properties": {
"entityType": {
"description": "Which entity type to search.",
"enum": [
"artist",
"release-group",
"release",
"recording",
"work",
"label"
],
"type": "string"
},
"limit": {
"default": 25,
"description": "Maximum results to return (1–100).",
"maximum": 100,
"minimum": 1,
"type": "integer"
},
"offset": {
"default": 0,
"description": "Result offset for pagination (0-based).",
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
"query": {
"description": "Lucene query string; must contain non-whitespace text. Plain text matches names/titles; field scoping (e.g. `artist:`, `country:`, `tag:`) is supported. Sent to MusicBrainz exactly as given.",
"minLength": 1,
"type": "string"
}
},
"required": [
"entityType",
"query"
],
"type": "object"
},
"name": "musicbrainz_search_entities",
"outputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false,
"anyOf": [
{
"not": {
"required": [
"error"
]
},
"required": [
"entityType",
"results",
"effectiveQuery",
"totalCount"
]
},
{
"required": [
"error"
]
}
],
"properties": {
"effectiveQuery": {
"description": "The query string as sent to MusicBrainz.",
"type": "string"
},
"entityType": {
"description": "The entity type that was searched.",
"type": "string"
},
"error": {
"additionalProperties": {},
"description": "Present when the call failed. Absent on success.",
"properties": {
"code": {
"description": "JSON-RPC error code for this failure.",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"type": "integer"
},
"data": {
"additionalProperties": {},
"properties": {
"reason": {
"description": "Machine-readable failure mode. Declared by this tool: `blank_query`: The query contains only whitespace (it is blank after trimming). Other values are possible when a failure originates below the handler.",
"examples": [
"blank_query"
],
"type": "string"
},
"recovery": {
"additionalProperties": {},
"description": "Actionable next step for the caller.",
"properties": {
"hint": {
"type": "string"
}
},
"required": [
"hint"
],
"type": "object"
},
"retryable": {
"description": "Whether retrying may succeed.",
"type": "boolean"
}
},
"type": "object"
},
"message": {
"description": "Human-readable description of what went wrong.",
"type": "string"
}
},
"required": [
"code",
"message"
],
"type": "object"
},
"notice": {
"description": "Guidance when zero results matched — how to broaden or correct the query.",
"type": "string"
},
"results": {
"description": "Ranked matches, in MusicBrainz score-descending order.",
"items": {
"additionalProperties": false,
"description": "A ranked search hit. Type-specific fields appear only for the relevant entity type.",
"properties": {
"artistCredit": {
"description": "Credited artist string, for release-group/release/recording results. Omitted for artist/label/work.",
"type": "string"
},
"country": {
"description": "Country code, for release/artist/label results. Omitted when absent.",
"type": "string"
},
"date": {
"description": "First-release date (release-group) or release date (release). Omitted when absent.",
"type": "string"
},
"disambiguation": {
"description": "Short qualifier distinguishing same-named entities. Omitted when absent.",
"type": "string"
},
"isrcs": {
"description": "ISRCs on a recording result. Omitted when none.",
"items": {
"type": "string"
},
"type": "array"
},
"iswcs": {
"description": "ISWCs on a work result. Omitted when none.",
"items": {
"type": "string"
},
"type": "array"
},
"length": {
"description": "Recording length as m:ss. Omitted when unknown.",
"type": "string"
},
"mbid": {
"description": "MusicBrainz identifier (UUID) — chain into the matching musicbrainz_get_* tool.",
"type": "string"
},
"name": {
"description": "Entity name (artist/label) or title (release-group/release/recording/work).",
"type": "string"
},
"score": {
"description": "Lucene relevance score, 0–100. 100 = exact match; low scores are weak partial matches.",
"type": "number"
},
"type": {
"description": "Entity subtype (artist type, release-group primary type, work type, label type). Omitted when absent.",
"type": "string"
}
},
"required": [
"mbid",
"name",
"score"
],
"type": "object"
},
"type": "array"
},
"totalCount": {
"description": "Total matches upstream before the limit/offset window.",
"type": "number"
}
},
"type": "object"
}
}
]
}Verify it yourself
curl -s https://api.teppi.xyz/v1/evidence/sha256:41b7219b38f290dc1fb25f12a386f85c51d76350582bdf9f6fe7371480adba71 | sha256sum