Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

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.

+2 this week 89 Trust /100

Last scanned (14 hours ago)

Scores higher than 97% of remote servers

Reachable. Last reached 5 Nov 2026.

Category Entertainment and Games

Trust breakdown (7 categories)

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. Nothing on it is marked destructive, but we can't show that an anonymous caller can only read: full credit needs the server to list at least one tool and every tool to be verifiably read-only. We use a best-effort check of tool names and descriptions to tell read-only tools from tools that change things, so some genuinely read-only tools may not get full credit. Names that start with a read verb (get, list, read, search and similar) and accurate readOnlyHint annotations help. Meet that to earn full credit, or require authorisation. 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
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
What we tested

Checks we ran (13)

  • TLS certificate
  • Authorization
  • HTTPS
  • HSTS header
  • DNSSEC
  • Transport
  • Schema quality
  • Stability
  • Tool coverage
  • Injection markers
  • Destructive annotations
  • Judged manipulation
  • MCP protocol

Does not apply to this hosted endpoint (2)

  • Supply Chain SecurityScored on package channels only. This is a hosted endpoint, so there is nothing to install or inspect.
  • Provenance & TransparencyScored on package channels only. This is a hosted endpoint, so there is nothing to install or inspect.

The score does not measure everything. What the score does not measure →

Changelog

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
Diagnostics

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. DS published 19718 13 Verified
caseyjhand.com. DS published 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
MCP tools · 10 exposed · ~2,507 tokens

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 →

Tool Tokens
musicbrainz_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.

NameTypeReqDescription
limitinteger–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.
linkobjectyesExactly one parent MBID. The valid key depends on target_type (see the description).
offsetinteger–Result offset for deep pagination (0-based).
statusstring–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_typestringyesThe entity type to enumerate (the children).
typestring–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.…
NameTypeReqDescription
capnumber–The page size that was applied. Absent when not truncated.
entitiesarray–This page of linked entities, in upstream order.
errorobject–Present when the call failed. Absent on success.
linkMbidstring–The parent MBID that was browsed.
linkTypestring–The parent link type used (artist, track_artist, label, release-group, release, recording, work, or area).
noticestring–How to page further when results remain, or guidance when empty.
offsetnumber–The offset used for this page.
shownnumber–Number of entities returned in this page. Absent when not truncated.
statusstring–Canonical applied pipe-separated status filter; preserve on continuation.
targetTypestring–The entity type that was enumerated.
totalCountnumber–True total number of linked entities upstream (the {type}-count field).
truncatedboolean–True when more entities remain beyond this page (offset + shown < totalCount). Absent when the page is complete.
typestring–Canonical applied pipe-separated type filter; preserve on continuation.

No examples provided.

musicbrainz_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.

NameTypeReqDescription
inc_relationshipsboolean–Include band-membership / collaboration relationships and external links (url-rels).
inc_release_groupsboolean–Include the discography (release-groups). Capped at one page; use browse for the full set.
mbidstringyesArtist MBID (hyphenated hexadecimal UUID; surrounding whitespace and uppercase accepted).
NameTypeReqDescription
aliasesarray–Alternate names (may be empty).
areastring–Associated area name. Omitted when unknown.
areaIdstring–Area MBID for musicbrainz_browse_entities link.area. Omitted when unknown.
beginAreaobject–Birth or formation area. Omitted when unknown.
capnumber–The one-page cap that was applied. Absent when not truncated.
countrystring–ISO country code. Omitted when unknown.
disambiguationstring–Short qualifier distinguishing same-named artists. Omitted when absent.
endAreaobject–Death or dissolution area. Omitted when unknown.
errorobject–Present when the call failed. Absent on success.
externalLinksarray–External resource links (url-rels) — Wikidata, Discogs, official site (may be empty).
genderstring–Gender, for person-type artists. Omitted when unknown/inapplicable.
ipisarray–IPI identifiers as exact strings in upstream order (may be empty).
isnisarray–ISNI identifiers as exact strings in upstream order (may be empty).
lifeSpanobject–Birth/death or formation/dissolution span. Omitted when unknown.
mbidstring–Artist MBID.
namestring–Artist name.
noticestring–How to fetch the complete discography when truncated.
relationshipsarray–Band membership and collaboration relationships (may be empty).
releaseGroupsarray–Discography — release-groups (one page; may be empty or capped).
shownnumber–Number of release-groups returned. Absent when not truncated.
sortNamestring–Sortable name form. Omitted when absent.
tagsarray–Community tags/genres with vote counts (may be empty).
truncatedboolean–True when the discography hit the one-page cap and more release-groups exist. Absent when the full set fit in one page.
typestring–Artist type (Person, Group, Orchestra, …). Omitted when unknown.

No examples provided.

musicbrainz_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.

