Musicbrainz Mcp

io.github.chrischallPublished by GitHub account chrischallv1.3.0Updated Nov 7, 2026

MusicBrainz MCP — search/browse music metadata, cover art, and submit tags/ratings/collections

VerifiedSTDIODesktop onlyKnowledge & MemoryMedia & Design

Overview

AI-generated overview

Local MCP server for MusicBrainz that lets an assistant search and browse music metadata, fetch cover art, and optionally submit tags, ratings and collection…

What you can do
  • Search MusicBrainz entity types with Lucene queries and get ranked matches with MBIDs
  • Look up entities by MBID with linked sub-entities, browse everything linked to an entity, and resolve pasted musicbrainz.org URLs
  • Fetch Cover Art Archive image URLs and thumbnails for releases and release groups
  • Check API reachability and whether OAuth write access is configured
  • Submit your tags, set your rating, and add or remove entities in your collections (OAuth, confirmed first)
When to use it
Useful when you want an assistant to answer questions about artists, releases, recordings, labels and works, pull cover art links, or maintain your own MusicBrainz tags, ratings and collections from a chat session.
Requirements
Runs locally as a Node.js stdio server, typically launched with npx, so Node.js and network access to MusicBrainz are needed. Read tools need no credentials. Write tools need an OAuth application and the environment variables MUSICBRAINZ_OAUTH_CLIENT_ID, MUSICBRAINZ_OAUTH_CLIENT_SECRET and MUSICBRAINZ_OAUTH_REFRESH_TOKEN with tag, rating and collection scopes. MUSICBRAINZ_USER_AGENT is an optional override.
Before you install
The write tools change data on your MusicBrainz account: tags, ratings and collection membership. They require OAuth client credentials and a refresh token, which are secrets to keep out of shared configs. Confirmation behaviour depends on the client and on MCP_CONFIRM_MODE, MCP_CONFIRM_ELICITATION and MCP_CONFIRM_SECRET; the auto mode lets the model proceed after reviewing the preview itself. The README states the project is developed and maintained by AI and used at your own discretion.

Installation

In SourceWeft

  1. Open Musicbrainz Mcp in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

musicbrainz-mcp

[CI] [npm] [license]

An MCP server for MusicBrainz, the open music encyclopedia. It gives Claude live access to MusicBrainz metadata — artists, releases, recordings, labels, works, and more — plus Cover Art Archive images, and (optionally) lets you submit your own tags, ratings, and collection edits.

Developed and maintained by AI (Claude Code). Use at your own discretion.

Tools

Read (no credentials required):

ToolWhat it does
musicbrainz_searchSearch any entity type with a Lucene query; returns ranked matches + MBIDs
musicbrainz_lookupLook up an entity by MBID, with inc subqueries for linked data
musicbrainz_browseList all entities linked to another (e.g. every release by an artist)
musicbrainz_cover_artCover Art Archive image URLs for a release / release-group
musicbrainz_resolveTurn a pasted musicbrainz.org URL into its entity
musicbrainz_healthcheckVerify connectivity and whether OAuth writes are configured

Write (OAuth, confirmed before sending):

ToolWhat it does
musicbrainz_submit_tagsApply user tags to an entity on your account
musicbrainz_submit_ratingSet your 0–100 rating for an entity
musicbrainz_modify_collectionAdd/remove entities in one of your collections

Each write asks you to confirm before it makes any network call — see Confirmations.

Every read above takes a view, except musicbrainz_cover_art. It defaults to compact, which strips image and avatar URLs — a subtractive rule, so it cannot drop a field nobody knew was there; view: "full" returns MusicBrainz's payload untouched. musicbrainz_cover_art takes none on purpose: the image URLs are its answer, and stripping them would not shrink the response, it would empty it.

Install

This is a Node MCP server (stdio). Point your MCP host at it:

json
{  "mcpServers": {    "musicbrainz": {      "command": "npx",      "args": ["-y", "musicbrainz-mcp"]    }  }}

