io.github.cyanheads/musicbrainz-mcp-server
REMOTE · MUSICBRAINZ.CASEYJHAND.COM · 2 COMPONENTS
Search MusicBrainz artists, releases, works, labels; resolve ISRC/ISWC/barcode; fetch cover art.
Available components
Last scanned (11 hours ago)
Scores higher than 97% of remote servers
Reachable. Last reached 5 Nov 2026.
Category Entertainment and Games
How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →
Endpoint Security83
- The endpoint's TLS certificate is valid, in date, and uses a strong key. View diagnostics → Pass
- No authorisation is required to call this server. Every tool declares its destructiveHint and none is destructive, so open access doesn't expose one. See how to fix → View diagnostics → Partial
- HTTPS is enforced; there's no plaintext access path. View diagnostics → Pass
- The HSTS (Strict-Transport-Security) header is present. View diagnostics → Pass
- DNSSEC is configured correctly; the domain's records validate against the full chain to the root. View diagnostics → Pass
Transport & Reachability100
- Verified streamable-http transport via a live MCP handshake. View diagnostics → Pass
Schema Quality & AI Usability76
- 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
- AI-judged instruction clarity (excellent).Pass
- Context-footprint check failed: tool/resource definitions use about 2772 tokens (~252/item across 11 items; 10 tools + 1 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management100
- No destabilizing schema changes in the last 30 days.Pass
Tool Coverage100
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 100% of tool parameters carry a description.Pass
- Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Tool Safety100
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- We read all 10 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
- An AI judge read all 12 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a current MCP spec version (2026-07-28).Pass
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 3 Nov 26 +2
- The server rewrote its instructions, which are the text every model session reads security
- Tool “musicbrainz_browse_entities” rewrote its description, which is the text the model reads security
- Tool “musicbrainz_get_artist” rewrote its description, which is the text the model reads security
- Tool “musicbrainz_get_label” rewrote its description, which is the text the model reads security
- Tool “musicbrainz_get_release” rewrote its description, which is the text the model reads security
- Tool “musicbrainz_get_release_group” rewrote its description, which is the text the model reads security
- Tool “musicbrainz_get_work” rewrote its description, which is the text the model reads security
- Tool “musicbrainz_search_entities” rewrote its description, which is the text the model reads security
- Schema quality: 2485 → 2772 ▼ functional
- Schema quality: unverified → 100 ▲ functional
- New resource “musicbrainz-guide” functional
- Server version: 0.2.1 → 0.3.0 functional
- “musicbrainz_browse_entities” added an optional parameter “status” cosmetic
- “musicbrainz_browse_entities” added an optional parameter “type” cosmetic
- “musicbrainz_get_recording” reworded the description of “inc_relationships” cosmetic
- “musicbrainz_search_entities” reworded the description of “offset” cosmetic
- 23 Oct 26 0
- The server rewrote its instructions, which are the text every model session reads security
- Tool “musicbrainz_get_work” rewrote its description, which is the text the model reads security
- Tool “musicbrainz_get_release” rewrote its description, which is the text the model reads security
- Tool “musicbrainz_get_recording” rewrote its description, which is the text the model reads security
- Tool “musicbrainz_get_cover_art” rewrote its description, which is the text the model reads security
- Tool “musicbrainz_browse_entities” rewrote its description, which is the text the model reads security
- Schema quality: 206 → 248 ▼ functional
- Server version: 0.2.0 → 0.2.1 functional
- “musicbrainz_get_cover_art” added an optional parameter “limit” cosmetic
- “musicbrainz_get_release” added an optional parameter “media_offset” cosmetic
- “musicbrainz_get_release” added an optional parameter “media_limit” cosmetic
- “musicbrainz_get_cover_art” added an optional parameter “offset” cosmetic
- “musicbrainz_search_entities” reworded the description of “limit” cosmetic
- “musicbrainz_lookup_identifier” reworded the description of “value” cosmetic
- “musicbrainz_get_work” reworded the description of “inc_relationships” cosmetic
- “musicbrainz_browse_entities” reworded the description of “limit” cosmetic
- 13 Oct 26 −1
- The server rewrote its instructions, which are the text every model session reads security
- Tool “musicbrainz_get_work” rewrote its description, which is the text the model reads security
- Tool “musicbrainz_search_entities” rewrote its description, which is the text the model reads security
- Tool “musicbrainz_get_recording” rewrote its description, which is the text the model reads security
- Tool “musicbrainz_get_artist” rewrote its description, which is the text the model reads security
- Tool “musicbrainz_browse_entities” rewrote its description, which is the text the model reads security
- Server version: 0.1.9 → 0.2.0 functional
- “musicbrainz_get_release_group” reworded the description of “mbid” cosmetic
- “musicbrainz_get_work” reworded the description of “mbid” cosmetic
- “musicbrainz_get_release” reworded the description of “mbid” cosmetic
- “musicbrainz_get_recording” reworded the description of “mbid” cosmetic
- “musicbrainz_get_label” reworded the description of “mbid” cosmetic
- “musicbrainz_get_cover_art” reworded the description of “mbid” cosmetic
- “musicbrainz_get_artist” reworded the description of “mbid” cosmetic
- 28 Sept 26 0
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 25 Sept 26 0
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 22 Sept 26 0
- Tool “musicbrainz_lookup_identifier” rewrote its description, which is the text the model reads security
- Tool “musicbrainz_get_release_group” rewrote its description, which is the text the model reads security
- Tool “musicbrainz_get_cover_art” rewrote its description, which is the text the model reads security
- Server version: 0.1.7 → 0.1.8 functional
- “musicbrainz_lookup_identifier” reworded the description of “value” cosmetic
- “musicbrainz_search_entities” reworded the description of “query” cosmetic
- 20 Sept 26 0
- Server version: 0.1.6 → 0.1.7 functional
- 9 Sept 26 0
- Stability: 0.97 → pass security
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 5 Nov 2026 · Probed https://musicbrainz.caseyjhand.com/mcp
TLS valid
Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .
| Subject | Issuer | Valid from | Valid until | Key | Signature | Serial |
|---|---|---|---|---|---|---|
| CN=caseyjhand.com | CN=WE1,O=Google Trust Services,C=US | 2 Nov 2026 | 31 Jan 2027 | ECDSA 256 | ECDSA-SHA256 | 995a30681ab772540e934241ca1d576c |
| SANs: caseyjhand.com, *.caseyjhand.com | ||||||
| CN=WE1,O=Google Trust Services,C=US (CA) | CN=GTS Root R4,O=Google Trust Services LLC,C=US | 13 Dec 2023 | 20 Feb 2029 | ECDSA 256 | ECDSA-SHA384 | 7ff31977972c224a76155d13b6d685e3 |
| CN=GTS Root R4,O=Google Trust Services LLC,C=US (CA) | CN=GlobalSign Root CA,OU=Root CA,O=GlobalSign nv-sa,C=BE | 15 Nov 2023 | 28 Jan 2028 | ECDSA 384 | SHA256-RSA | 7fe530bf331343bedd821610493d8a1b |
Background: What to check on a remote MCP endpoint →
DNSSEC secure
Validation of musicbrainz.caseyjhand.com. — Secure
| Zone | DS | Keys | Algorithms | Outcome |
|---|---|---|---|---|
| . | trust_anchor | 20326, 38696 | 8, 8 | Verified |
| com. | present | 19718 | 13 | Verified |
| caseyjhand.com. | present | 2371 | 13 | Verified |
| musicbrainz.caseyjhand.com. | Verified address RRset verified with the apex keys |
Authentication No authorisation required
The endpoint answered without asking for a token. Anyone who knows the URL can reach it.
| Result | No authorisation required |
|---|---|
| HTTP status | 200 |
| Header | Value |
|---|---|
| strict-transport-security | max-age=63072000; includeSubDomains; preload |
| x-content-type-options | nosniff |
Background: How OAuth 2.1 works in the 2026 MCP spec →
Transports 2 probes
| Transport | URL | Outcome | Status | Location |
|---|---|---|---|---|
| streamable-http | https://musicbrainz.caseyjhand.com/mcp | Verified | 200 | |
| http (plaintext) | http://musicbrainz.caseyjhand.com/mcp | HTTPS enforced | 301 | https://musicbrainz.caseyjhand.com/mcp |
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
musicbrainz_browse_entities musicbrainz-mcp-server: browse entities ~488
Paginate entities linked to one parent MBID. Accepted parents by target: artist → area, recording, release, release-group, work; label → area, release; release-group → artist, release; release → area, artist, label, recording, release-group, track_artist; recording → artist, release, work; work → artist. track_artist enumerates releases crediting an artist on tracks but not at release level. Artist release-groups and release-group editions embed one upstream page in get_* lookups; use this tool for the complete entity set. Recording browse returns identities, not performance attributes/dates or ordered release tracks: use musicbrainz_get_recording for work relationships and musicbrainz_get_release for tracks. Provide exactly one valid parent link. offset pages to any depth; totalCount is the exact filtered upstream entity total. Optional type/status filters apply only on supported parent pairs; preserve applied filters on continuation. Release rows carry status, other entity subtypes use type; release-groups include secondaryTypes and recordings include firstReleaseDate when available.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | Positive integer page size (default 25); values above 100 are clamped to 100 with a notice. With MUSICBRAINZ_CLAMP_OVERSIZED_LIMITS=off, maximum 100 is enforced. |
| link | object | yes | Exactly one parent MBID. The valid key depends on target_type (see the description). |
| offset | integer | – | Result offset for deep pagination (0-based). |
| status | string | – | Pipe-separated statuses for release by artist/label/recording/release-group/track_artist: official, promotion, bootleg, pseudo-release, withdrawn, cancelled. Tokens are trimmed/lowercased and unioned… |
| target_type | string | yes | The entity type to enumerate (the children). |
| type | string | – | Pipe-separated release types: album, single, ep, broadcast, other, audio drama, audiobook, compilation, demo, dj-mix, field recording, interview, live, mixtape/street, remix, soundtrack, spokenword.… |
| Name | Type | Req | Description |
|---|---|---|---|
| cap | number | – | The page size that was applied. Absent when not truncated. |
| entities | array | – | This page of linked entities, in upstream order. |
| error | object | – | Present when the call failed. Absent on success. |
| linkMbid | string | – | The parent MBID that was browsed. |
| linkType | string | – | The parent link type used (artist, track_artist, label, release-group, release, recording, work, or area). |
| notice | string | – | How to page further when results remain, or guidance when empty. |
| offset | number | – | The offset used for this page. |
| shown | number | – | Number of entities returned in this page. Absent when not truncated. |
| status | string | – | Canonical applied pipe-separated status filter; preserve on continuation. |
| targetType | string | – | The entity type that was enumerated. |
| totalCount | number | – | True total number of linked entities upstream (the {type}-count field). |
| truncated | boolean | – | True when more entities remain beyond this page (offset + shown < totalCount). Absent when the page is complete. |
| type | string | – | Canonical applied pipe-separated type filter; preserve on continuation. |
No examples provided.
musicbrainz_get_artist musicbrainz-mcp-server: get artist ~197
Artist profile by MBID: type, country, life span, gender, area with areaId, birth/formation and death/dissolution areas, IPI/ISNI identifiers, aliases, tags/genres, release-groups, band-membership / collaboration relationships, and external links. Chain areaId into musicbrainz_browse_entities link.area. Release-groups embed one upstream page (25); relationships are not capped. For the complete release-group list, call musicbrainz_browse_entities with target_type=release-group and link.artist.
| Name | Type | Req | Description |
|---|---|---|---|
| inc_relationships | boolean | – | Include band-membership / collaboration relationships and external links (url-rels). |
| inc_release_groups | boolean | – | Include the discography (release-groups). Capped at one page; use browse for the full set. |
| mbid | string | yes | Artist MBID (hyphenated hexadecimal UUID; surrounding whitespace and uppercase accepted). |
| Name | Type | Req | Description |
|---|---|---|---|
| aliases | array | – | Alternate names (may be empty). |
| area | string | – | Associated area name. Omitted when unknown. |
| areaId | string | – | Area MBID for musicbrainz_browse_entities link.area. Omitted when unknown. |
| beginArea | object | – | Birth or formation area. Omitted when unknown. |
| cap | number | – | The one-page cap that was applied. Absent when not truncated. |
| country | string | – | ISO country code. Omitted when unknown. |
| disambiguation | string | – | Short qualifier distinguishing same-named artists. Omitted when absent. |
| endArea | object | – | Death or dissolution area. Omitted when unknown. |
| error | object | – | Present when the call failed. Absent on success. |
| externalLinks | array | – | External resource links (url-rels) — Wikidata, Discogs, official site (may be empty). |
| gender | string | – | Gender, for person-type artists. Omitted when unknown/inapplicable. |
| ipis | array | – | IPI identifiers as exact strings in upstream order (may be empty). |
| isnis | array | – | ISNI identifiers as exact strings in upstream order (may be empty). |
| lifeSpan | object | – | Birth/death or formation/dissolution span. Omitted when unknown. |
| mbid | string | – | Artist MBID. |
| name | string | – | Artist name. |
| notice | string | – | How to fetch the complete discography when truncated. |
| relationships | array | – | Band membership and collaboration relationships (may be empty). |
| releaseGroups | array | – | Discography — release-groups (one page; may be empty or capped). |
| shown | number | – | Number of release-groups returned. Absent when not truncated. |
| sortName | string | – | Sortable name form. Omitted when absent. |
| tags | array | – | Community tags/genres with vote counts (may be empty). |
| truncated | boolean | – | True when the discography hit the one-page cap and more release-groups exist. Absent when the full set fit in one page. |
| type | string | – | Artist type (Person, Group, Orchestra, …). Omitted when unknown. |
No examples provided.
musicbrainz_get_cover_art musicbrainz-mcp-server: get cover art ~241
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. limit defaults to 25 and clamps above 100; offset defaults to 0. Pages retain archive order, totalCount counts all images, and hasArt describes the full archive even on an empty page. Follow the notice for the next offset. No art is a successful empty result; an unknown MBID fails with entity_not_found after a bounded MusicBrainz check. A release-group resolves to a representative release's art. URLs are linked, never rehosted; image copyright stays with rights holders.
| Name | Type | Req | Description |
|---|---|---|---|
| entity_type | string | – | Whether the MBID is a release (default) or a release-group. |
| limit | integer | – | Maximum images returned (default 25; values above 100 clamp to 100 with a notice). |
| mbid | string | yes | Release or release-group MBID (hyphenated hexadecimal UUID; surrounding whitespace and uppercase accepted). |
| offset | integer | – | Zero-based image offset in archive order (default 0). |
| Name | Type | Req | Description |
|---|---|---|---|
| cap | number | – | Applied image limit when more remain. |
| entityType | string | – | Whether the MBID was treated as a release or release-group. |
| error | object | – | Present when the call failed. Absent on success. |
| hasArt | boolean | – | Whether any cover art exists for this entity. |
| images | array | – | Selected cover-art images in archive order (empty for no art or an exhausted page). |
| mbid | string | – | The MBID that was queried. |
| notice | string | – | Combined limit clamp, continuation, exhausted page, or no-art/existence-unconfirmed guidance. |
| offset | number | – | Effective zero-based image offset in archive order. |
| representativeRelease | string | – | For a release-group query, the release MBID whose art was returned. Omitted for direct release queries. |
| shown | number | – | Images returned when more remain. |
| totalCount | number | – | Exact image total before the limit and offset window. |
| truncated | boolean | – | True when images remain after this nonempty page. |
No examples provided.
musicbrainz_get_label musicbrainz-mcp-server: get label ~162
Label by MBID: type (Original Production, Reissue, Imprint, …), country, life span, label code (the LC number), area and areaId, IPI/ISNI identifiers, aliases, tags, ownership/imprint/distribution relationships, and external links (url-rels — Wikidata, Discogs, official site). Chain areaId into musicbrainz_browse_entities link.area. 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).
| Name | Type | Req | Description |
|---|---|---|---|
| mbid | string | yes | Label MBID (hyphenated hexadecimal UUID; surrounding whitespace and uppercase accepted). |
| Name | Type | Req | Description |
|---|---|---|---|
| aliases | array | – | Alternate names (may be empty). |
| area | string | – | Associated area name. Omitted when unknown. |
| areaId | string | – | Area MBID for musicbrainz_browse_entities link.area. Omitted when unknown. |
| country | string | – | ISO country code. Omitted when unknown. |
| disambiguation | string | – | Short qualifier. Omitted when absent. |
| error | object | – | Present when the call failed. Absent on success. |
| externalLinks | array | – | External resource links (url-rels) (may be empty). |
| ipis | array | – | IPI identifiers as exact strings in upstream order (may be empty). |
| isnis | array | – | ISNI identifiers as exact strings in upstream order (may be empty). |
| labelCode | number | – | Label code (LC number), without the "LC" prefix. Omitted when absent. |
| lifeSpan | object | – | Founding/dissolution span. Omitted when unknown. |
| mbid | string | – | Label MBID. |
| name | string | – | Label name. |
| relationships | array | – | Label ownership, imprint and distribution relationships in upstream order, uncapped (may be empty). |
| sortName | string | – | Sortable name form. Omitted when absent. |
| tags | array | – | Community tags/genres (may be empty). |
| type | string | – | Label type. Omitted when unknown. |
No examples provided.
musicbrainz_get_recording musicbrainz-mcp-server: get recording ~169
Recording (a specific performance, distinct from the abstract work) by MBID: length, artist credits, ISRCs, one upstream page of release appearances with completeness metadata, work relationships, and performer/production credits with attributes and dates. Relationships are not capped. Enumerate releases with musicbrainz_browse_entities (target_type=release, link.recording, offset=0); embedded and browse order may differ. Browse recording by work enumerates recording entities; this tool supplies their work relationship details.
| Name | Type | Req | Description |
|---|---|---|---|
| inc_relationships | boolean | – | Include performance/production, work and recording relationships (samples, mashups, music videos, DJ mixes), and external links. |
| mbid | string | yes | Recording MBID (hyphenated hexadecimal UUID; surrounding whitespace and uppercase accepted). |
| Name | Type | Req | Description |
|---|---|---|---|
| artistCredit | array | – | Credited artists (may be empty). |
| artistCreditString | string | – | Display string of the artist credit with join phrases. |
| disambiguation | string | – | Short qualifier. Omitted when absent. |
| error | object | – | Present when the call failed. Absent on success. |
| externalLinks | array | – | External resource links (url-rels) (may be empty). |
| firstReleaseDate | string | – | Earliest release date for this recording. Omitted when absent. |
| isrcs | array | – | ISRCs assigned to this recording (may be empty). |
| length | string | – | Recording length as m:ss. Omitted when unknown. |
| mbid | string | – | Recording MBID. |
| relationships | array | – | Performance/production, work and recording relationships in upstream order, uncapped (may be empty). |
| releaseAppearanceSummary | object | – | Completeness evidence derived only from this recording lookup. |
| releases | array | – | One upstream page of release appearances (up to 25; may be empty). See releaseAppearanceSummary for completeness. |
| title | string | – | Recording title. |
No examples provided.
musicbrainz_get_release musicbrainz-mcp-server: get release ~194
One edition by MBID: ordered media with tracks, track-specific artist credits when supplied, lengths and recording MBIDs, label + catalog number, barcode, country, release date, packaging, text representation, external links, and a cover-art availability stub. media_offset (default 0) and media_limit (default 20, no maximum) select whole media after normalization; mediaTotal and trackTotal describe the full release. Follow the notice to retrieve remaining media. The release resource retains the complete raw tracklist. Track lengths are m:ss. For image URLs, call musicbrainz_get_cover_art.
| Name | Type | Req | Description |
|---|---|---|---|
| mbid | string | yes | Release MBID (hyphenated hexadecimal UUID; surrounding whitespace and uppercase accepted). |
| media_limit | integer | – | Maximum whole media returned (default 20; no upper bound). |
| media_offset | integer | – | Zero-based medium offset in release order (default 0). |
| Name | Type | Req | Description |
|---|---|---|---|
| artistCredit | array | – | Credited artists (may be empty). |
| artistCreditString | string | – | Display string of the artist credit with join phrases. |
| barcode | string | – | Barcode (UPC/EAN). Omitted when absent; empty string upstream means "known to have none". |
| cap | number | – | Requested media limit when more remain. |
| country | string | – | Release country code. Omitted when absent. |
| coverArt | object | – | Whether cover art exists (availability stub from WS/2). |
| date | string | – | Release date. Omitted when absent. |
| disambiguation | string | – | Short qualifier. Omitted when absent. |
| error | object | – | Present when the call failed. Absent on success. |
| externalLinks | array | – | External links for this edition, such as Discogs release pages (may be empty). |
| labelInfo | array | – | Label / catalog-number pairings (may be empty). |
| language | string | – | Text-representation language code. Omitted when absent. |
| mbid | string | – | Release MBID. |
| media | array | – | Selected media in release order, with complete tracklists for each medium (may be empty). |
| mediaOffset | number | – | Effective zero-based medium offset. |
| mediaTotal | number | – | Exact number of media in the whole normalized release. |
| notice | string | – | Next media_offset, exhaustion, or no-media guidance. |
| packaging | string | – | Packaging type (Jewel Case, Digipak, …). Omitted when absent. |
| releaseGroupId | string | – | Parent release-group MBID — chain to musicbrainz_get_release_group. Omitted when absent. |
| script | string | – | Text-representation script code. Omitted when absent. |
| shown | number | – | Number of media returned when more remain. |
| status | string | – | Release status (Official, Promotion, Bootleg, …). Omitted when absent. |
| title | string | – | Release title. |
| trackTotal | number | – | Exact number of track occurrences in the whole normalized release, independent of upstream trackCount. |
| truncated | boolean | – | True when media remain after this nonempty page. |
No examples provided.
musicbrainz_get_release_group musicbrainz-mcp-server: get release group ~194
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, external album links, 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.
| Name | Type | Req | Description |
|---|---|---|---|
| mbid | string | yes | Release-group MBID (hyphenated hexadecimal UUID; surrounding whitespace and uppercase accepted). |
| Name | Type | Req | Description |
|---|---|---|---|
| artistCredit | array | – | Credited artists (may be empty). |
| artistCreditString | string | – | Display string of the artist credit with join phrases. |
| cap | number | – | The one-page cap that was applied. Absent when not truncated. |
| coverArt | object | – | 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 archiv… |
| disambiguation | string | – | Short qualifier. Omitted when absent. |
| error | object | – | Present when the call failed. Absent on success. |
| externalLinks | array | – | External album links, such as Wikidata and Discogs master pages (may be empty). |
| firstReleaseDate | string | – | Earliest release date across all editions. Omitted when absent. |
| mbid | string | – | Release-group MBID. |
| notice | string | – | 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). |
| primaryType | string | – | Primary type (Album, Single, EP, Broadcast, Other). Omitted when absent. |
| releases | array | – | Releases (editions) in this group (one page; may be empty or capped — use browse for all). |
| secondaryTypes | array | – | Secondary types (Live, Compilation, Soundtrack, …). Omitted when none. |
| shown | number | – | Number of releases returned. Absent when not truncated. |
| tags | array | – | Community tags/genres (may be empty). |
| title | string | – | Release-group title. |
| truncated | boolean | – | True when the releases list hit the one-page cap and more editions exist. Absent when the full set fit in one page. |
No examples provided.
musicbrainz_get_work musicbrainz-mcp-server: get work ~221
Work (a composition, distinct from a recording) by MBID: type, languages, ISWCs, ordered work attributes (rights-society registrations, musical key and other metadata), writers/composers/lyricists, movements, arrangements, aliases, tags, and external links. Attributes remain available when relationships are disabled. Follow work target MBIDs with this tool; direction, orderingKey, and targetDisambiguation distinguish parts and arrangements without reordering relationships. This server returns the first 25 recording relationships with their exact total and actual truncation disclosure, preserving all other relationships. Browse recording entities with musicbrainz_browse_entities (target_type=recording, link.work), then use musicbrainz_get_recording for work relationship attributes and dates; browse alone does not return those details.
| Name | Type | Req | Description |
|---|---|---|---|
| inc_relationships | boolean | – | Include writer/composer, movement/arrangement and recording relationships, and external links. |
| mbid | string | yes | Work MBID (hyphenated hexadecimal UUID; surrounding whitespace and uppercase accepted). |
| Name | Type | Req | Description |
|---|---|---|---|
| aliases | array | – | Alternate titles (may be empty). |
| attributes | array | – | Work attributes in upstream order, including repeated types (may be empty). |
| cap | number | – | Server-side recording relationship cap, when truncated. |
| disambiguation | string | – | Short qualifier. Omitted when absent. |
| error | object | – | Present when the call failed. Absent on success. |
| externalLinks | array | – | External resource links (url-rels) (may be empty). |
| iswcs | array | – | ISWCs assigned to this work (may be empty). |
| languages | array | – | Lyrics languages (ISO codes; may be empty). |
| mbid | string | – | Work MBID. |
| notice | string | – | Recording enumeration and relationship-detail retrieval guidance when truncated. |
| relationships | array | – | All non-recording relationships and the first 25 recording relationships in upstream order (may be empty). |
| shown | number | – | Number of recording relationships returned when truncated. |
| tags | array | – | Community tags/genres (may be empty). |
| title | string | – | Work title. |
| totalCount | number | – | Exact number of recording relationships before the server-side slice. Absent when relationships are disabled. |
| truncated | boolean | – | True only when recording relationships were omitted beyond 25. |
| type | string | – | Work type (Song, Symphony, …). Omitted when unknown. |
No examples provided.
musicbrainz_lookup_identifier musicbrainz-mcp-server: lookup identifier ~308
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.
| Name | Type | Req | Description |
|---|---|---|---|
| id_type | string | yes | Which standard identifier: isrc (recording), iswc (work), or barcode (release). |
| value | string | yes | ISRC: compact CCXXXYYNNNNN or grouped CC-XXX-YY-NNNNN (e.g. GBAYE9701274 or GB-AYE-97-01274), case-insensitive with surrounding whitespace. ISWC: T plus ten digits, optional hyphen after T, optional… |
| Name | Type | Req | Description |
|---|---|---|---|
| error | object | – | Present when the call failed. Absent on success. |
| result | – | – | The resolved entities, discriminated by `kind` (recordings | works | releases). |
No examples provided.
musicbrainz_search_entities musicbrainz-mcp-server: search entities ~333
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, subtype where applicable, release status, release-group secondary types, recording first-release dates, and a 0–100 relevance score (100 = exact). Release rows use status; other entity subtypes use type. 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`). Only the first 500 matches are accessible; narrow the query or use musicbrainz_browse_entities for complete linked sets.
| Name | Type | Req | Description |
|---|---|---|---|
| entityType | string | yes | Which entity type to search. |
| limit | integer | – | Positive integer page size (default 25); values above 100 are clamped to 100 with a notice. With MUSICBRAINZ_CLAMP_OVERSIZED_LIMITS=off, maximum 100 is enforced. |
| offset | integer | – | Result offset for pagination (0-based, below 500). A page crossing the 500-match ceiling is reduced to the remaining window. |
| query | string | yes | 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. |
| Name | Type | Req | Description |
|---|---|---|---|
| effectiveQuery | string | – | The query string as sent to MusicBrainz. |
| entityType | string | – | The entity type that was searched. |
| error | object | – | Present when the call failed. Absent on success. |
| notice | string | – | Limit clamp and pagination guidance, including zero matches, exhausted pages, and empty-page discrepancies. |
| offset | number | – | The effective zero-based result offset used for this page. |
| results | array | – | Ranked matches, in MusicBrainz score-descending order. |
| totalCount | number | – | Total matches upstream before the limit/offset window. |
No examples provided.
How do I install the io.github.cyanheads/musicbrainz-mcp-server server?
io.github.cyanheads/musicbrainz-mcp-server is a hosted endpoint at https://musicbrainz.caseyjhand.com/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
remote · musicbrainz.caseyjhand.com
claude mcp add --transport http cyanheads-musicbrainz-mcp-server 'https://musicbrainz.caseyjhand.com/mcp'
What is the io.github.cyanheads/musicbrainz-mcp-server server?
io.github.cyanheads/musicbrainz-mcp-server is listed in the public MCP registry as io.github.cyanheads/musicbrainz-mcp-server. Search MusicBrainz artists, releases, works, labels; resolve ISRC/ISWC/barcode; fetch cover art. This page covers its hosted endpoint (https://musicbrainz.caseyjhand.com/mcp).
Is the io.github.cyanheads/musicbrainz-mcp-server server safe to use?
io.github.cyanheads/musicbrainz-mcp-server scores 89 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the io.github.cyanheads/musicbrainz-mcp-server server expose?
io.github.cyanheads/musicbrainz-mcp-server exposes 10 tools: musicbrainz_search_entities, musicbrainz_get_artist, musicbrainz_get_release_group, musicbrainz_get_release, musicbrainz_get_recording, and 5 more. Their descriptions and schemas cost roughly 2,507 tokens of context every time the server is loaded.
Does the io.github.cyanheads/musicbrainz-mcp-server server require authentication?
No. We connected to io.github.cyanheads/musicbrainz-mcp-server without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.
Is the io.github.cyanheads/musicbrainz-mcp-server server still maintained?
io.github.cyanheads/musicbrainz-mcp-server is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.