NameTypeReqDescription
entity_typestring–Whether the MBID is a release (default) or a release-group.
limitinteger–Maximum images returned (default 25; values above 100 clamp to 100 with a notice).
mbidstringyesRelease or release-group MBID (hyphenated hexadecimal UUID; surrounding whitespace and uppercase accepted).
offsetinteger–Zero-based image offset in archive order (default 0).
NameTypeReqDescription
capnumber–Applied image limit when more remain.
entityTypestring–Whether the MBID was treated as a release or release-group.
errorobject–Present when the call failed. Absent on success.
hasArtboolean–Whether any cover art exists for this entity.
imagesarray–Selected cover-art images in archive order (empty for no art or an exhausted page).
mbidstring–The MBID that was queried.
noticestring–Combined limit clamp, continuation, exhausted page, or no-art/existence-unconfirmed guidance.
offsetnumber–Effective zero-based image offset in archive order.
representativeReleasestring–For a release-group query, the release MBID whose art was returned. Omitted for direct release queries.
shownnumber–Images returned when more remain.
totalCountnumber–Exact image total before the limit and offset window.
truncatedboolean–True when images remain after this nonempty page.

No examples provided.

musicbrainz_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).

NameTypeReqDescription
mbidstringyesLabel MBID (hyphenated hexadecimal UUID; surrounding whitespace and uppercase accepted).
NameTypeReqDescription
aliasesarray–Alternate names (may be empty).
areastring–Associated area name. Omitted when unknown.
areaIdstring–Area MBID for musicbrainz_browse_entities link.area. Omitted when unknown.
countrystring–ISO country code. Omitted when unknown.
disambiguationstring–Short qualifier. Omitted when absent.
errorobject–Present when the call failed. Absent on success.
externalLinksarray–External resource links (url-rels) (may be empty).
ipisarray–IPI identifiers as exact strings in upstream order (may be empty).
isnisarray–ISNI identifiers as exact strings in upstream order (may be empty).
labelCodenumber–Label code (LC number), without the "LC" prefix. Omitted when absent.
lifeSpanobject–Founding/dissolution span. Omitted when unknown.
mbidstring–Label MBID.
namestring–Label name.
relationshipsarray–Label ownership, imprint and distribution relationships in upstream order, uncapped (may be empty).
sortNamestring–Sortable name form. Omitted when absent.
tagsarray–Community tags/genres (may be empty).
typestring–Label type. Omitted when unknown.

No examples provided.

musicbrainz_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.

NameTypeReqDescription
inc_relationshipsboolean–Include performance/production, work and recording relationships (samples, mashups, music videos, DJ mixes), and external links.
mbidstringyesRecording MBID (hyphenated hexadecimal UUID; surrounding whitespace and uppercase accepted).
NameTypeReqDescription
artistCreditarray–Credited artists (may be empty).
artistCreditStringstring–Display string of the artist credit with join phrases.
disambiguationstring–Short qualifier. Omitted when absent.
errorobject–Present when the call failed. Absent on success.
externalLinksarray–External resource links (url-rels) (may be empty).
firstReleaseDatestring–Earliest release date for this recording. Omitted when absent.
isrcsarray–ISRCs assigned to this recording (may be empty).
lengthstring–Recording length as m:ss. Omitted when unknown.
mbidstring–Recording MBID.
relationshipsarray–Performance/production, work and recording relationships in upstream order, uncapped (may be empty).
releaseAppearanceSummaryobject–Completeness evidence derived only from this recording lookup.
releasesarray–One upstream page of release appearances (up to 25; may be empty). See releaseAppearanceSummary for completeness.
titlestring–Recording title.

No examples provided.

musicbrainz_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.

NameTypeReqDescription
mbidstringyesRelease MBID (hyphenated hexadecimal UUID; surrounding whitespace and uppercase accepted).
media_limitinteger–Maximum whole media returned (default 20; no upper bound).
media_offsetinteger–Zero-based medium offset in release order (default 0).
NameTypeReqDescription
artistCreditarray–Credited artists (may be empty).
artistCreditStringstring–Display string of the artist credit with join phrases.
barcodestring–Barcode (UPC/EAN). Omitted when absent; empty string upstream means "known to have none".
capnumber–Requested media limit when more remain.
countrystring–Release country code. Omitted when absent.
coverArtobject–Whether cover art exists (availability stub from WS/2).
datestring–Release date. Omitted when absent.
disambiguationstring–Short qualifier. Omitted when absent.
errorobject–Present when the call failed. Absent on success.
externalLinksarray–External links for this edition, such as Discogs release pages (may be empty).
labelInfoarray–Label / catalog-number pairings (may be empty).
languagestring–Text-representation language code. Omitted when absent.
mbidstring–Release MBID.
mediaarray–Selected media in release order, with complete tracklists for each medium (may be empty).
mediaOffsetnumber–Effective zero-based medium offset.
mediaTotalnumber–Exact number of media in the whole normalized release.
noticestring–Next media_offset, exhaustion, or no-media guidance.
packagingstring–Packaging type (Jewel Case, Digipak, …). Omitted when absent.
releaseGroupIdstring–Parent release-group MBID — chain to musicbrainz_get_release_group. Omitted when absent.
scriptstring–Text-representation script code. Omitted when absent.
shownnumber–Number of media returned when more remain.
statusstring–Release status (Official, Promotion, Bootleg, …). Omitted when absent.
titlestring–Release title.
trackTotalnumber–Exact number of track occurrences in the whole normalized release, independent of upstream trackCount.
truncatedboolean–True when media remain after this nonempty page.

