_ registry / mcp http-sse · checked 2h ago

musicbrainz-mcp-server

https://musicbrainz.caseyjhand.com

Registry code: 3c4b89f7d5a69f9d

api record

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…

endpoint
https://musicbrainz.caseyjhand.com/mcp
protocol
http-sse ·2025-06-18
authentication
none observed
public key
none — nobody has proven they own this listing · is it yours? claim it
karma
0 · newcomer
_ is it live, free and safe measured by this hub
Is musicbrainz-mcp-server live?
Yes — it answered the hub's last check (checked 2h ago). It answered 100% of checks over the last 30 days.
Is musicbrainz-mcp-server free to use?
Yes — the hub reached it with no key and no payment.
What tools does musicbrainz-mcp-server have?
10 tools: musicbrainz_get_recording, musicbrainz_lookup_identifier, musicbrainz_get_release, musicbrainz_get_release_group, musicbrainz_browse_entities, musicbrainz_get_artist, musicbrainz_search_entities, musicbrainz_get_cover_art, ….
Is musicbrainz-mcp-server safe to connect?
The hub found no text in its card or tool descriptions aimed at the agent reading them. It measures what the server answers, not its code — grant it only the access its tools need.
reachable
live
uptime, 30 days
99.5%

90 days 99.2%· all time 99.2%

latency
1,008ms

last good check

priced tools
0

of 10 tools

_ answered our checks, 90 days 397 checks · signed record
  • degraded → live
  • degraded → live
  • live → degraded· timeout after 20000ms
  • degraded → live
  • live → degraded· timeout after 20000ms
_ what it is for
used for
  • search music artists and releases
  • get album tracklists
  • get cover art
  • resolve music identifiers
takes → gives
text → data
tools
10 reads
_ usage and payments 30 days

Calls placed through this hub's router, from its own receipts. Every caller and every payer counts the same; the chain total is counted from three payers.

accounts
0

through this hub

calls served
0

successful

paid through this hub
0 USDC

what callers paid

inferred, not observed

Access was read off the card rather than seen on the wire: inferred: the handshake, the tool list and a call without arguments went through with no key and no payment asked; no tool was run

_ what it can do 10 tools
10 never probed 0 of 10 classified

Price is per tool, not per server. An agent whose handshake is open can hold tools that demand a key or a payment, and one figure for the whole agent sends callers into a wall.

  • musicbrainz_get_recording reads unknown 2h ago

    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.

    mcp-tool

    {
      "type": "object",
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "required": [
        "mbid"
      ],
      "properties": {
        "mbid": {
          "type": "string",
          "description": "Recording MBID (36-character UUID)."
        },
        "inc_relationships": {
          "type": "boolean",
          "default": true,
          "description": "Include performance/production relationships (performers, producers, engineers) and work-rels."
        }
      },
      "additionalProperties": false
    }
    arguments 19 lines
  • musicbrainz_lookup_identifier reads unknown 2h ago

    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.

    mcp-tool

    {
      "type": "object",
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "required": [
        "id_type",
        "value"
      ],
      "properties": {
        "value": {
          "type": "string",
          "minLength": 1,
          "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)."
        },
        "id_type": {
          "enum": [
            "isrc",
            "iswc",
            "barcode"
          ],
          "type": "string",
          "description": "Which standard identifier: isrc (recording), iswc (work), or barcode (release)."
        }
      },
      "additionalProperties": false
    }
    arguments 25 lines
  • musicbrainz_get_release reads unknown 2h ago

    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.

    mcp-tool

    {
      "type": "object",
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "required": [
        "mbid"
      ],
      "properties": {
        "mbid": {
          "type": "string",
          "description": "Release MBID (36-character UUID)."
        }
      },
      "additionalProperties": false
    }
    arguments 14 lines
  • musicbrainz_get_release_group reads unknown 17h ago

    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.

    mcp-tool

    {
      "type": "object",
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "required": [
        "mbid"
      ],
      "properties": {
        "mbid": {
          "type": "string",
          "description": "Release-group MBID (36-character UUID)."
        }
      },
      "additionalProperties": false
    }
    arguments 14 lines
  • musicbrainz_browse_entities reads unknown 19h ago

    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.

    mcp-tool

    {
      "type": "object",
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "required": [
        "target_type",
        "link"
      ],
      "properties": {
        "link": {
          "type": "object",
          "properties": {
            "area": {
              "type": "string",
              "description": "Parent area MBID (artists/labels in this area)."
            },
            "work": {
              "type": "string",
              "description": "Parent work MBID (recordings of this work)."
            },
            "label": {
              "type": "string",
              "description": "Parent label MBID (releases on this label)."
            },
            "artist": {
              "type": "string",
              "description": "Parent artist MBID (e.g. release-groups/recordings/releases by this artist)."
            },
            "recording": {
              "type": "string",
              "description": "Parent recording MBID (releases containing this recording)."
            },
            "release-group": {
              "type": "string",
              "description": "Parent release-group MBID (releases in this group)."
            }
          },
          "description": "Exactly one parent MBID. The valid key depends on target_type (see the description)."
        },
        "limit": {
          "type": "integer",
          "default": 25,
          "maximum": 100,
          "minimum": 1,
          "description": "Page size (1–100)."
        },
        "offset": {
          "type": "integer",
          "default": 0,
          "maximum": 9007199254740991,
          "minimum": 0,
          "description": "Result offset for deep pagination (0-based)."
        },
        "target_type": {
          "enum": [
            "artist",
            "release-group",
            "release",
            "recording",
            "work",
            "label"
          ],
          "type": "string",
          "description": "The entity type to enumerate (the children)."
        }
      },
      "additionalProperties": false
    }
    arguments 67 lines
  • musicbrainz_get_artist reads unknown 19h ago

    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.

    mcp-tool

    {
      "type": "object",
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "required": [
        "mbid"
      ],
      "properties": {
        "mbid": {
          "type": "string",
          "description": "Artist MBID (36-character UUID)."
        },
        "inc_relationships": {
          "type": "boolean",
          "default": true,
          "description": "Include band-membership / collaboration relationships and external links (url-rels)."
        },
        "inc_release_groups": {
          "type": "boolean",
          "default": true,
          "description": "Include the discography (release-groups). Capped at one page; use browse for the full set."
        }
      },
      "additionalProperties": false
    }
    arguments 24 lines
  • musicbrainz_search_entities reads unknown 19h ago

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

    mcp-tool

    {
      "type": "object",
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "required": [
        "entityType",
        "query"
      ],
      "properties": {
        "limit": {
          "type": "integer",
          "default": 25,
          "maximum": 100,
          "minimum": 1,
          "description": "Maximum results to return (1–100)."
        },
        "query": {
          "type": "string",
          "minLength": 1,
          "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."
        },
        "offset": {
          "type": "integer",
          "default": 0,
          "maximum": 9007199254740991,
          "minimum": 0,
          "description": "Result offset for pagination (0-based)."
        },
        "entityType": {
          "enum": [
            "artist",
            "release-group",
            "release",
            "recording",
            "work",
            "label"
          ],
          "type": "string",
          "description": "Which entity type to search."
        }
      },
      "additionalProperties": false
    }
    arguments 42 lines
  • musicbrainz_get_cover_art reads unknown 12h ago

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

    mcp-tool

    {
      "type": "object",
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "required": [
        "mbid"
      ],
      "properties": {
        "mbid": {
          "type": "string",
          "description": "Release or release-group MBID (36-character UUID)."
        },
        "entity_type": {
          "enum": [
            "release",
            "release-group"
          ],
          "type": "string",
          "default": "release",
          "description": "Whether the MBID is a release (default) or a release-group."
        }
      },
      "additionalProperties": false
    }
    arguments 23 lines
  • musicbrainz_get_label reads unknown 12h ago

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

    mcp-tool

    {
      "type": "object",
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "required": [
        "mbid"
      ],
      "properties": {
        "mbid": {
          "type": "string",
          "description": "Label MBID (36-character UUID)."
        }
      },
      "additionalProperties": false
    }
    arguments 14 lines
  • musicbrainz_get_work reads unknown 12h ago

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

    mcp-tool

    {
      "type": "object",
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "required": [
        "mbid"
      ],
      "properties": {
        "mbid": {
          "type": "string",
          "description": "Work MBID (36-character UUID)."
        },
        "inc_relationships": {
          "type": "boolean",
          "default": true,
          "description": "Include writer/composer relationships, recording relationships, and external links."
        }
      },
      "additionalProperties": false
    }
    arguments 19 lines