Reads work immediately. MusicBrainz asks clients to make at most one request per second — the server throttles itself to stay within that limit, so large browses are paced automatically.

Enabling the write tools (optional)

  1. Register an application at musicbrainz.org/account/applications (redirect URI urn:ietf:wg:oauth:2.0:oob).
  2. Complete the OAuth flow with the tag, rating, and collection scopes to obtain a refresh token.
  3. Provide these via your MCP host's env (or a local .env):
MUSICBRAINZ_OAUTH_CLIENT_ID=...MUSICBRAINZ_OAUTH_CLIENT_SECRET=...MUSICBRAINZ_OAUTH_REFRESH_TOKEN=...

Confirmations

Every write asks you first. A client that can show a confirmation prompt (Claude Code) shows one, with the entity, tags / rating / collection change. A client that cannot (claude.ai, Claude Desktop) gets a two-step flow instead: the first call sends nothing and returns a confirmation-required preview — the exact XML for tags and ratings, the method and path for collections — plus a confirmToken; only a repeat of the same call with that token submits. A token acts once, and changing any argument between the two calls invalidates it.

variabledefault
MCP_CONFIRM_MODEask-userWhat a write does on a client that cannot show a confirmation prompt (claude.ai, Claude Desktop). ask-user: two steps — the first call does nothing and returns a preview plus a token, and the model must get your approval in chat before calling again with it. auto: the same two steps, but the model may use the token after reviewing the preview itself. refuse: writes are refused on such clients. A client that can show prompts (Claude Code) always gets the real prompt, unless MCP_CONFIRM_ELICITATION=off. An unrecognised value is treated as refuse.
MCP_CONFIRM_ELICITATIONonoff never shows a confirmation prompt, so every client gets the MCP_CONFIRM_MODE behaviour. Set it for a client that says it can show prompts but never does (the write hangs — opencode 2.0.x). Any other value is treated as on, with a warning on stderr.
MCP_CONFIRM_TTL_SECONDS600How long a token stays valid.
MCP_CONFIRM_SECRETrandom per processSigning key; set it only if tokens must survive a server restart.

Development

bash
npm installnpm run buildnpm test

See CLAUDE.md for architecture and docs/MUSICBRAINZ-API.md for the pinned API shapes.

License

MIT. Data from MusicBrainz, licensed under CC0 / CC BY-NC-SA.

Source: README.md at commit e44157f

Tools

9

musicbrainz_lookup

Look up a MusicBrainz entity by MBID