No examples provided.

musicbrainz_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.

NameTypeReqDescription
mbidstringyesRelease-group MBID (hyphenated hexadecimal UUID; surrounding whitespace and uppercase accepted).
NameTypeReqDescription
artistCreditarray–Credited artists (may be empty).
artistCreditStringstring–Display string of the artist credit with join phrases.
capnumber–The one-page cap that was applied. Absent when not truncated.
coverArtobject–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…
disambiguationstring–Short qualifier. Omitted when absent.
errorobject–Present when the call failed. Absent on success.
externalLinksarray–External album links, such as Wikidata and Discogs master pages (may be empty).
firstReleaseDatestring–Earliest release date across all editions. Omitted when absent.
mbidstring–Release-group MBID.
noticestring–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).
primaryTypestring–Primary type (Album, Single, EP, Broadcast, Other). Omitted when absent.
releasesarray–Releases (editions) in this group (one page; may be empty or capped — use browse for all).
secondaryTypesarray–Secondary types (Live, Compilation, Soundtrack, …). Omitted when none.
shownnumber–Number of releases returned. Absent when not truncated.
tagsarray–Community tags/genres (may be empty).
titlestring–Release-group title.
truncatedboolean–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 ~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.

NameTypeReqDescription
inc_relationshipsboolean–Include writer/composer, movement/arrangement and recording relationships, and external links.
mbidstringyesWork MBID (hyphenated hexadecimal UUID; surrounding whitespace and uppercase accepted).
NameTypeReqDescription
aliasesarray–Alternate titles (may be empty).
attributesarray–Work attributes in upstream order, including repeated types (may be empty).
capnumber–Server-side recording relationship cap, when truncated.
disambiguationstring–Short qualifier. Omitted when absent.
errorobject–Present when the call failed. Absent on success.
externalLinksarray–External resource links (url-rels) (may be empty).
iswcsarray–ISWCs assigned to this work (may be empty).
languagesarray–Lyrics languages (ISO codes; may be empty).
mbidstring–Work MBID.
noticestring–Recording enumeration and relationship-detail retrieval guidance when truncated.
relationshipsarray–All non-recording relationships and the first 25 recording relationships in upstream order (may be empty).
shownnumber–Number of recording relationships returned when truncated.
tagsarray–Community tags/genres (may be empty).
titlestring–Work title.
totalCountnumber–Exact number of recording relationships before the server-side slice. Absent when relationships are disabled.
truncatedboolean–True only when recording relationships were omitted beyond 25.
typestring–Work type (Song, Symphony, …). Omitted when unknown.

No examples provided.

musicbrainz_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.

NameTypeReqDescription
id_typestringyesWhich standard identifier: isrc (recording), iswc (work), or barcode (release).
valuestringyesISRC: 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…
NameTypeReqDescription
errorobject–Present when the call failed. Absent on success.
result––The resolved entities, discriminated by `kind` (recordings | works | releases).

No examples provided.

musicbrainz_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.

NameTypeReqDescription
entityTypestringyesWhich entity type to search.
limitinteger–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.
offsetinteger–Result offset for pagination (0-based, below 500). A page crossing the 500-match ceiling is reduced to the remaining window.
querystringyesLucene 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.
NameTypeReqDescription
effectiveQuerystring–The query string as sent to MusicBrainz.
entityTypestring–The entity type that was searched.
errorobject–Present when the call failed. Absent on success.
noticestring–Limit clamp and pagination guidance, including zero matches, exhausted pages, and empty-page discrepancies.
offsetnumber–The effective zero-based result offset used for this page.
resultsarray–Ranked matches, in MusicBrainz score-descending order.
totalCountnumber–Total matches upstream before the limit/offset window.

No examples provided.

Install

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

# add to Claude Code
claude mcp add --transport http cyanheads-musicbrainz-mcp-server 'https://musicbrainz.caseyjhand.com/mcp'
Common questions

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.

What did VerifyMCP test on the io.github.cyanheads/musicbrainz-mcp-server server?

VerifyMCP ran 13 checks on io.github.cyanheads/musicbrainz-mcp-server, covering TLS certificate, Authorization, HTTPS, HSTS header and 9 more. Supply Chain Security and Provenance & Transparency do not apply to a hosted endpoint, so they were not tested. The score does not measure everything, and the scoring documentation lists what it leaves out.