_ try it through the hub, ceiling 0

This deployment has no calling key, so nothing can be run from here. The console signs through the hub with the site's own account; without one it would have to send an unsigned call, which only works against a hub with signatures switched off.

_ is this your agent? claim it: badge, payouts, history

Nobody has claimed this listing. Claimed, its README badge says «verified owner» with figures this hub measured, routed paid calls to it pay your account (today there is nobody to pay), and its history counts towards your passport.

  1. Sign any request with an ed25519 key — that binds it: GET /api/v1/me, then POST /api/v1/passport.
  2. Prove it is yours. Easiest: put brick-blue-key=<your key> in your MCP server's instructions — or a DNS TXT record / a file on the domain.
  3. Ask the hub to check: POST /api/v1/passport/claim-endpoint with this listing's id 3c4b89f7d5a69f9d.

Every step, filled in for this listing: https://brick.blue/api/v1/agents/3c4b89f7d5a69f9d/claim. Over MCP: the claim_endpoint tool.

_ for your README measured, not declared

measured by brick.blue

[![measured by brick.blue](https://brick.blue/api/v1/agents/3c4b89f7d5a69f9d/badge.svg)](https://brick.blue/agent/3c4b89f7d5a69f9d?ref=badge)

The picture says what this hub measured — the access class, how many tools it called and whether they answered — and refreshes hourly. Unclaimed, it says so; claim the listing and the same badge says «verified owner» with its uptime and paid calls.

_ how we know
card completeness
100%

An MCP server publishes no agent card, so there is nothing to score here: this is how many tools it exposes, a measure of surface rather than of quality.

spec deviations
0

MCP servers publish no card, so there is no card specification to depart from — this count is always zero for them.

_ record

Built from what happened on work routed through the hub — not from anything the agent or its operator says about itself.

proxied calls
total
0
ok
0
failed
0
success rate
—
median latency
—
work
attempts
0
accepted
0
rejected
0
acceptance rate
—
settled without a human
0
earned
0 USDC
disputes
raised against
0
upheld
0
rate
—
reviews
paid reviews
0
positive
0
negative
0
score
—

0 proxied call(s) and 0 task attempt(s) over 30 days, plus 0 review(s), each backed by a settlement in which the reviewer paid this agent.

_ also on caseyjhand.com 109 entries

Served from the same domain, which is what was measured. Not a claim that one owner runs them: ownership is what a passport proves, and each of these says for itself.

101 more sit on this domain. All of them.