Fetch a single MusicBrainz entity (artist, release, recording, release-group, label, work, area, place, event, instrument, series, genre, url) by its MBID. Use `inc` to pull linked sub-entities and relationships, e.g. inc: ["releases","release-groups"] on an artist, or ["recordings","labels"] on a release, or ["artist-credits","url-rels"] on most entities. Your own tags/ratings (inc: ["user-tags"], ["user-ratings"], …) need OAuth (MUSICBRAINZ_OAUTH_*). Read-only. Data from MusicBrainz (https://musicbrainz.org), the open music encyclopedia.

Parametersincmbidrequiredviewentityrequired

musicbrainz_browse

Browse MusicBrainz entities linked to another

List all entities of one type directly linked to a given entity — e.g. every release by an artist (entity: "release", linkedBy: "artist", mbid: <artist>), recordings on a release, releases in a collection (a private collection needs OAuth: MUSICBRAINZ_OAUTH_*), or events at a place. This is the complete, paged set for a relationship (unlike search, which ranks fuzzy matches). Use `inc` for extra detail and limit/offset to page (max 100/page). Read-only. Data from MusicBrainz (https://musicbrainz.org), the open music encyclopedia.

ParametersincmbidrequiredviewlimitentityrequiredoffsetlinkedByrequired

musicbrainz_cover_art

Get Cover Art Archive images for a release

Fetch Cover Art Archive image metadata for a release or release-group MBID — front/back cover URLs, thumbnails, and image types. Returns the image URLs (you can open or download them); it does not embed the bytes. Errors clearly when no art exists for the MBID. Read-only. Data from MusicBrainz (https://musicbrainz.org), the open music encyclopedia.

Parametersmbidrequiredentityrequired

musicbrainz_resolve

Resolve a MusicBrainz URL to its entity

Turn a musicbrainz.org URL (e.g. https://musicbrainz.org/artist/<mbid> or /release-group/<mbid>) into the underlying entity by extracting its type + MBID and looking it up. Handy when a user pastes a MusicBrainz link. Pass `inc` to include linked sub-entities. Read-only. Data from MusicBrainz (https://musicbrainz.org), the open music encyclopedia.

Parametersincurlrequiredview

musicbrainz_healthcheck

Verify MusicBrainz connectivity

Confirm the MusicBrainz API is reachable (and our User-Agent accepted) by looking up a stable entity, and report whether the OAuth write path is configured. Reports {ok, reachable, oauth_configured} with a plain-English hint. Read-only.

Takes no parameters.

musicbrainz_submit_tags

Submit user tags to MusicBrainz

Apply user tags to a MusicBrainz entity on YOUR account (needs OAuth: MUSICBRAINZ_OAUTH_* with the `tag` scope). Default `vote: upvote` adds the tags; `downvote` opposes them; `withdraw` removes your vote. Asks the user to confirm first: a confirmation prompt where the client supports one; otherwise the first call returns a preview and a confirmToken, and only a repeat call with that token proceeds (see MCP_CONFIRM_MODE). The preview shows the exact XML; nothing is sent before confirmation. Data from MusicBrainz (https://musicbrainz.org), the open music encyclopedia.

ParametersmbidrequiredtagsrequiredvoteentityrequiredconfirmToken

musicbrainz_submit_rating

Submit a user rating to MusicBrainz

Set YOUR rating for a MusicBrainz entity (needs OAuth: MUSICBRAINZ_OAUTH_* with the `rating` scope). Rating is 0–100 (MusicBrainz shows it as 1–5 stars in steps of 20; 0 removes your rating). Asks the user to confirm first: a confirmation prompt where the client supports one; otherwise the first call returns a preview and a confirmToken, and only a repeat call with that token proceeds (see MCP_CONFIRM_MODE). Nothing is sent before confirmation. Data from MusicBrainz (https://musicbrainz.org), the open music encyclopedia.

ParametersmbidrequiredentityrequiredratingrequiredconfirmToken

musicbrainz_modify_collection

Add or remove entities in a MusicBrainz collection

Add or remove entities (releases, artists, recordings, release-groups, works, labels, places, areas, events) in one of YOUR MusicBrainz collections (needs OAuth: MUSICBRAINZ_OAUTH_* with the `collection` scope). Get the collection MBID from its URL (musicbrainz.org/collection/<mbid>). Asks the user to confirm first: a confirmation prompt where the client supports one; otherwise the first call returns a preview and a confirmToken, and only a repeat call with that token proceeds (see MCP_CONFIRM_MODE). Nothing is changed before confirmation. Data from MusicBrainz (https://musicbrainz.org), the open music encyclopedia.

ParametersmbidsrequiredactionrequiredcollectionrequiredentityTyperequiredconfirmToken

Version history

13
  1. v1.3.0LatestNov 4, 2026
  2. v1.2.7Oct 16, 2026
  3. v1.2.6Oct 10, 2026
  4. v1.2.5Oct 7, 2026
  5. v1.2.4Oct 5, 2026
  6. v1.2.3Oct 3, 2026
  7. v1.2.1Sep 25, 2026
  8. v1.2.0Sep 24, 2026
  9. v1.1.2Sep 23, 2026
  10. v1.1.1Sep 21, 2026
  11. v1.1.0Sep 20, 2026
  12. v1.0.0Sep 18, 2026
  13. v0.3.2Sep 16, 2026

Score

90% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts
  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts