{"id":"ea8560c9-691d-4f98-8420-7c498b31b576","entityType":"agent","slug":"clawhub-chrischall-musicbrainz-mcp","name":"musicbrainz-mcp","canonicalUrl":"https://www.xpersona.co/agent/clawhub-chrischall-musicbrainz-mcp","canonicalPath":"/agent/clawhub-chrischall-musicbrainz-mcp","generatedAt":"2026-10-10T08:46:29.899Z","source":"CLAWHUB","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"editorial-content","verified":true,"confidence":"high","updatedAt":"2026-10-10T02:04:18.399Z","emptyReason":null},"description":"Search and browse the MusicBrainz music encyclopedia (artists, releases, recordings, labels, works), fetch Cover Art Archive images, resolve musicbrainz.org URLs, and — with OAuth configured — submit your own tags, ratings, and collection edits. Use when the user asks about music metadata, discographies, album/artist/recording details, MBIDs, cover art, or wants to tag/rate music on MusicBrainz. Skill: musicbrainz-mcp Owner: chrischall Summary: Search and browse the MusicBrainz music encyclopedia (artists, releases, recordings, labels, works), fetch Cover Art Archive images, resolve musicbrainz.org URLs, and — with OAuth configured — submit your own tags, ratings, and collection edits. Use when the user asks about music metadata, discographies, album/artist/recording details, MBIDs, cover art, or wants to ta","descriptionLabel":"Technical summary","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. 1.8K downloads reported by the source. Last updated 10/10/2026.","installCommand":"clawhub skill install s17cjx1a349nz5apaqp02vgz4h85728z:musicbrainz-mcp","sourceUrl":"https://clawhub.ai/chrischall/musicbrainz-mcp","homepage":"https://clawhub.ai/chrischall/skills/musicbrainz-mcp","primaryLinks":[{"label":"View on ClawHub","url":"https://clawhub.ai/chrischall/musicbrainz-mcp","kind":"source"},{"label":"Homepage","url":"https://clawhub.ai/chrischall/skills/musicbrainz-mcp","kind":"homepage"}],"safetyScore":84,"overallRank":62,"popularityScore":65,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"Search and browse the MusicBrainz music encyclopedia (artists, releases, recordings, labels, works), fetch Cover Art Archive images, resolve musicbrainz.org URL"},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-10-10T02:04:18.399Z","emptyReason":null},"protocols":[{"protocol":"OPENCLEW","label":"OpenClaw","status":"self-declared","notes":"Declared in the public agent profile."}],"capabilities":[],"verifiedCount":0,"selfDeclaredCount":1,"capabilityMatrix":{"rows":[{"key":"OPENCLEW","type":"protocol","support":"unknown","confidenceSource":"profile","notes":"Listed on profile"}],"flattenedTokens":"protocol:OPENCLEW|unknown|profile"}},"adoption":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-10T02:04:18.399Z","emptyReason":null},"stars":null,"forks":null,"downloads":1786,"packageName":null,"latestVersion":"1.2.6","tractionLabel":"1.8K downloads"},"release":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-10T02:04:18.399Z","emptyReason":null},"lastUpdatedAt":"2026-10-10T02:04:18.399Z","lastCrawledAt":"2026-10-10T02:04:18.399Z","lastIndexedAt":null,"nextCrawlAt":"2026-10-11T02:04:18.399Z","lastVerifiedAt":null,"highlights":[{"version":"1.2.6","createdAt":"2026-10-09T23:26:23.006Z","changelog":"- Removed unused documentation file: skill-card.md - Clarified confirmation prompt behavior for writes in SKILL.md (mentioning `MCP_CONFIRM_ELICITATION=off`) - No user-facing logic or API changes; documentation update and cleanup only","fileCount":3,"zipByteSize":4152},{"version":"1.2.5","createdAt":"2026-10-07T13:37:35.065Z","changelog":"- Removed the file: skill-card.md - No functional changes to the skill logic or behavior.","fileCount":3,"zipByteSize":4228},{"version":"1.2.4","createdAt":"2026-10-05T02:49:33.870Z","changelog":"- Removed the file: skill-card.md - No changes to skill functionality or documentation aside from file removal.","fileCount":3,"zipByteSize":4158},{"version":"1.2.3","createdAt":"2026-10-03T01:41:31.468Z","changelog":"- Removed the file: skill-card.md - No changes to functionality or SKILL.md content.","fileCount":3,"zipByteSize":4112},{"version":"1.2.2","createdAt":"2026-09-30T17:01:33.955Z","changelog":"Version 1.2.2 - Removed the file: skill-card.md - No functional changes to the skill's behavior or API documented in SKILL.md.","fileCount":3,"zipByteSize":4233},{"version":"1.2.1","createdAt":"2026-09-25T15:51:39.261Z","changelog":"- Removed the file: skill-card.md - No changes to skill features or API; documentation content remains the same - Internal documentation cleanup only (file removal)","fileCount":3,"zipByteSize":4268},{"version":"1.2.0","createdAt":"2026-09-24T15:11:19.366Z","changelog":"- Write actions (tags, ratings, collection edits) now require explicit user confirmation via a confirmation prompt or a `confirmToken`; arguments must remain unchanged between preview and confirmation. - The write response preview is now returned with `status: \"confirmation-required\"`, a `preview`, and a single-use `confirmToken`. - Updated documentation to reflect the new confirmation-gated write flow, replacing the previous dry-run/confirm boolean. - Removed redundant/obsolete skill-card documentation file.","fileCount":3,"zipByteSize":4293},{"version":"1.1.2","createdAt":"2026-09-23T15:40:46.430Z","changelog":"- Removed the file: skill-card.md - No changes to functionality or documentation in SKILL.md - Minor cleanup of repository by removing unused/obsolete files","fileCount":3,"zipByteSize":4076}]},"execution":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":"clawhub skill install s17cjx1a349nz5apaqp02vgz4h85728z:musicbrainz-mcp","setupComplexity":"low","setupSteps":["Setup complexity is classified as HIGH. You must provision dedicated cloud infrastructure or an isolated VM. Do not run this directly on your local workstation.","Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data."],"contract":{"contractStatus":"missing","authModes":[],"requires":[],"forbidden":[],"supportsMcp":false,"supportsA2a":false,"supportsStreaming":false,"inputSchemaRef":null,"outputSchemaRef":null,"dataRegion":null,"contractUpdatedAt":null,"sourceUpdatedAt":null,"freshnessSeconds":null},"invocationGuide":{"preferredApi":{"snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-chrischall-musicbrainz-mcp/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-chrischall-musicbrainz-mcp/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-chrischall-musicbrainz-mcp/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-chrischall-musicbrainz-mcp/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-chrischall-musicbrainz-mcp/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-chrischall-musicbrainz-mcp/trust\""],"jsonRequestTemplate":{"query":"summarize this repo","constraints":{"maxLatencyMs":2000,"protocolPreference":["OPENCLEW"]}},"jsonResponseTemplate":{"ok":true,"result":{"summary":"...","confidence":0.9},"meta":{"source":"CLAWHUB","generatedAt":"2026-10-10T08:46:29.896Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://www.xpersona.co/api/v1/agents/clawhub-chrischall-musicbrainz-mcp/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-chrischall-musicbrainz-mcp/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-chrischall-musicbrainz-mcp/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-chrischall-musicbrainz-mcp/trust"}},"reliability":{"evidence":{"source":"runtime-metrics","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No trust, reliability, or runtime telemetry is available."},"trust":{"status":"unavailable","handshakeStatus":"UNKNOWN","verificationFreshnessHours":null,"reputationScore":null,"p95LatencyMs":null,"successRate30d":null,"fallbackRate":null,"attempts30d":null,"trustUpdatedAt":null,"trustConfidence":"unknown","sourceUpdatedAt":null,"freshnessSeconds":null},"decisionGuardrails":{"doNotUseIf":["Contract metadata is missing or unavailable for deterministic execution."],"safeUseWhen":[],"riskFlags":["missing_or_unavailable_contract","trust_data_unavailable","schema_references_missing"],"operationalConfidence":"low"},"executionMetrics":{"observedLatencyMsP50":null,"observedLatencyMsP95":null,"estimatedCostUsd":null,"uptime30d":null,"rateLimitRpm":null,"rateLimitBurst":null,"lastVerifiedAt":null,"verificationSource":null},"runtimeMetrics":{"successRate":null,"avgLatencyMs":null,"avgCostUsd":null,"hallucinationRate":null,"retryRate":null,"disputeRate":null,"p50Latency":null,"p95Latency":null,"lastUpdated":null}},"benchmarks":{"evidence":{"source":"no-benchmark-data","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No benchmark suites or observed failure patterns are available."},"suites":[],"failurePatterns":[]},"artifacts":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"high","updatedAt":"2026-10-10T02:04:18.399Z","emptyReason":null},"readme":"Skill: musicbrainz-mcp\n\nOwner: chrischall\n\nSummary: Search and browse the MusicBrainz music encyclopedia (artists, releases, recordings, labels, works), fetch Cover Art Archive images, resolve musicbrainz.org URLs, and — with OAuth configured — submit your own tags, ratings, and collection edits. Use when the user asks about music metadata, discographies, album/artist/recording details, MBIDs, cover art, or wants to tag/rate music on MusicBrainz.\n\nTags: latest:1.2.6\n\nVersion history:\n\nv1.2.6 | 2026-10-09T23:26:23.006Z | auto\n\n- Removed unused documentation file: skill-card.md  \n- Clarified confirmation prompt behavior for writes in SKILL.md (mentioning `MCP_CONFIRM_ELICITATION=off`)\n- No user-facing logic or API changes; documentation update and cleanup only\n\nv1.2.5 | 2026-10-07T13:37:35.065Z | auto\n\n- Removed the file: skill-card.md\n- No functional changes to the skill logic or behavior.\n\nv1.2.4 | 2026-10-05T02:49:33.870Z | auto\n\n- Removed the file: skill-card.md\n- No changes to skill functionality or documentation aside from file removal.\n\nv1.2.3 | 2026-10-03T01:41:31.468Z | auto\n\n- Removed the file: skill-card.md\n- No changes to functionality or SKILL.md content.\n\nv1.2.2 | 2026-09-30T17:01:33.955Z | auto\n\nVersion 1.2.2\n\n- Removed the file: skill-card.md\n- No functional changes to the skill's behavior or API documented in SKILL.md.\n\nv1.2.1 | 2026-09-25T15:51:39.261Z | auto\n\n- Removed the file: skill-card.md\n- No changes to skill features or API; documentation content remains the same\n- Internal documentation cleanup only (file removal)\n\nv1.2.0 | 2026-09-24T15:11:19.366Z | auto\n\n- Write actions (tags, ratings, collection edits) now require explicit user confirmation via a confirmation prompt or a `confirmToken`; arguments must remain unchanged between preview and confirmation.\n- The write response preview is now returned with `status: \"confirmation-required\"`, a `preview`, and a single-use `confirmToken`.\n- Updated documentation to reflect the new confirmation-gated write flow, replacing the previous dry-run/confirm boolean.\n- Removed redundant/obsolete skill-card documentation file.\n\nv1.1.2 | 2026-09-23T15:40:46.430Z | auto\n\n- Removed the file: skill-card.md\n- No changes to functionality or documentation in SKILL.md\n- Minor cleanup of repository by removing unused/obsolete files\n\nv1.1.1 | 2026-09-21T04:13:30.734Z | auto\n\n- Removed the file skill-card.md.\n- No changes to core functionality or documentation in SKILL.md.\n\nv1.1.0 | 2026-09-20T02:52:01.505Z | auto\n\n- Removed the skill-card.md file.\n- No changes to functionality or documentation content; only a file cleanup.\n\nv1.0.0 | 2026-09-18T15:10:46.783Z | auto\n\n- Removed the file skill-card.md from the skill package.\n- No changes to functionality or documentation in SKILL.md.\n- No interface or feature changes in this release.\n\nv0.3.2 | 2026-09-10T17:52:16.980Z | auto\n\n- Removes the skill-card.md file.\n- No changes to functionality or documentation other than file removal.\n\nv0.3.1 | 2026-09-05T00:53:39.804Z | auto\n\n- Added documentation for an optional `view` parameter (`compact` or `full`) to key endpoints (`musicbrainz_search`, `musicbrainz_lookup`, `musicbrainz_browse`, `musicbrainz_resolve`), defaulting to `compact`.\n- Explained the effect of `compact` view (removes image fields/URLs) vs. `full` (returns unmodified payloads).\n- Updated usage examples and guidance to include the new `view?` argument where supported.\n- Clarified endpoint behaviors regarding response shapes and reasons for omitting `view` from specific tools.\n- Removed redundant or outdated file (`skill-card.md`).\n\nv0.3.0 | 2026-09-04T22:23:14.659Z | auto\n\n- Removed the file skill-card.md.\n- No changes to the skill's documented features or usage.\n\nv0.2.6 | 2026-08-28T14:00:52.213Z | auto\n\n- Removed the skill-card.md file.\n- No user-facing feature or behavior changes.\n\nv0.2.5 | 2026-07-19T12:46:18.027Z | auto\n\n- Removed the file: skill-card.md.\n- No changes to functionality or documentation in SKILL.md.\n\nv0.2.4 | 2026-07-14T10:40:48.248Z | auto\n\n- Removed the file skill-card.md.\n- No changes to skill functionality or documentation content.\n\nv0.2.3 | 2026-07-07T23:41:00.867Z | auto\n\n- Removed the file skill-card.md. No other functional changes.\n\nv0.2.2 | 2026-06-15T14:33:46.305Z | auto\n\n- Removed the file: skill-card.md.\n- No changes to functionality or user-facing features.\n- Documentation and usage instructions remain unchanged.\n\nv0.2.1 | 2026-06-13T00:55:06.882Z | auto\n\n- Removed the skill-card.md file.\n- No changes to functionality or the skill description.\n\nv0.2.0 | 2026-06-09T18:08:49.437Z | auto\n\n- Added detailed SKILL.md documentation outlining all available tools and usage for searching, browsing, and editing MusicBrainz data.\n- Describes both read (no credentials needed) and write (OAuth required) operations, including support for tags, ratings, and collection edits.\n- Clarifies tool choices for different lookups: search, detailed lookup, relationship browsing, cover art retrieval, and MusicBrainz URL resolution.\n- Provides sample API usage flows and notes on request pacing and supported entity types.\n\nArchive index:\n\nArchive v1.2.6: 3 files, 4152 bytes\n\nFiles: skill-card.md (1457b), SKILL.md (6221b), _meta.json (134b)\n\nFile v1.2.6:SKILL.md\n\n---\nname: musicbrainz-mcp\ndescription: Search and browse the MusicBrainz music encyclopedia (artists, releases, recordings, labels, works), fetch Cover Art Archive images, resolve musicbrainz.org URLs, and — with OAuth configured — submit your own tags, ratings, and collection edits. Use when the user asks about music metadata, discographies, album/artist/recording details, MBIDs, cover art, or wants to tag/rate music on MusicBrainz.\n---\n\n# MusicBrainz\n\nThis server exposes the [MusicBrainz](https://musicbrainz.org) `/ws/2` API and the Cover Art Archive as MCP tools. Reads need no credentials; writes need OAuth (see the repo README).\n\n## Picking the right tool\n\n- **Find something by name** → `musicbrainz_search` with `entity` + a Lucene `query` (+ `view?`). Plain text matches the name; fielded queries work too (`artist:\"Miles Davis\" AND country:US`). Returns MBIDs.\n- **Get full detail for a known MBID** → `musicbrainz_lookup` with `entity` + `mbid` (+ `view?`). Add `inc` for linked data, e.g. `[\"releases\",\"release-groups\"]` on an artist, `[\"recordings\",\"labels\"]` on a release, `[\"url-rels\",\"tags\"]` on most entities.\n- **Enumerate a relationship** → `musicbrainz_browse`: every release by an artist (`entity:\"release\", linkedBy:\"artist\", mbid:<artist>`), recordings on a release, releases in a collection, etc. Takes `view?` too. This is the complete paged set (max 100/page), unlike search's fuzzy ranking.\n- **Cover art** → `musicbrainz_cover_art` with a release or release-group MBID. Returns image URLs (front/back/thumbnails); errors clearly when none exist.\n- **A pasted musicbrainz.org link** → `musicbrainz_resolve` with the `url` (+ `view?`).\n- **Check it's working** → `musicbrainz_healthcheck`.\n\n`view?` is optional everywhere it appears and defaults to `compact` — see [Response shape](#response-shape-view).\n\n## Typical flow\n\nSearch to get an MBID, then lookup/browse for detail:\n\n1. `musicbrainz_search { entity: \"artist\", query: \"Radiohead\" }` → MBID\n2. `musicbrainz_browse { entity: \"release-group\", linkedBy: \"artist\", mbid: <MBID>, limit: 100 }` → discography\n3. `musicbrainz_cover_art { entity: \"release-group\", mbid: <RG-MBID> }` → album art\n\n## Writes (OAuth, confirmation-gated)\n\n`musicbrainz_submit_tags`, `musicbrainz_submit_rating`, and `musicbrainz_modify_collection` modify the user's own MusicBrainz account. Each asks the user to confirm first: a confirmation prompt where the client supports one (unless the server sets `MCP_CONFIRM_ELICITATION=off`); otherwise the first call sends nothing and returns `status: \"confirmation-required\"` with a `preview` and a `confirmToken` — show the preview to the user and only repeat the same call with that `confirmToken` after they approve. A token works once, and changing any argument invalidates it (`DRAFT_CHANGED`: re-confirm the fresh preview). They require `MUSICBRAINZ_OAUTH_*` to be configured.\n\n## Response shape (`view`)\n\n`musicbrainz_lookup`, `musicbrainz_search`, `musicbrainz_browse` and\n`musicbrainz_resolve` take `view: \"compact\" | \"full\"`, and **`compact` is the\ndefault** — you get the slim shape without asking, and an unrecognised value\nfalls back to it rather than erroring.\n\n**Compact here is media stripping, not a field projection.** It removes keys\nnamed like a picture — `image`, `images`, `thumbnail`/`thumbnails`, `logo`,\n`icon`, `banner`, `avatar`, and their `…Url`/`…Link`/`…Uri`/`…Src` spellings —\nplus any string value that is a URL ending in an image extension. Nothing else\nis touched. This server keeps **no** hand-written field list, deliberately:\nthere is no captured fixture of a MusicBrainz payload here, so nothing could\nhonestly say which of its fields are noise, and an invented list would hand you\na record with holes in it that reads like a verified answer. Do not expect\ncompact to name the fields it kept — it kept all of them.\n\n**The consequence that will surprise you: on most calls compact and full come\nback identical.** MusicBrainz's `/ws/2` JSON carries almost no pictures — they\nlive in the Cover Art Archive, behind `musicbrainz_cover_art`, which has no\n`view` at all. A release's `cover-art-archive` block survives compact whole\n(`artwork`, `count`, `front`, `back`): those are facts about the art, not the\nart, and none of those keys is a picture name.\n\nThe one place compact does bite is `inc: [\"url-rels\"]`. The bare-image-URL rule\nmatches on the *value*, not the key, so a relation whose target ends in\n`.jpg`/`.png` comes back as `url: { id }` with its **`resource` gone**, while\nthe wikidata relation beside it keeps its `resource` untouched. If you are\nchasing image relations, ask for `view: \"full\"`.\n\n`view: \"full\"` returns MusicBrainz's payload untouched. One shape note:\n`musicbrainz_resolve` wraps it as `{entity, mbid, data}` — `data` is the lookup\npayload verbatim — because resolve *is* `musicbrainz_lookup` with the MBID\nparsed out of a URL, and answering it in a different shape would make the\nresponse depend on which of two identical routes you took.\n\nThere is deliberately **no `raw` rung**. Nothing is rewritten on the way out\nhere, so `full` already *is* the unprojected upstream payload; a third value\nwould silently alias it. `view` is also never forwarded to MusicBrainz — it is\nconsumed by this server, not added to the query string.\n\nThe other five tools take no `view`, for three different reasons:\n\n- **`musicbrainz_cover_art`** — its product IS the image URLs. Compact strips\n  `images`/`thumbnails`, which on this tool would not shrink the response, it\n  would empty it.\n- **`musicbrainz_healthcheck`** — `{ok, reachable, oauth_configured, hint}` is\n  already narrower than any projection.\n- **`musicbrainz_submit_tags` / `musicbrainz_submit_rating` /\n  `musicbrainz_modify_collection`** — a write's response is a receipt (the\n  confirmation preview, or `{submitted, …}`): nothing to strip and everything\n  to keep.\n\n## Notes\n\n- MusicBrainz limits clients to ~1 request/second; the server paces itself, so a big browse may take a few seconds — that's expected, not an error.\n- Entity types: `area artist event genre instrument label place recording release release-group series work url`.\n\nFile v1.2.6:_meta.json\n\n{\n  \"ownerId\": \"kn700jq4sjtf2anb0rk3ft4p7n856872\",\n  \"slug\": \"musicbrainz-mcp\",\n  \"version\": \"1.2.6\",\n  \"publishedAt\": 1791588383006\n}\n\nFile v1.2.6:skill-card.md\n\n## Description:\n\nHelps agents search MusicBrainz music metadata, find cover art, and, with OAuth and user confirmation, edit the user's own tags, ratings, and collections.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[chrischall](https://clawhub.ai/user/chrischall)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nMusic listeners, researchers, and developers use this skill to look up artists, releases, recordings, and cover art, or manage their own MusicBrainz tags, ratings, and collections.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: OAuth-enabled edits can change tags, ratings, or collections on the user's MusicBrainz account.\n\nMitigation: Review each proposed change and its preview, and obtain user approval before confirming any write.\n\n## Reference(s):\n\n- [MusicBrainz](https://musicbrainz.org)\n\n## Skill Output:\n\n**Output Type(s):** [Text, Guidance]\n\n**Output Format:** [Markdown]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [May include MusicBrainz identifiers, cover-art URLs, and account-edit confirmation previews.]\n\n## Skill Version(s):\n\n1.2.6 (source: ClawHub release metadata)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nArchive v1.2.5: 3 files, 4228 bytes\n\nFiles: skill-card.md (1806b), SKILL.md (6166b), _meta.json (134b)\n\nFile v1.2.5:SKILL.md\n\n---\nname: musicbrainz-mcp\ndescription: Search and browse the MusicBrainz music encyclopedia (artists, releases, recordings, labels, works), fetch Cover Art Archive images, resolve musicbrainz.org URLs, and — with OAuth configured — submit your own tags, ratings, and collection edits. Use when the user asks about music metadata, discographies, album/artist/recording details, MBIDs, cover art, or wants to tag/rate music on MusicBrainz.\n---\n\n# MusicBrainz\n\nThis server exposes the [MusicBrainz](https://musicbrainz.org) `/ws/2` API and the Cover Art Archive as MCP tools. Reads need no credentials; writes need OAuth (see the repo README).\n\n## Picking the right tool\n\n- **Find something by name** → `musicbrainz_search` with `entity` + a Lucene `query` (+ `view?`). Plain text matches the name; fielded queries work too (`artist:\"Miles Davis\" AND country:US`). Returns MBIDs.\n- **Get full detail for a known MBID** → `musicbrainz_lookup` with `entity` + `mbid` (+ `view?`). Add `inc` for linked data, e.g. `[\"releases\",\"release-groups\"]` on an artist, `[\"recordings\",\"labels\"]` on a release, `[\"url-rels\",\"tags\"]` on most entities.\n- **Enumerate a relationship** → `musicbrainz_browse`: every release by an artist (`entity:\"release\", linkedBy:\"artist\", mbid:<artist>`), recordings on a release, releases in a collection, etc. Takes `view?` too. This is the complete paged set (max 100/page), unlike search's fuzzy ranking.\n- **Cover art** → `musicbrainz_cover_art` with a release or release-group MBID. Returns image URLs (front/back/thumbnails); errors clearly when none exist.\n- **A pasted musicbrainz.org link** → `musicbrainz_resolve` with the `url` (+ `view?`).\n- **Check it's working** → `musicbrainz_healthcheck`.\n\n`view?` is optional everywhere it appears and defaults to `compact` — see [Response shape](#response-shape-view).\n\n## Typical flow\n\nSearch to get an MBID, then lookup/browse for detail:\n\n1. `musicbrainz_search { entity: \"artist\", query: \"Radiohead\" }` → MBID\n2. `musicbrainz_browse { entity: \"release-group\", linkedBy: \"artist\", mbid: <MBID>, limit: 100 }` → discography\n3. `musicbrainz_cover_art { entity: \"release-group\", mbid: <RG-MBID> }` → album art\n\n## Writes (OAuth, confirmation-gated)\n\n`musicbrainz_submit_tags`, `musicbrainz_submit_rating`, and `musicbrainz_modify_collection` modify the user's own MusicBrainz account. Each asks the user to confirm first: a confirmation prompt where the client supports one; otherwise the first call sends nothing and returns `status: \"confirmation-required\"` with a `preview` and a `confirmToken` — show the preview to the user and only repeat the same call with that `confirmToken` after they approve. A token works once, and changing any argument invalidates it (`DRAFT_CHANGED`: re-confirm the fresh preview). They require `MUSICBRAINZ_OAUTH_*` to be configured.\n\n## Response shape (`view`)\n\n`musicbrainz_lookup`, `musicbrainz_search`, `musicbrainz_browse` and\n`musicbrainz_resolve` take `view: \"compact\" | \"full\"`, and **`compact` is the\ndefault** — you get the slim shape without asking, and an unrecognised value\nfalls back to it rather than erroring.\n\n**Compact here is media stripping, not a field projection.** It removes keys\nnamed like a picture — `image`, `images`, `thumbnail`/`thumbnails`, `logo`,\n`icon`, `banner`, `avatar`, and their `…Url`/`…Link`/`…Uri`/`…Src` spellings —\nplus any string value that is a URL ending in an image extension. Nothing else\nis touched. This server keeps **no** hand-written field list, deliberately:\nthere is no captured fixture of a MusicBrainz payload here, so nothing could\nhonestly say which of its fields are noise, and an invented list would hand you\na record with holes in it that reads like a verified answer. Do not expect\ncompact to name the fields it kept — it kept all of them.\n\n**The consequence that will surprise you: on most calls compact and full come\nback identical.** MusicBrainz's `/ws/2` JSON carries almost no pictures — they\nlive in the Cover Art Archive, behind `musicbrainz_cover_art`, which has no\n`view` at all. A release's `cover-art-archive` block survives compact whole\n(`artwork`, `count`, `front`, `back`): those are facts about the art, not the\nart, and none of those keys is a picture name.\n\nThe one place compact does bite is `inc: [\"url-rels\"]`. The bare-image-URL rule\nmatches on the *value*, not the key, so a relation whose target ends in\n`.jpg`/`.png` comes back as `url: { id }` with its **`resource` gone**, while\nthe wikidata relation beside it keeps its `resource` untouched. If you are\nchasing image relations, ask for `view: \"full\"`.\n\n`view: \"full\"` returns MusicBrainz's payload untouched. One shape note:\n`musicbrainz_resolve` wraps it as `{entity, mbid, data}` — `data` is the lookup\npayload verbatim — because resolve *is* `musicbrainz_lookup` with the MBID\nparsed out of a URL, and answering it in a different shape would make the\nresponse depend on which of two identical routes you took.\n\nThere is deliberately **no `raw` rung**. Nothing is rewritten on the way out\nhere, so `full` already *is* the unprojected upstream payload; a third value\nwould silently alias it. `view` is also never forwarded to MusicBrainz — it is\nconsumed by this server, not added to the query string.\n\nThe other five tools take no `view`, for three different reasons:\n\n- **`musicbrainz_cover_art`** — its product IS the image URLs. Compact strips\n  `images`/`thumbnails`, which on this tool would not shrink the response, it\n  would empty it.\n- **`musicbrainz_healthcheck`** — `{ok, reachable, oauth_configured, hint}` is\n  already narrower than any projection.\n- **`musicbrainz_submit_tags` / `musicbrainz_submit_rating` /\n  `musicbrainz_modify_collection`** — a write's response is a receipt (the\n  confirmation preview, or `{submitted, …}`): nothing to strip and everything\n  to keep.\n\n## Notes\n\n- MusicBrainz limits clients to ~1 request/second; the server paces itself, so a big browse may take a few seconds — that's expected, not an error.\n- Entity types: `area artist event genre instrument label place recording release release-group series work url`.\n\nFile v1.2.5:_meta.json\n\n{\n  \"ownerId\": \"kn700jq4sjtf2anb0rk3ft4p7n856872\",\n  \"slug\": \"musicbrainz-mcp\",\n  \"version\": \"1.2.5\",\n  \"publishedAt\": 1791380255065\n}\n\nFile v1.2.5:skill-card.md\n\n## Description:\n\nSearch MusicBrainz for music metadata, browse discographies, find cover art, and, with OAuth and user confirmation, update your own tags, ratings, and collections.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[chrischall](https://clawhub.ai/user/chrischall)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nMusic listeners, researchers, and developers use this skill to identify artists and recordings, explore releases and cover art, and manage their own MusicBrainz tags, ratings, and collections with approval.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: OAuth-enabled edits can change a user's MusicBrainz tags, ratings, or collections.\n\nMitigation: Review the confirmation preview and approve only the intended edits before submission.\n\nRisk: Using the skill connects to MusicBrainz.\n\nMitigation: Confirm that connecting to MusicBrainz is acceptable before installing or using the skill.\n\n## Reference(s):\n\n- [MusicBrainz](https://musicbrainz.org)\n- [MusicBrainz MCP on ClawHub](https://clawhub.ai/chrischall/skills/musicbrainz-mcp)\n\n## Skill Output:\n\n**Output Type(s):** [Text, Guidance]\n\n**Output Format:** [Natural-language summaries of MusicBrainz results, links to cover art, and confirmation previews for account edits]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Read results default to compact view; account edits require OAuth and user confirmation.]\n\n## Skill Version(s):\n\n1.2.5 (source: ClawHub release metadata)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nArchive v1.2.4: 3 files, 4158 bytes\n\nFiles: skill-card.md (1569b), SKILL.md (6166b), _meta.json (134b)\n\nFile v1.2.4:SKILL.md\n\n---\nname: musicbrainz-mcp\ndescription: Search and browse the MusicBrainz music encyclopedia (artists, releases, recordings, labels, works), fetch Cover Art Archive images, resolve musicbrainz.org URLs, and — with OAuth configured — submit your own tags, ratings, and collection edits. Use when the user asks about music metadata, discographies, album/artist/recording details, MBIDs, cover art, or wants to tag/rate music on MusicBrainz.\n---\n\n# MusicBrainz\n\nThis server exposes the [MusicBrainz](https://musicbrainz.org) `/ws/2` API and the Cover Art Archive as MCP tools. Reads need no credentials; writes need OAuth (see the repo README).\n\n## Picking the right tool\n\n- **Find something by name** → `musicbrainz_search` with `entity` + a Lucene `query` (+ `view?`). Plain text matches the name; fielded queries work too (`artist:\"Miles Davis\" AND country:US`). Returns MBIDs.\n- **Get full detail for a known MBID** → `musicbrainz_lookup` with `entity` + `mbid` (+ `view?`). Add `inc` for linked data, e.g. `[\"releases\",\"release-groups\"]` on an artist, `[\"recordings\",\"labels\"]` on a release, `[\"url-rels\",\"tags\"]` on most entities.\n- **Enumerate a relationship** → `musicbrainz_browse`: every release by an artist (`entity:\"release\", linkedBy:\"artist\", mbid:<artist>`), recordings on a release, releases in a collection, etc. Takes `view?` too. This is the complete paged set (max 100/page), unlike search's fuzzy ranking.\n- **Cover art** → `musicbrainz_cover_art` with a release or release-group MBID. Returns image URLs (front/back/thumbnails); errors clearly when none exist.\n- **A pasted musicbrainz.org link** → `musicbrainz_resolve` with the `url` (+ `view?`).\n- **Check it's working** → `musicbrainz_healthcheck`.\n\n`view?` is optional everywhere it appears and defaults to `compact` — see [Response shape](#response-shape-view).\n\n## Typical flow\n\nSearch to get an MBID, then lookup/browse for detail:\n\n1. `musicbrainz_search { entity: \"artist\", query: \"Radiohead\" }` → MBID\n2. `musicbrainz_browse { entity: \"release-group\", linkedBy: \"artist\", mbid: <MBID>, limit: 100 }` → discography\n3. `musicbrainz_cover_art { entity: \"release-group\", mbid: <RG-MBID> }` → album art\n\n## Writes (OAuth, confirmation-gated)\n\n`musicbrainz_submit_tags`, `musicbrainz_submit_rating`, and `musicbrainz_modify_collection` modify the user's own MusicBrainz account. Each asks the user to confirm first: a confirmation prompt where the client supports one; otherwise the first call sends nothing and returns `status: \"confirmation-required\"` with a `preview` and a `confirmToken` — show the preview to the user and only repeat the same call with that `confirmToken` after they approve. A token works once, and changing any argument invalidates it (`DRAFT_CHANGED`: re-confirm the fresh preview). They require `MUSICBRAINZ_OAUTH_*` to be configured.\n\n## Response shape (`view`)\n\n`musicbrainz_lookup`, `musicbrainz_search`, `musicbrainz_browse` and\n`musicbrainz_resolve` take `view: \"compact\" | \"full\"`, and **`compact` is the\ndefault** — you get the slim shape without asking, and an unrecognised value\nfalls back to it rather than erroring.\n\n**Compact here is media stripping, not a field projection.** It removes keys\nnamed like a picture — `image`, `images`, `thumbnail`/`thumbnails`, `logo`,\n`icon`, `banner`, `avatar`, and their `…Url`/`…Link`/`…Uri`/`…Src` spellings —\nplus any string value that is a URL ending in an image extension. Nothing else\nis touched. This server keeps **no** hand-written field list, deliberately:\nthere is no captured fixture of a MusicBrainz payload here, so nothing could\nhonestly say which of its fields are noise, and an invented list would hand you\na record with holes in it that reads like a verified answer. Do not expect\ncompact to name the fields it kept — it kept all of them.\n\n**The consequence that will surprise you: on most calls compact and full come\nback identical.** MusicBrainz's `/ws/2` JSON carries almost no pictures — they\nlive in the Cover Art Archive, behind `musicbrainz_cover_art`, which has no\n`view` at all. A release's `cover-art-archive` block survives compact whole\n(`artwork`, `count`, `front`, `back`): those are facts about the art, not the\nart, and none of those keys is a picture name.\n\nThe one place compact does bite is `inc: [\"url-rels\"]`. The bare-image-URL rule\nmatches on the *value*, not the key, so a relation whose target ends in\n`.jpg`/`.png` comes back as `url: { id }` with its **`resource` gone**, while\nthe wikidata relation beside it keeps its `resource` untouched. If you are\nchasing image relations, ask for `view: \"full\"`.\n\n`view: \"full\"` returns MusicBrainz's payload untouched. One shape note:\n`musicbrainz_resolve` wraps it as `{entity, mbid, data}` — `data` is the lookup\npayload verbatim — because resolve *is* `musicbrainz_lookup` with the MBID\nparsed out of a URL, and answering it in a different shape would make the\nresponse depend on which of two identical routes you took.\n\nThere is deliberately **no `raw` rung**. Nothing is rewritten on the way out\nhere, so `full` already *is* the unprojected upstream payload; a third value\nwould silently alias it. `view` is also never forwarded to MusicBrainz — it is\nconsumed by this server, not added to the query string.\n\nThe other five tools take no `view`, for three different reasons:\n\n- **`musicbrainz_cover_art`** — its product IS the image URLs. Compact strips\n  `images`/`thumbnails`, which on this tool would not shrink the response, it\n  would empty it.\n- **`musicbrainz_healthcheck`** — `{ok, reachable, oauth_configured, hint}` is\n  already narrower than any projection.\n- **`musicbrainz_submit_tags` / `musicbrainz_submit_rating` /\n  `musicbrainz_modify_collection`** — a write's response is a receipt (the\n  confirmation preview, or `{submitted, …}`): nothing to strip and everything\n  to keep.\n\n## Notes\n\n- MusicBrainz limits clients to ~1 request/second; the server paces itself, so a big browse may take a few seconds — that's expected, not an error.\n- Entity types: `area artist event genre instrument label place recording release release-group series work url`.\n\nFile v1.2.4:_meta.json\n\n{\n  \"ownerId\": \"kn700jq4sjtf2anb0rk3ft4p7n856872\",\n  \"slug\": \"musicbrainz-mcp\",\n  \"version\": \"1.2.4\",\n  \"publishedAt\": 1791168573870\n}\n\nFile v1.2.4:skill-card.md\n\n## Description:\n\nHelps agents search MusicBrainz music metadata, retrieve cover art links, and, with OAuth and user confirmation, update tags, ratings, and collections.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[chrischall](https://clawhub.ai/user/chrischall)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nMusic enthusiasts and developers use this skill to find artists, recordings, releases, and cover art, or to manage their own MusicBrainz tags, ratings, and collections with confirmation.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Authenticated tag, rating, and collection edits change the user's MusicBrainz account.\n\nMitigation: Configure OAuth only when edits are needed; review each preview and obtain user confirmation before submitting.\n\n## Reference(s):\n\n- [MusicBrainz](https://musicbrainz.org)\n- [ClawHub skill release](https://clawhub.ai/chrischall/skills/musicbrainz-mcp)\n\n## Skill Output:\n\n**Output Type(s):** [Text, Guidance]\n\n**Output Format:** [Text and structured music metadata]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Includes MBIDs, cover art URLs, and confirmation previews or write receipts when applicable.]\n\n## Skill Version(s):\n\n1.2.4 (source: server-resolved release)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nArchive v1.2.3: 3 files, 4112 bytes\n\nFiles: skill-card.md (1458b), SKILL.md (6166b), _meta.json (134b)\n\nFile v1.2.3:SKILL.md\n\n---\nname: musicbrainz-mcp\ndescription: Search and browse the MusicBrainz music encyclopedia (artists, releases, recordings, labels, works), fetch Cover Art Archive images, resolve musicbrainz.org URLs, and — with OAuth configured — submit your own tags, ratings, and collection edits. Use when the user asks about music metadata, discographies, album/artist/recording details, MBIDs, cover art, or wants to tag/rate music on MusicBrainz.\n---\n\n# MusicBrainz\n\nThis server exposes the [MusicBrainz](https://musicbrainz.org) `/ws/2` API and the Cover Art Archive as MCP tools. Reads need no credentials; writes need OAuth (see the repo README).\n\n## Picking the right tool\n\n- **Find something by name** → `musicbrainz_search` with `entity` + a Lucene `query` (+ `view?`). Plain text matches the name; fielded queries work too (`artist:\"Miles Davis\" AND country:US`). Returns MBIDs.\n- **Get full detail for a known MBID** → `musicbrainz_lookup` with `entity` + `mbid` (+ `view?`). Add `inc` for linked data, e.g. `[\"releases\",\"release-groups\"]` on an artist, `[\"recordings\",\"labels\"]` on a release, `[\"url-rels\",\"tags\"]` on most entities.\n- **Enumerate a relationship** → `musicbrainz_browse`: every release by an artist (`entity:\"release\", linkedBy:\"artist\", mbid:<artist>`), recordings on a release, releases in a collection, etc. Takes `view?` too. This is the complete paged set (max 100/page), unlike search's fuzzy ranking.\n- **Cover art** → `musicbrainz_cover_art` with a release or release-group MBID. Returns image URLs (front/back/thumbnails); errors clearly when none exist.\n- **A pasted musicbrainz.org link** → `musicbrainz_resolve` with the `url` (+ `view?`).\n- **Check it's working** → `musicbrainz_healthcheck`.\n\n`view?` is optional everywhere it appears and defaults to `compact` — see [Response shape](#response-shape-view).\n\n## Typical flow\n\nSearch to get an MBID, then lookup/browse for detail:\n\n1. `musicbrainz_search { entity: \"artist\", query: \"Radiohead\" }` → MBID\n2. `musicbrainz_browse { entity: \"release-group\", linkedBy: \"artist\", mbid: <MBID>, limit: 100 }` → discography\n3. `musicbrainz_cover_art { entity: \"release-group\", mbid: <RG-MBID> }` → album art\n\n## Writes (OAuth, confirmation-gated)\n\n`musicbrainz_submit_tags`, `musicbrainz_submit_rating`, and `musicbrainz_modify_collection` modify the user's own MusicBrainz account. Each asks the user to confirm first: a confirmation prompt where the client supports one; otherwise the first call sends nothing and returns `status: \"confirmation-required\"` with a `preview` and a `confirmToken` — show the preview to the user and only repeat the same call with that `confirmToken` after they approve. A token works once, and changing any argument invalidates it (`DRAFT_CHANGED`: re-confirm the fresh preview). They require `MUSICBRAINZ_OAUTH_*` to be configured.\n\n## Response shape (`view`)\n\n`musicbrainz_lookup`, `musicbrainz_search`, `musicbrainz_browse` and\n`musicbrainz_resolve` take `view: \"compact\" | \"full\"`, and **`compact` is the\ndefault** — you get the slim shape without asking, and an unrecognised value\nfalls back to it rather than erroring.\n\n**Compact here is media stripping, not a field projection.** It removes keys\nnamed like a picture — `image`, `images`, `thumbnail`/`thumbnails`, `logo`,\n`icon`, `banner`, `avatar`, and their `…Url`/`…Link`/`…Uri`/`…Src` spellings —\nplus any string value that is a URL ending in an image extension. Nothing else\nis touched. This server keeps **no** hand-written field list, deliberately:\nthere is no captured fixture of a MusicBrainz payload here, so nothing could\nhonestly say which of its fields are noise, and an invented list would hand you\na record with holes in it that reads like a verified answer. Do not expect\ncompact to name the fields it kept — it kept all of them.\n\n**The consequence that will surprise you: on most calls compact and full come\nback identical.** MusicBrainz's `/ws/2` JSON carries almost no pictures — they\nlive in the Cover Art Archive, behind `musicbrainz_cover_art`, which has no\n`view` at all. A release's `cover-art-archive` block survives compact whole\n(`artwork`, `count`, `front`, `back`): those are facts about the art, not the\nart, and none of those keys is a picture name.\n\nThe one place compact does bite is `inc: [\"url-rels\"]`. The bare-image-URL rule\nmatches on the *value*, not the key, so a relation whose target ends in\n`.jpg`/`.png` comes back as `url: { id }` with its **`resource` gone**, while\nthe wikidata relation beside it keeps its `resource` untouched. If you are\nchasing image relations, ask for `view: \"full\"`.\n\n`view: \"full\"` returns MusicBrainz's payload untouched. One shape note:\n`musicbrainz_resolve` wraps it as `{entity, mbid, data}` — `data` is the lookup\npayload verbatim — because resolve *is* `musicbrainz_lookup` with the MBID\nparsed out of a URL, and answering it in a different shape would make the\nresponse depend on which of two identical routes you took.\n\nThere is deliberately **no `raw` rung**. Nothing is rewritten on the way out\nhere, so `full` already *is* the unprojected upstream payload; a third value\nwould silently alias it. `view` is also never forwarded to MusicBrainz — it is\nconsumed by this server, not added to the query string.\n\nThe other five tools take no `view`, for three different reasons:\n\n- **`musicbrainz_cover_art`** — its product IS the image URLs. Compact strips\n  `images`/`thumbnails`, which on this tool would not shrink the response, it\n  would empty it.\n- **`musicbrainz_healthcheck`** — `{ok, reachable, oauth_configured, hint}` is\n  already narrower than any projection.\n- **`musicbrainz_submit_tags` / `musicbrainz_submit_rating` /\n  `musicbrainz_modify_collection`** — a write's response is a receipt (the\n  confirmation preview, or `{submitted, …}`): nothing to strip and everything\n  to keep.\n\n## Notes\n\n- MusicBrainz limits clients to ~1 request/second; the server paces itself, so a big browse may take a few seconds — that's expected, not an error.\n- Entity types: `area artist event genre instrument label place recording release release-group series work url`.\n\nFile v1.2.3:_meta.json\n\n{\n  \"ownerId\": \"kn700jq4sjtf2anb0rk3ft4p7n856872\",\n  \"slug\": \"musicbrainz-mcp\",\n  \"version\": \"1.2.3\",\n  \"publishedAt\": 1790991691468\n}\n\nFile v1.2.3:skill-card.md\n\n## Description:\n\nHelps agents search MusicBrainz metadata, find cover art, and, with OAuth and user approval, update personal tags, ratings, and collections.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[chrischall](https://clawhub.ai/user/chrischall)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nMusic listeners and developers use this skill to find artists, recordings, releases, and cover art or to update their own MusicBrainz tags, ratings, and collections after approving changes.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Unintended changes to personal MusicBrainz tags, ratings, or collections.\n\nMitigation: Review the confirmation preview and approve the exact account change before submission.\n\n## Reference(s):\n\n- [MusicBrainz](https://musicbrainz.org)\n\n## Skill Output:\n\n**Output Type(s):** [Text, JSON, Guidance]\n\n**Output Format:** [Text and structured MusicBrainz tool responses]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Responses may contain MBIDs and cover-art URLs; account changes require OAuth and user approval.]\n\n## Skill Version(s):\n\n1.2.3 (source: ClawHub release)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nArchive v1.2.2: 3 files, 4233 bytes\n\nFiles: skill-card.md (1786b), SKILL.md (6166b), _meta.json (134b)\n\nFile v1.2.2:SKILL.md\n\n---\nname: musicbrainz-mcp\ndescription: Search and browse the MusicBrainz music encyclopedia (artists, releases, recordings, labels, works), fetch Cover Art Archive images, resolve musicbrainz.org URLs, and — with OAuth configured — submit your own tags, ratings, and collection edits. Use when the user asks about music metadata, discographies, album/artist/recording details, MBIDs, cover art, or wants to tag/rate music on MusicBrainz.\n---\n\n# MusicBrainz\n\nThis server exposes the [MusicBrainz](https://musicbrainz.org) `/ws/2` API and the Cover Art Archive as MCP tools. Reads need no credentials; writes need OAuth (see the repo README).\n\n## Picking the right tool\n\n- **Find something by name** → `musicbrainz_search` with `entity` + a Lucene `query` (+ `view?`). Plain text matches the name; fielded queries work too (`artist:\"Miles Davis\" AND country:US`). Returns MBIDs.\n- **Get full detail for a known MBID** → `musicbrainz_lookup` with `entity` + `mbid` (+ `view?`). Add `inc` for linked data, e.g. `[\"releases\",\"release-groups\"]` on an artist, `[\"recordings\",\"labels\"]` on a release, `[\"url-rels\",\"tags\"]` on most entities.\n- **Enumerate a relationship** → `musicbrainz_browse`: every release by an artist (`entity:\"release\", linkedBy:\"artist\", mbid:<artist>`), recordings on a release, releases in a collection, etc. Takes `view?` too. This is the complete paged set (max 100/page), unlike search's fuzzy ranking.\n- **Cover art** → `musicbrainz_cover_art` with a release or release-group MBID. Returns image URLs (front/back/thumbnails); errors clearly when none exist.\n- **A pasted musicbrainz.org link** → `musicbrainz_resolve` with the `url` (+ `view?`).\n- **Check it's working** → `musicbrainz_healthcheck`.\n\n`view?` is optional everywhere it appears and defaults to `compact` — see [Response shape](#response-shape-view).\n\n## Typical flow\n\nSearch to get an MBID, then lookup/browse for detail:\n\n1. `musicbrainz_search { entity: \"artist\", query: \"Radiohead\" }` → MBID\n2. `musicbrainz_browse { entity: \"release-group\", linkedBy: \"artist\", mbid: <MBID>, limit: 100 }` → discography\n3. `musicbrainz_cover_art { entity: \"release-group\", mbid: <RG-MBID> }` → album art\n\n## Writes (OAuth, confirmation-gated)\n\n`musicbrainz_submit_tags`, `musicbrainz_submit_rating`, and `musicbrainz_modify_collection` modify the user's own MusicBrainz account. Each asks the user to confirm first: a confirmation prompt where the client supports one; otherwise the first call sends nothing and returns `status: \"confirmation-required\"` with a `preview` and a `confirmToken` — show the preview to the user and only repeat the same call with that `confirmToken` after they approve. A token works once, and changing any argument invalidates it (`DRAFT_CHANGED`: re-confirm the fresh preview). They require `MUSICBRAINZ_OAUTH_*` to be configured.\n\n## Response shape (`view`)\n\n`musicbrainz_lookup`, `musicbrainz_search`, `musicbrainz_browse` and\n`musicbrainz_resolve` take `view: \"compact\" | \"full\"`, and **`compact` is the\ndefault** — you get the slim shape without asking, and an unrecognised value\nfalls back to it rather than erroring.\n\n**Compact here is media stripping, not a field projection.** It removes keys\nnamed like a picture — `image`, `images`, `thumbnail`/`thumbnails`, `logo`,\n`icon`, `banner`, `avatar`, and their `…Url`/`…Link`/`…Uri`/`…Src` spellings —\nplus any string value that is a URL ending in an image extension. Nothing else\nis touched. This server keeps **no** hand-written field list, deliberately:\nthere is no captured fixture of a MusicBrainz payload here, so nothing could\nhonestly say which of its fields are noise, and an invented list would hand you\na record with holes in it that reads like a verified answer. Do not expect\ncompact to name the fields it kept — it kept all of them.\n\n**The consequence that will surprise you: on most calls compact and full come\nback identical.** MusicBrainz's `/ws/2` JSON carries almost no pictures — they\nlive in the Cover Art Archive, behind `musicbrainz_cover_art`, which has no\n`view` at all. A release's `cover-art-archive` block survives compact whole\n(`artwork`, `count`, `front`, `back`): those are facts about the art, not the\nart, and none of those keys is a picture name.\n\nThe one place compact does bite is `inc: [\"url-rels\"]`. The bare-image-URL rule\nmatches on the *value*, not the key, so a relation whose target ends in\n`.jpg`/`.png` comes back as `url: { id }` with its **`resource` gone**, while\nthe wikidata relation beside it keeps its `resource` untouched. If you are\nchasing image relations, ask for `view: \"full\"`.\n\n`view: \"full\"` returns MusicBrainz's payload untouched. One shape note:\n`musicbrainz_resolve` wraps it as `{entity, mbid, data}` — `data` is the lookup\npayload verbatim — because resolve *is* `musicbrainz_lookup` with the MBID\nparsed out of a URL, and answering it in a different shape would make the\nresponse depend on which of two identical routes you took.\n\nThere is deliberately **no `raw` rung**. Nothing is rewritten on the way out\nhere, so `full` already *is* the unprojected upstream payload; a third value\nwould silently alias it. `view` is also never forwarded to MusicBrainz — it is\nconsumed by this server, not added to the query string.\n\nThe other five tools take no `view`, for three different reasons:\n\n- **`musicbrainz_cover_art`** — its product IS the image URLs. Compact strips\n  `images`/`thumbnails`, which on this tool would not shrink the response, it\n  would empty it.\n- **`musicbrainz_healthcheck`** — `{ok, reachable, oauth_configured, hint}` is\n  already narrower than any projection.\n- **`musicbrainz_submit_tags` / `musicbrainz_submit_rating` /\n  `musicbrainz_modify_collection`** — a write's response is a receipt (the\n  confirmation preview, or `{submitted, …}`): nothing to strip and everything\n  to keep.\n\n## Notes\n\n- MusicBrainz limits clients to ~1 request/second; the server paces itself, so a big browse may take a few seconds — that's expected, not an error.\n- Entity types: `area artist event genre instrument label place recording release release-group series work url`.\n\nFile v1.2.2:_meta.json\n\n{\n  \"ownerId\": \"kn700jq4sjtf2anb0rk3ft4p7n856872\",\n  \"slug\": \"musicbrainz-mcp\",\n  \"version\": \"1.2.2\",\n  \"publishedAt\": 1790787693955\n}\n\nFile v1.2.2:skill-card.md\n\n## Description:\n\nSearches MusicBrainz music metadata, retrieves cover art links, and, with OAuth and user confirmation, updates the user's tags, ratings, and collections.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[chrischall](https://clawhub.ai/user/chrischall)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nMusic researchers, listeners, and developers use this skill to find artists, releases, recordings, identifiers, discographies, and cover art, or to manage their own MusicBrainz tags, ratings, and collections with approval.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Tag, rating, or collection changes can alter the user's MusicBrainz account.\n\nMitigation: Configure OAuth only when account changes are intended, and review the preview before confirming each write.\n\nRisk: The default compact view can omit image URL relation targets.\n\nMitigation: Request the full view when image URL relations are needed.\n\n## Reference(s):\n\n- [MusicBrainz](https://musicbrainz.org)\n- [musicbrainz-mcp ClawHub release](https://clawhub.ai/chrischall/skills/musicbrainz-mcp)\n\n## Skill Output:\n\n**Output Type(s):** [Text, Markdown]\n\n**Output Format:** [Text or Markdown summaries of structured music metadata and cover art links]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Read-only queries need no credentials; account changes require OAuth and user confirmation.]\n\n## Skill Version(s):\n\n1.2.2 (source: ClawHub release metadata)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nArchive v1.2.1: 3 files, 4268 bytes\n\nFiles: skill-card.md (1798b), SKILL.md (6166b), _meta.json (134b)\n\nFile v1.2.1:SKILL.md\n\n---\nname: musicbrainz-mcp\ndescription: Search and browse the MusicBrainz music encyclopedia (artists, releases, recordings, labels, works), fetch Cover Art Archive images, resolve musicbrainz.org URLs, and — with OAuth configured — submit your own tags, ratings, and collection edits. Use when the user asks about music metadata, discographies, album/artist/recording details, MBIDs, cover art, or wants to tag/rate music on MusicBrainz.\n---\n\n# MusicBrainz\n\nThis server exposes the [MusicBrainz](https://musicbrainz.org) `/ws/2` API and the Cover Art Archive as MCP tools. Reads need no credentials; writes need OAuth (see the repo README).\n\n## Picking the right tool\n\n- **Find something by name** → `musicbrainz_search` with `entity` + a Lucene `query` (+ `view?`). Plain text matches the name; fielded queries work too (`artist:\"Miles Davis\" AND country:US`). Returns MBIDs.\n- **Get full detail for a known MBID** → `musicbrainz_lookup` with `entity` + `mbid` (+ `view?`). Add `inc` for linked data, e.g. `[\"releases\",\"release-groups\"]` on an artist, `[\"recordings\",\"labels\"]` on a release, `[\"url-rels\",\"tags\"]` on most entities.\n- **Enumerate a relationship** → `musicbrainz_browse`: every release by an artist (`entity:\"release\", linkedBy:\"artist\", mbid:<artist>`), recordings on a release, releases in a collection, etc. Takes `view?` too. This is the complete paged set (max 100/page), unlike search's fuzzy ranking.\n- **Cover art** → `musicbrainz_cover_art` with a release or release-group MBID. Returns image URLs (front/back/thumbnails); errors clearly when none exist.\n- **A pasted musicbrainz.org link** → `musicbrainz_resolve` with the `url` (+ `view?`).\n- **Check it's working** → `musicbrainz_healthcheck`.\n\n`view?` is optional everywhere it appears and defaults to `compact` — see [Response shape](#response-shape-view).\n\n## Typical flow\n\nSearch to get an MBID, then lookup/browse for detail:\n\n1. `musicbrainz_search { entity: \"artist\", query: \"Radiohead\" }` → MBID\n2. `musicbrainz_browse { entity: \"release-group\", linkedBy: \"artist\", mbid: <MBID>, limit: 100 }` → discography\n3. `musicbrainz_cover_art { entity: \"release-group\", mbid: <RG-MBID> }` → album art\n\n## Writes (OAuth, confirmation-gated)\n\n`musicbrainz_submit_tags`, `musicbrainz_submit_rating`, and `musicbrainz_modify_collection` modify the user's own MusicBrainz account. Each asks the user to confirm first: a confirmation prompt where the client supports one; otherwise the first call sends nothing and returns `status: \"confirmation-required\"` with a `preview` and a `confirmToken` — show the preview to the user and only repeat the same call with that `confirmToken` after they approve. A token works once, and changing any argument invalidates it (`DRAFT_CHANGED`: re-confirm the fresh preview). They require `MUSICBRAINZ_OAUTH_*` to be configured.\n\n## Response shape (`view`)\n\n`musicbrainz_lookup`, `musicbrainz_search`, `musicbrainz_browse` and\n`musicbrainz_resolve` take `view: \"compact\" | \"full\"`, and **`compact` is the\ndefault** — you get the slim shape without asking, and an unrecognised value\nfalls back to it rather than erroring.\n\n**Compact here is media stripping, not a field projection.** It removes keys\nnamed like a picture — `image`, `images`, `thumbnail`/`thumbnails`, `logo`,\n`icon`, `banner`, `avatar`, and their `…Url`/`…Link`/`…Uri`/`…Src` spellings —\nplus any string value that is a URL ending in an image extension. Nothing else\nis touched. This server keeps **no** hand-written field list, deliberately:\nthere is no captured fixture of a MusicBrainz payload here, so nothing could\nhonestly say which of its fields are noise, and an invented list would hand you\na record with holes in it that reads like a verified answer. Do not expect\ncompact to name the fields it kept — it kept all of them.\n\n**The consequence that will surprise you: on most calls compact and full come\nback identical.** MusicBrainz's `/ws/2` JSON carries almost no pictures — they\nlive in the Cover Art Archive, behind `musicbrainz_cover_art`, which has no\n`view` at all. A release's `cover-art-archive` block survives compact whole\n(`artwork`, `count`, `front`, `back`): those are facts about the art, not the\nart, and none of those keys is a picture name.\n\nThe one place compact does bite is `inc: [\"url-rels\"]`. The bare-image-URL rule\nmatches on the *value*, not the key, so a relation whose target ends in\n`.jpg`/`.png` comes back as `url: { id }` with its **`resource` gone**, while\nthe wikidata relation beside it keeps its `resource` untouched. If you are\nchasing image relations, ask for `view: \"full\"`.\n\n`view: \"full\"` returns MusicBrainz's payload untouched. One shape note:\n`musicbrainz_resolve` wraps it as `{entity, mbid, data}` — `data` is the lookup\npayload verbatim — because resolve *is* `musicbrainz_lookup` with the MBID\nparsed out of a URL, and answering it in a different shape would make the\nresponse depend on which of two identical routes you took.\n\nThere is deliberately **no `raw` rung**. Nothing is rewritten on the way out\nhere, so `full` already *is* the unprojected upstream payload; a third value\nwould silently alias it. `view` is also never forwarded to MusicBrainz — it is\nconsumed by this server, not added to the query string.\n\nThe other five tools take no `view`, for three different reasons:\n\n- **`musicbrainz_cover_art`** — its product IS the image URLs. Compact strips\n  `images`/`thumbnails`, which on this tool would not shrink the response, it\n  would empty it.\n- **`musicbrainz_healthcheck`** — `{ok, reachable, oauth_configured, hint}` is\n  already narrower than any projection.\n- **`musicbrainz_submit_tags` / `musicbrainz_submit_rating` /\n  `musicbrainz_modify_collection`** — a write's response is a receipt (the\n  confirmation preview, or `{submitted, …}`): nothing to strip and everything\n  to keep.\n\n## Notes\n\n- MusicBrainz limits clients to ~1 request/second; the server paces itself, so a big browse may take a few seconds — that's expected, not an error.\n- Entity types: `area artist event genre instrument label place recording release release-group series work url`.\n\nFile v1.2.1:_meta.json\n\n{\n  \"ownerId\": \"kn700jq4sjtf2anb0rk3ft4p7n856872\",\n  \"slug\": \"musicbrainz-mcp\",\n  \"version\": \"1.2.1\",\n  \"publishedAt\": 1790351499261\n}\n\nFile v1.2.1:skill-card.md\n\n## Description:\n\nHelps agents search MusicBrainz metadata, find cover art, and, with OAuth and user confirmation, update a user's tags, ratings, and collections.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[chrischall](https://clawhub.ai/user/chrischall)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nMusic listeners and researchers use this skill to identify artists, releases, recordings, and cover art. With OAuth configured, they can also manage their own MusicBrainz tags, ratings, and collections after approving each change.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: OAuth-enabled account edits can change personal tags, ratings, or collections.\n\nMitigation: Enable OAuth only when needed and review each preview before approving a change.\n\nRisk: Music metadata lookups connect to external MusicBrainz services.\n\nMitigation: Submit only queries you are comfortable sending to MusicBrainz.\n\n## Reference(s):\n\n- [MusicBrainz](https://musicbrainz.org)\n- [MusicBrainz MCP on ClawHub](https://clawhub.ai/chrischall/skills/musicbrainz-mcp)\n\n## Skill Output:\n\n**Output Type(s):** [Text, JSON, Guidance]\n\n**Output Format:** [Natural-language answers and structured MusicBrainz tool responses]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Read results default to compact view; full view retains image links. Account changes return a preview requiring user confirmation.]\n\n## Skill Version(s):\n\n1.2.1 (source: ClawHub release metadata)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nArchive v1.2.0: 3 files, 4293 bytes\n\nFiles: skill-card.md (1921b), SKILL.md (6166b), _meta.json (134b)\n\nFile v1.2.0:SKILL.md\n\n---\nname: musicbrainz-mcp\ndescription: Search and browse the MusicBrainz music encyclopedia (artists, releases, recordings, labels, works), fetch Cover Art Archive images, resolve musicbrainz.org URLs, and — with OAuth configured — submit your own tags, ratings, and collection edits. Use when the user asks about music metadata, discographies, album/artist/recording details, MBIDs, cover art, or wants to tag/rate music on MusicBrainz.\n---\n\n# MusicBrainz\n\nThis server exposes the [MusicBrainz](https://musicbrainz.org) `/ws/2` API and the Cover Art Archive as MCP tools. Reads need no credentials; writes need OAuth (see the repo README).\n\n## Picking the right tool\n\n- **Find something by name** → `musicbrainz_search` with `entity` + a Lucene `query` (+ `view?`). Plain text matches the name; fielded queries work too (`artist:\"Miles Davis\" AND country:US`). Returns MBIDs.\n- **Get full detail for a known MBID** → `musicbrainz_lookup` with `entity` + `mbid` (+ `view?`). Add `inc` for linked data, e.g. `[\"releases\",\"release-groups\"]` on an artist, `[\"recordings\",\"labels\"]` on a release, `[\"url-rels\",\"tags\"]` on most entities.\n- **Enumerate a relationship** → `musicbrainz_browse`: every release by an artist (`entity:\"release\", linkedBy:\"artist\", mbid:<artist>`), recordings on a release, releases in a collection, etc. Takes `view?` too. This is the complete paged set (max 100/page), unlike search's fuzzy ranking.\n- **Cover art** → `musicbrainz_cover_art` with a release or release-group MBID. Returns image URLs (front/back/thumbnails); errors clearly when none exist.\n- **A pasted musicbrainz.org link** → `musicbrainz_resolve` with the `url` (+ `view?`).\n- **Check it's working** → `musicbrainz_healthcheck`.\n\n`view?` is optional everywhere it appears and defaults to `compact` — see [Response shape](#response-shape-view).\n\n## Typical flow\n\nSearch to get an MBID, then lookup/browse for detail:\n\n1. `musicbrainz_search { entity: \"artist\", query: \"Radiohead\" }` → MBID\n2. `musicbrainz_browse { entity: \"release-group\", linkedBy: \"artist\", mbid: <MBID>, limit: 100 }` → discography\n3. `musicbrainz_cover_art { entity: \"release-group\", mbid: <RG-MBID> }` → album art\n\n## Writes (OAuth, confirmation-gated)\n\n`musicbrainz_submit_tags`, `musicbrainz_submit_rating`, and `musicbrainz_modify_collection` modify the user's own MusicBrainz account. Each asks the user to confirm first: a confirmation prompt where the client supports one; otherwise the first call sends nothing and returns `status: \"confirmation-required\"` with a `preview` and a `confirmToken` — show the preview to the user and only repeat the same call with that `confirmToken` after they approve. A token works once, and changing any argument invalidates it (`DRAFT_CHANGED`: re-confirm the fresh preview). They require `MUSICBRAINZ_OAUTH_*` to be configured.\n\n## Response shape (`view`)\n\n`musicbrainz_lookup`, `musicbrainz_search`, `musicbrainz_browse` and\n`musicbrainz_resolve` take `view: \"compact\" | \"full\"`, and **`compact` is the\ndefault** — you get the slim shape without asking, and an unrecognised value\nfalls back to it rather than erroring.\n\n**Compact here is media stripping, not a field projection.** It removes keys\nnamed like a picture — `image`, `images`, `thumbnail`/`thumbnails`, `logo`,\n`icon`, `banner`, `avatar`, and their `…Url`/`…Link`/`…Uri`/`…Src` spellings —\nplus any string value that is a URL ending in an image extension. Nothing else\nis touched. This server keeps **no** hand-written field list, deliberately:\nthere is no captured fixture of a MusicBrainz payload here, so nothing could\nhonestly say which of its fields are noise, and an invented list would hand you\na record with holes in it that reads like a verified answer. Do not expect\ncompact to name the fields it kept — it kept all of them.\n\n**The consequence that will surprise you: on most calls compact and full come\nback identical.** MusicBrainz's `/ws/2` JSON carries almost no pictures — they\nlive in the Cover Art Archive, behind `musicbrainz_cover_art`, which has no\n`view` at all. A release's `cover-art-archive` block survives compact whole\n(`artwork`, `count`, `front`, `back`): those are facts about the art, not the\nart, and none of those keys is a picture name.\n\nThe one place compact does bite is `inc: [\"url-rels\"]`. The bare-image-URL rule\nmatches on the *value*, not the key, so a relation whose target ends in\n`.jpg`/`.png` comes back as `url: { id }` with its **`resource` gone**, while\nthe wikidata relation beside it keeps its `resource` untouched. If you are\nchasing image relations, ask for `view: \"full\"`.\n\n`view: \"full\"` returns MusicBrainz's payload untouched. One shape note:\n`musicbrainz_resolve` wraps it as `{entity, mbid, data}` — `data` is the lookup\npayload verbatim — because resolve *is* `musicbrainz_lookup` with the MBID\nparsed out of a URL, and answering it in a different shape would make the\nresponse depend on which of two identical routes you took.\n\nThere is deliberately **no `raw` rung**. Nothing is rewritten on the way out\nhere, so `full` already *is* the unprojected upstream payload; a third value\nwould silently alias it. `view` is also never forwarded to MusicBrainz — it is\nconsumed by this server, not added to the query string.\n\nThe other five tools take no `view`, for three different reasons:\n\n- **`musicbrainz_cover_art`** — its product IS the image URLs. Compact strips\n  `images`/`thumbnails`, which on this tool would not shrink the response, it\n  would empty it.\n- **`musicbrainz_healthcheck`** — `{ok, reachable, oauth_configured, hint}` is\n  already narrower than any projection.\n- **`musicbrainz_submit_tags` / `musicbrainz_submit_rating` /\n  `musicbrainz_modify_collection`** — a write's response is a receipt (the\n  confirmation preview, or `{submitted, …}`): nothing to strip and everything\n  to keep.\n\n## Notes\n\n- MusicBrainz limits clients to ~1 request/second; the server paces itself, so a big browse may take a few seconds — that's expected, not an error.\n- Entity types: `area artist event genre instrument label place recording release release-group series work url`.\n\nFile v1.2.0:_meta.json\n\n{\n  \"ownerId\": \"kn700jq4sjtf2anb0rk3ft4p7n856872\",\n  \"slug\": \"musicbrainz-mcp\",\n  \"version\": \"1.2.0\",\n  \"publishedAt\": 1790262679366\n}\n\nFile v1.2.0:skill-card.md\n\n## Description:\n\nSearch and browse the MusicBrainz music encyclopedia, fetch Cover Art Archive images, resolve musicbrainz.org URLs, and, with OAuth configured, submit the user's own tags, ratings, and collection edits.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[chrischall](https://clawhub.ai/user/chrischall)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nExternal users and agent developers use this skill to look up music metadata, retrieve cover art links, resolve MusicBrainz identifiers, and manage their own MusicBrainz account tags, ratings, or collections when OAuth is configured.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: OAuth-enabled write tools can modify the user's own MusicBrainz tags, ratings, or collections.\n\nMitigation: Configure OAuth only when write access is needed, review the returned preview, and submit the confirmation token only after user approval.\n\nRisk: Compact view can omit image URL relation resources when resolving URL relationships.\n\nMitigation: Request full view when image URL relations are needed.\n\n## Reference(s):\n\n- [MusicBrainz](https://musicbrainz.org)\n- [ClawHub skill page](https://clawhub.ai/chrischall/skills/musicbrainz-mcp)\n\n## Skill Output:\n\n**Output Type(s):** [text, configuration, guidance]\n\n**Output Format:** [JSON tool responses and Markdown guidance]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Read operations return MusicBrainz or Cover Art Archive data; write operations return confirmation previews or submission receipts.]\n\n## Skill Version(s):\n\n1.2.0 (source: ClawHub release evidence)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nArchive v1.1.2: 3 files, 4076 bytes\n\nFiles: skill-card.md (1637b), SKILL.md (5886b), _meta.json (134b)\n\nFile v1.1.2:SKILL.md\n\n---\nname: musicbrainz-mcp\ndescription: Search and browse the MusicBrainz music encyclopedia (artists, releases, recordings, labels, works), fetch Cover Art Archive images, resolve musicbrainz.org URLs, and — with OAuth configured — submit your own tags, ratings, and collection edits. Use when the user asks about music metadata, discographies, album/artist/recording details, MBIDs, cover art, or wants to tag/rate music on MusicBrainz.\n---\n\n# MusicBrainz\n\nThis server exposes the [MusicBrainz](https://musicbrainz.org) `/ws/2` API and the Cover Art Archive as MCP tools. Reads need no credentials; writes need OAuth (see the repo README).\n\n## Picking the right tool\n\n- **Find something by name** → `musicbrainz_search` with `entity` + a Lucene `query` (+ `view?`). Plain text matches the name; fielded queries work too (`artist:\"Miles Davis\" AND country:US`). Returns MBIDs.\n- **Get full detail for a known MBID** → `musicbrainz_lookup` with `entity` + `mbid` (+ `view?`). Add `inc` for linked data, e.g. `[\"releases\",\"release-groups\"]` on an artist, `[\"recordings\",\"labels\"]` on a release, `[\"url-rels\",\"tags\"]` on most entities.\n- **Enumerate a relationship** → `musicbrainz_browse`: every release by an artist (`entity:\"release\", linkedBy:\"artist\", mbid:<artist>`), recordings on a release, releases in a collection, etc. Takes `view?` too. This is the complete paged set (max 100/page), unlike search's fuzzy ranking.\n- **Cover art** → `musicbrainz_cover_art` with a release or release-group MBID. Returns image URLs (front/back/thumbnails); errors clearly when none exist.\n- **A pasted musicbrainz.org link** → `musicbrainz_resolve` with the `url` (+ `view?`).\n- **Check it's working** → `musicbrainz_healthcheck`.\n\n`view?` is optional everywhere it appears and defaults to `compact` — see [Response shape](#response-shape-view).\n\n## Typical flow\n\nSearch to get an MBID, then lookup/browse for detail:\n\n1. `musicbrainz_search { entity: \"artist\", query: \"Radiohead\" }` → MBID\n2. `musicbrainz_browse { entity: \"release-group\", linkedBy: \"artist\", mbid: <MBID>, limit: 100 }` → discography\n3. `musicbrainz_cover_art { entity: \"release-group\", mbid: <RG-MBID> }` → album art\n\n## Writes (OAuth, confirm-gated)\n\n`musicbrainz_submit_tags`, `musicbrainz_submit_rating`, and `musicbrainz_modify_collection` modify the user's own MusicBrainz account. Each returns a **dry-run preview** unless called with `confirm: true` — show the preview to the user and only re-call with `confirm: true` after they approve. They require `MUSICBRAINZ_OAUTH_*` to be configured.\n\n## Response shape (`view`)\n\n`musicbrainz_lookup`, `musicbrainz_search`, `musicbrainz_browse` and\n`musicbrainz_resolve` take `view: \"compact\" | \"full\"`, and **`compact` is the\ndefault** — you get the slim shape without asking, and an unrecognised value\nfalls back to it rather than erroring.\n\n**Compact here is media stripping, not a field projection.** It removes keys\nnamed like a picture — `image`, `images`, `thumbnail`/`thumbnails`, `logo`,\n`icon`, `banner`, `avatar`, and their `…Url`/`…Link`/`…Uri`/`…Src` spellings —\nplus any string value that is a URL ending in an image extension. Nothing else\nis touched. This server keeps **no** hand-written field list, deliberately:\nthere is no captured fixture of a MusicBrainz payload here, so nothing could\nhonestly say which of its fields are noise, and an invented list would hand you\na record with holes in it that reads like a verified answer. Do not expect\ncompact to name the fields it kept — it kept all of them.\n\n**The consequence that will surprise you: on most calls compact and full come\nback identical.** MusicBrainz's `/ws/2` JSON carries almost no pictures — they\nlive in the Cover Art Archive, behind `musicbrainz_cover_art`, which has no\n`view` at all. A release's `cover-art-archive` block survives compact whole\n(`artwork`, `count`, `front`, `back`): those are facts about the art, not the\nart, and none of those keys is a picture name.\n\nThe one place compact does bite is `inc: [\"url-rels\"]`. The bare-image-URL rule\nmatches on the *value*, not the key, so a relation whose target ends in\n`.jpg`/`.png` comes back as `url: { id }` with its **`resource` gone**, while\nthe wikidata relation beside it keeps its `resource` untouched. If you are\nchasing image relations, ask for `view: \"full\"`.\n\n`view: \"full\"` returns MusicBrainz's payload untouched. One shape note:\n`musicbrainz_resolve` wraps it as `{entity, mbid, data}` — `data` is the lookup\npayload verbatim — because resolve *is* `musicbrainz_lookup` with the MBID\nparsed out of a URL, and answering it in a different shape would make the\nresponse depend on which of two identical routes you took.\n\nThere is deliberately **no `raw` rung**. Nothing is rewritten on the way out\nhere, so `full` already *is* the unprojected upstream payload; a third value\nwould silently alias it. `view` is also never forwarded to MusicBrainz — it is\nconsumed by this server, not added to the query string.\n\nThe other five tools take no `view`, for three different reasons:\n\n- **`musicbrainz_cover_art`** — its product IS the image URLs. Compact strips\n  `images`/`thumbnails`, which on this tool would not shrink the response, it\n  would empty it.\n- **`musicbrainz_healthcheck`** — `{ok, reachable, oauth_configured, hint}` is\n  already narrower than any projection.\n- **`musicbrainz_submit_tags` / `musicbrainz_submit_rating` /\n  `musicbrainz_modify_collection`** — a write's response is a receipt (the\n  dry-run preview, or `{submitted, …}`): nothing to strip and everything to\n  keep.\n\n## Notes\n\n- MusicBrainz limits clients to ~1 request/second; the server paces itself, so a big browse may take a few seconds — that's expected, not an error.\n- Entity types: `area artist event genre instrument label place recording release release-group series work url`.\n\nFile v1.1.2:_meta.json\n\n{\n  \"ownerId\": \"kn700jq4sjtf2anb0rk3ft4p7n856872\",\n  \"slug\": \"musicbrainz-mcp\",\n  \"version\": \"1.1.2\",\n  \"publishedAt\": 1790178046430\n}\n\nFile v1.1.2:skill-card.md\n\n## Description:\n\nSearch and browse the MusicBrainz music encyclopedia, fetch Cover Art Archive images, resolve musicbrainz.org URLs, and, with OAuth configured, submit the user's own tags, ratings, and collection edits.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[chrischall](https://clawhub.ai/user/chrischall)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nDevelopers and external users use this skill to retrieve MusicBrainz metadata, discographies, MBIDs, cover art links, and account-specific MusicBrainz edits through the exposed MCP tools.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: OAuth-enabled tools can modify the user's own MusicBrainz tags, ratings, or collections.\n\nMitigation: Configure OAuth only when account edits are intended, show dry-run previews to the user, and submit only after explicit confirmation.\n\n## Reference(s):\n\n- [MusicBrainz](https://musicbrainz.org)\n\n## Skill Output:\n\n**Output Type(s):** [Guidance, API Calls, Text]\n\n**Output Format:** [Markdown guidance with MCP tool-call examples and JSON-shaped parameters]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Read-only lookups need no credentials; OAuth-enabled writes use dry-run previews and require explicit confirmation.]\n\n## Skill Version(s):\n\n1.1.2 (source: server release evidence)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nArchive v1.1.1: 3 files, 4243 bytes\n\nFiles: skill-card.md (2059b), SKILL.md (5886b), _meta.json (134b)\n\nFile v1.1.1:SKILL.md\n\n---\nname: musicbrainz-mcp\ndescription: Search and browse the MusicBrainz music encyclopedia (artists, releases, recordings, labels, works), fetch Cover Art Archive images, resolve musicbrainz.org URLs, and — with OAuth configured — submit your own tags, ratings, and collection edits. Use when the user asks about music metadata, discographies, album/artist/recording details, MBIDs, cover art, or wants to tag/rate music on MusicBrainz.\n---\n\n# MusicBrainz\n\nThis server exposes the [MusicBrainz](https://musicbrainz.org) `/ws/2` API and the Cover Art Archive as MCP tools. Reads need no credentials; writes need OAuth (see the repo README).\n\n## Picking the right tool\n\n- **Find something by name** → `musicbrainz_search` with `entity` + a Lucene `query` (+ `view?`). Plain text matches the name; fielded queries work too (`artist:\"Miles Davis\" AND country:US`). Returns MBIDs.\n- **Get full detail for a known MBID** → `musicbrainz_lookup` with `entity` + `mbid` (+ `view?`). Add `inc` for linked data, e.g. `[\"releases\",\"release-groups\"]` on an artist, `[\"recordings\",\"labels\"]` on a release, `[\"url-rels\",\"tags\"]` on most entities.\n- **Enumerate a relationship** → `musicbrainz_browse`: every release by an artist (`entity:\"release\", linkedBy:\"artist\", mbid:<artist>`), recordings on a release, releases in a collection, etc. Takes `view?` too. This is the complete paged set (max 100/page), unlike search's fuzzy ranking.\n- **Cover art** → `musicbrainz_cover_art` with a release or release-group MBID. Returns image URLs (front/back/thumbnails); errors clearly when none exist.\n- **A pasted musicbrainz.org link** → `musicbrainz_resolve` with the `url` (+ `view?`).\n- **Check it's working** → `musicbrainz_healthcheck`.\n\n`view?` is optional everywhere it appears and defaults to `compact` — see [Response shape](#response-shape-view).\n\n## Typical flow\n\nSearch to get an MBID, then lookup/browse for detail:\n\n1. `musicbrainz_search { entity: \"artist\", query: \"Radiohead\" }` → MBID\n2. `musicbrainz_browse { entity: \"release-group\", linkedBy: \"artist\", mbid: <MBID>, limit: 100 }` → discography\n3. `musicbrainz_cover_art { entity: \"release-group\", mbid: <RG-MBID> }` → album art\n\n## Writes (OAuth, confirm-gated)\n\n`musicbrainz_submit_tags`, `musicbrainz_submit_rating`, and `musicbrainz_modify_collection` modify the user's own MusicBrainz account. Each returns a **dry-run preview** unless called with `confirm: true` — show the preview to the user and only re-call with `confirm: true` after they approve. They require `MUSICBRAINZ_OAUTH_*` to be configured.\n\n## Response shape (`view`)\n\n`musicbrainz_lookup`, `musicbrainz_search`, `musicbrainz_browse` and\n`musicbrainz_resolve` take `view: \"compact\" | \"full\"`, and **`compact` is the\ndefault** — you get the slim shape without asking, and an unrecognised value\nfalls back to it rather than erroring.\n\n**Compact here is media stripping, not a field projection.** It removes keys\nnamed like a picture — `image`, `images`, `thumbnail`/`thumbnails`, `logo`,\n`icon`, `banner`, `avatar`, and their `…Url`/`…Link`/`…Uri`/`…Src` spellings —\nplus any string value that is a URL ending in an image extension. Nothing else\nis touched. This server keeps **no** hand-written field list, deliberately:\nthere is no captured fixture of a MusicBrainz payload here, so nothing could\nhonestly say which of its fields are noise, and an invented list would hand you\na record with holes in it that reads like a verified answer. Do not expect\ncompact to name the fields it kept — it kept all of them.\n\n**The consequence that will surprise you: on most calls compact and full come\nback identical.** MusicBrainz's `/ws/2` JSON carries almost no pictures — they\nlive in the Cover Art Archive, behind `musicbrainz_cover_art`, which has no\n`view` at all. A release's `cover-art-archive` block survives compact whole\n(`artwork`, `count`, `front`, `back`): those are facts about the art, not the\nart, and none of those keys is a picture name.\n\nThe one place compact does bite is `inc: [\"url-rels\"]`. The bare-image-URL rule\nmatches on the *value*, not the key, so a relation whose target ends in\n`.jpg`/`.png` comes back as `url: { id }` with its **`resource` gone**, while\nthe wikidata relation beside it keeps its `resource` untouched. If you are\nchasing image relations, ask for `view: \"full\"`.\n\n`view: \"full\"` returns MusicBrainz's payload untouched. One shape note:\n`musicbrainz_resolve` wraps it as `{entity, mbid, data}` — `data` is the lookup\npayload verbatim — because resolve *is* `musicbrainz_lookup` with the MBID\nparsed out of a URL, and answering it in a different shape would make the\nresponse depend on which of two identical routes you took.\n\nThere is deliberately **no `raw` rung**. Nothing is rewritten on the way out\nhere, so `full` already *is* the unprojected upstream payload; a third value\nwould silently alias it. `view` is also never forwarded to MusicBrainz — it is\nconsumed by this server, not added to the query string.\n\nThe other five tools take no `view`, for three different reasons:\n\n- **`musicbrainz_cover_art`** — its product IS the image URLs. Compact strips\n  `images`/`thumbnails`, which on this tool would not shrink the response, it\n  would empty it.\n- **`musicbrainz_healthcheck`** — `{ok, reachable, oauth_configured, hint}` is\n  already narrower than any projection.\n- **`musicbrainz_submit_tags` / `musicbrainz_submit_rating` /\n  `musicbrainz_modify_collection`** — a write's response is a receipt (the\n  dry-run preview, or `{submitted, …}`): nothing to strip and everything to\n  keep.\n\n## Notes\n\n- MusicBrainz limits clients to ~1 request/second; the server paces itself, so a big browse may take a few seconds — that's expected, not an error.\n- Entity types: `area artist event genre instrument label place recording release release-group series work url`.\n\nFile v1.1.1:_meta.json\n\n{\n  \"ownerId\": \"kn700jq4sjtf2anb0rk3ft4p7n856872\",\n  \"slug\": \"musicbrainz-mcp\",\n  \"version\": \"1.1.1\",\n  \"publishedAt\": 1789964010734\n}\n\nFile v1.1.1:skill-card.md\n\n## Description:\n\nSearch and browse the MusicBrainz music encyclopedia (artists, releases, recordings, labels, works), fetch Cover Art Archive images, resolve musicbrainz.org URLs, and, with OAuth configured, submit your own tags, ratings, and collection edits.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[chrischall](https://clawhub.ai/user/chrischall)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nExternal users and agents use this skill to retrieve MusicBrainz metadata, discographies, album art links, MBIDs, and details about artists, releases, recordings, labels, and works. Users with OAuth configured can also prepare and confirm account-scoped MusicBrainz edits such as tags, ratings, and collection changes.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: OAuth-enabled write tools can change the user's own MusicBrainz tags, ratings, or collections when confirmed.\n\nMitigation: Review each dry-run preview with the user before making a confirm:true call.\n\nRisk: Large browse requests may take longer because MusicBrainz clients are limited to roughly one request per second.\n\nMitigation: Expect paced responses for large result sets and avoid treating normal delay as failure.\n\n## Reference(s):\n\n- [MusicBrainz](https://musicbrainz.org)\n\n## Skill Output:\n\n**Output Type(s):** [Text, JSON, API Calls, Guidance]\n\n**Output Format:** [JSON tool responses and concise text guidance, including MusicBrainz metadata, Cover Art Archive URLs, dry-run previews, and write receipts]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Read operations need no credentials; write operations require OAuth and confirm:true after dry-run review.]\n\n## Skill Version(s):\n\n1.1.1 (source: server release evidence)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nArchive v1.1.0: 3 files, 4184 bytes\n\nFiles: skill-card.md (1953b), SKILL.md (5886b), _meta.json (134b)\n\nFile v1.1.0:SKILL.md\n\n---\nname: musicbrainz-mcp\ndescription: Search and browse the MusicBrainz music encyclopedia (artists, releases, recordings, labels, works), fetch Cover Art Archive images, resolve musicbrainz.org URLs, and — with OAuth configured — submit your own tags, ratings, and collection edits. Use when the user asks about music metadata, discographies, album/artist/recording details, MBIDs, cover art, or wants to tag/rate music on MusicBrainz.\n---\n\n# MusicBrainz\n\nThis server exposes the [MusicBrainz](https://musicbrainz.org) `/ws/2` API and the Cover Art Archive as MCP tools. Reads need no credentials; writes need OAuth (see the repo README).\n\n## Picking the right tool\n\n- **Find something by name** → `musicbrainz_search` with `entity` + a Lucene `query` (+ `view?`). Plain text matches the name; fielded queries work too (`artist:\"Miles Davis\" AND country:US`). Returns MBIDs.\n- **Get full detail for a known MBID** → `musicbrainz_lookup` with `entity` + `mbid` (+ `view?`). Add `inc` for linked data, e.g. `[\"releases\",\"release-groups\"]` on an artist, `[\"recordings\",\"labels\"]` on a release, `[\"url-rels\",\"tags\"]` on most entities.\n- **Enumerate a relationship** → `musicbrainz_browse`: every release by an artist (`entity:\"release\", linkedBy:\"artist\", mbid:<artist>`), recordings on a release, releases in a collection, etc. Takes `view?` too. This is the complete paged set (max 100/page), unlike search's fuzzy ranking.\n- **Cover art** → `musicbrainz_cover_art` with a release or release-group MBID. Returns image URLs (front/back/thumbnails); errors clearly when none exist.\n- **A pasted musicbrainz.org link** → `musicbrainz_resolve` with the `url` (+ `view?`).\n- **Check it's working** → `musicbrainz_healthcheck`.\n\n`view?` is optional everywhere it appears and defaults to `compact` — see [Response shape](#response-shape-view).\n\n## Typical flow\n\nSearch to get an MBID, then lookup/browse for detail:\n\n1. `musicbrainz_search { entity: \"artist\", query: \"Radiohead\" }` → MBID\n2. `musicbrainz_browse { entity: \"release-group\", linkedBy: \"artist\", mbid: <MBID>, limit: 100 }` → discography\n3. `musicbrainz_cover_art { entity: \"release-group\", mbid: <RG-MBID> }` → album art\n\n## Writes (OAuth, confirm-gated)\n\n`musicbrainz_submit_tags`, `musicbrainz_submit_rating`, and `musicbrainz_modify_collection` modify the user's own MusicBrainz account. Each returns a **dry-run preview** unless called with `confirm: true` — show the preview to the user and only re-call with `confirm: true` after they approve. They require `MUSICBRAINZ_OAUTH_*` to be configured.\n\n## Response shape (`view`)\n\n`musicbrainz_lookup`, `musicbrainz_search`, `musicbrainz_browse` and\n`musicbrainz_resolve` take `view: \"compact\" | \"full\"`, and **`compact` is the\ndefault** — you get the slim shape without asking, and an unrecognised value\nfalls back to it rather than erroring.\n\n**Compact here is media stripping, not a field projection.** It removes keys\nnamed like a picture — `image`, `images`, `thumbnail`/`thumbnails`, `logo`,\n`icon`, `banner`, `avatar`, and their `…Url`/`…Link`/`…Uri`/`…Src` spellings —\nplus any string value that is a URL ending in an image extension. Nothing else\nis touched. This server keeps **no** hand-written field list, deliberately:\nthere is no captured fixture of a MusicBrainz payload here, so nothing could\nhonestly say which of its fields are noise, and an invented list would hand you\na record with holes in it that reads like a verified answer. Do not expect\ncompact to name the fields it kept — it kept all of them.\n\n**The consequence that will surprise you: on most calls compact and full come\nback identical.** MusicBrainz's `/ws/2` JSON carries almost no pictures — they\nlive in the Cover Art Archive, behind `musicbrainz_cover_art`, which has no\n`view` at all. A release's `cover-art-archive` block survives compact whole\n(`artwork`, `count`, `front`, `back`): those are facts about the art, not the\nart, and none of those keys is a picture name.\n\nThe one place compact does bite is `inc: [\"url-rels\"]`. The bare-image-URL rule\nmatches on the *value*, not the key, so a relation whose target ends in\n`.jpg`/`.png` comes back as `url: { id }` with its **`resource` gone**, while\nthe wikidata relation beside it keeps its `resource` untouched. If you are\nchasing image relations, ask for `view: \"full\"`.\n\n`view: \"full\"` returns MusicBrainz's payload untouched. One shape note:\n`musicbrainz_resolve` wraps it as `{entity, mbid, data}` — `data` is the lookup\npayload verbatim — because resolve *is* `musicbrainz_lookup` with the MBID\nparsed out of a URL, and answering it in a different shape would make the\nresponse depend on which of two identical routes you took.\n\nThere is deliberately **no `raw` rung**. Nothing is rewritten on the way out\nhere, so `full` already *is* the unprojected upstream payload; a third value\nwould silently alias it. `view` is also never forwarded to MusicBrainz — it is\nconsumed by this server, not added to the query string.\n\nThe other five tools take no `view`, for three different reasons:\n\n- **`musicbrainz_cover_art`** — its product IS the image URLs. Compact strips\n  `images`/`thumbnails`, which on this tool would not shrink the response, it\n  would empty it.\n- **`musicbrainz_healthcheck`** — `{ok, reachable, oauth_configured, hint}` is\n  already narrower than any projection.\n- **`musicbrainz_submit_tags` / `musicbrainz_submit_rating` /\n  `musicbrainz_modify_collection`** — a write's response is a receipt (the\n  dry-run preview, or `{submitted, …}`): nothing to strip and everything to\n  keep.\n\n## Notes\n\n- MusicBrainz limits clients to ~1 request/second; the server paces itself, so a big browse may take a few seconds — that's expected, not an error.\n- Entity types: `area artist event genre instrument label place recording release release-group series work url`.\n\nFile v1.1.0:_meta.json\n\n{\n  \"ownerId\": \"kn700jq4sjtf2anb0rk3ft4p7n856872\",\n  \"slug\": \"musicbrainz-mcp\",\n  \"version\": \"1.1.0\",\n  \"publishedAt\": 1789872721505\n}\n\nFile v1.1.0:skill-card.md\n\n## Description:\n\nSearches and browses MusicBrainz metadata, fetches Cover Art Archive images, resolves MusicBrainz URLs, and, when OAuth is configured, submits user-approved tags, ratings, and collection edits.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[chrischall](https://clawhub.ai/user/chrischall)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nDevelopers and agents use this skill to answer music metadata questions, inspect artist and release catalogs, retrieve cover art URLs, and manage the user's own MusicBrainz tags, ratings, or collections after OAuth setup and explicit confirmation.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: OAuth-enabled write tools can change the user's own MusicBrainz tags, ratings, or collections.\n\nMitigation: Review the dry-run preview and only approve confirm:true write calls after the user explicitly confirms the intended change.\n\nRisk: Read operations query external MusicBrainz and Cover Art Archive services.\n\nMitigation: Avoid sending sensitive queries and disclose external service use when the surrounding workflow requires it.\n\n## Reference(s):\n\n- [MusicBrainz](https://musicbrainz.org)\n\n## Skill Output:\n\n**Output Type(s):** [text, markdown, API calls, guidance]\n\n**Output Format:** [Markdown guidance with MCP tool call examples and JSON-like response descriptions]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Supports compact and full response views for selected read tools; OAuth-enabled write tools return a dry-run preview unless confirm:true is explicitly approved.]\n\n## Skill Version(s):\n\n1.1.0 (source: server release metadata)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.","readmeExcerpt":"Skill: musicbrainz-mcp Owner: chrischall Summary: Search and browse the MusicBrainz music encyclopedia (artists, releases, recordings, labels, works), fetch Cover Art Archive images, resolve musicbrainz.org URLs, and — with OAuth configured — submit your own tags, ratings, and collection edits. Use when the user asks about music metadata, discographies, album/artist/recording details, MBIDs, cover art, or wants to ta","codeSnippets":[],"executableExamples":[],"parameters":null,"dependencies":[],"permissions":[],"extractedFiles":[{"path":"SKILL.md","content":"---\nname: musicbrainz-mcp\ndescription: Search and browse the MusicBrainz music encyclopedia (artists, releases, recordings, labels, works), fetch Cover Art Archive images, resolve musicbrainz.org URLs, and — with OAuth configured — submit your own tags, ratings, and collection edits. Use when the user asks about music metadata, discographies, album/artist/recording details, MBIDs, cover art, or wants to tag/rate music on MusicBrainz.\n---\n\n# MusicBrainz\n\nThis server exposes the [MusicBrainz](https://musicbrainz.org) `/ws/2` API and the Cover Art Archive as MCP tools. Reads need no credentials; writes need OAuth (see the repo README).\n\n## Picking the right tool\n\n- **Find something by name** → `musicbrainz_search` with `entity` + a Lucene `query` (+ `view?`). Plain text matches the name; fielded queries work too (`artist:\"Miles Davis\" AND country:US`). Returns MBIDs.\n- **Get full detail for a known MBID** → `musicbrainz_lookup` with `entity` + `mbid` (+ `view?`). Add `inc` for linked data, e.g. `[\"releases\",\"release-groups\"]` on an artist, `[\"recordings\",\"labels\"]` on a release, `[\"url-rels\",\"tags\"]` on most entities.\n- **Enumerate a relationship** → `musicbrainz_browse`: every release by an artist (`entity:\"release\", linkedBy:\"artist\", mbid:<artist>`), recordings on a release, releases in a collection, etc. Takes `view?` too. This is the complete paged set (max 100/page), unlike search's fuzzy ranking.\n- **Cover art** → `musicbrainz_cover_art` with a release or release-group MBID. Returns image URLs (front/back/thumbnails); errors clearly when none exist.\n- **A pasted musicbrainz.org link** → `musicbrainz_resolve` with the `url` (+ `view?`).\n- **Check it's working** → `musicbrainz_healthcheck`.\n\n`view?` is optional everywhere it appears and defaults to `compact` — see [Response shape](#response-shape-view).\n\n## Typical flow\n\nSearch to get an MBID, then lookup/browse for detail:\n\n1. `musicbrainz_search { entity: \"artist\", query: \"Radiohead\" }` → MBID\n2. `musicbrainz_browse { entity: \"release-group\", linkedBy: \"artist\", mbid: <MBID>, limit: 100 }` → discography\n3. `musicbrainz_cover_art { entity: \"release-group\", mbid: <RG-MBID> }` → album art\n\n## Writes (OAuth, confirmation-gated)\n\n`musicbrainz_submit_tags`, `musicbrainz_submit_rating`, and `musicbrainz_modify_collection` modify the user's own MusicBrainz account. Each asks the user to confirm first: a confirmation prompt where the client supports one (unless the server sets `MCP_CONFIRM_ELICITATION=off`); otherwise the first call sends nothing and returns `status: \"confirmation-required\"` with a `preview` and a `confirmToken` — show the preview to the user and only repeat the same call with that `confirmToken` after they approve. A token works once, and changing any argument invalidates it (`DRAFT_CHANGED`: re-confirm the fresh preview). They require `MUSICBRAINZ_OAUTH_*` to be configured.\n\n## Response shape (`view`)\n\n`musicbrainz_lookup`, `musicbrainz_search`, `musicbrainz_browse` and\n`musicbrainz"},{"path":"_meta.json","content":"{\n  \"ownerId\": \"kn700jq4sjtf2anb0rk3ft4p7n856872\",\n  \"slug\": \"musicbrainz-mcp\",\n  \"version\": \"1.2.6\",\n  \"publishedAt\": 1791588383006\n}"},{"path":"skill-card.md","content":"## Description:\n\nHelps agents search MusicBrainz music metadata, find cover art, and, with OAuth and user confirmation, edit the user's own tags, ratings, and collections.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[chrischall](https://clawhub.ai/user/chrischall)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nMusic listeners, researchers, and developers use this skill to look up artists, releases, recordings, and cover art, or manage their own MusicBrainz tags, ratings, and collections.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: OAuth-enabled edits can change tags, ratings, or collections on the user's MusicBrainz account.\n\nMitigation: Review each proposed change and its preview, and obtain user approval before confirming any write.\n\n## Reference(s):\n\n- [MusicBrainz](https://musicbrainz.org)\n\n## Skill Output:\n\n**Output Type(s):** [Text, Guidance]\n\n**Output Format:** [Markdown]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [May include MusicBrainz identifiers, cover-art URLs, and account-edit confirmation previews.]\n\n## Skill Version(s):\n\n1.2.6 (source: ClawHub release metadata)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment."}],"languages":[],"docsSourceLabel":"CLAWHUB","editorialOverview":"Search and browse the MusicBrainz music encyclopedia (artists, releases, recordings, labels, works), fetch Cover Art Archive images, resolve musicbrainz.org URLs, and — with OAuth configured — submit your own tags, ratings, and collection edits. Use when the user asks about music metadata, discographies, album/artist/recording details, MBIDs, cover art, or wants to tag/rate music on MusicBrainz. Skill: musicbrainz-mcp Owner: chrischall Summary: Search and browse the MusicBrainz music encyclopedia (artists, releases, recordings, labels, works), fetch Cover Art Archive images, resolve musicbrainz.org URLs, and — with OAuth configured — submit your own tags, ratings, and collection edits. Use when the user asks about music metadata, discographies, album/artist/recording details, MBIDs, cover art, or wants to ta","editorialQuality":{"score":100,"threshold":65,"status":"ready","wordCount":1218,"uniquenessScore":45,"reasons":[]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-10-10T02:04:18.399Z","emptyReason":"No screenshots, media assets, or demo links are available."},"primaryImageUrl":null,"mediaAssetCount":0,"assets":[],"demoUrl":null},"ownerResources":{"evidence":{"source":"unclaimed","verified":false,"confidence":"low","updatedAt":"2026-10-10T02:04:18.399Z","emptyReason":"This page has not been claimed by the agent owner."},"hasCustomPage":false,"customPageUpdatedAt":null,"customLinks":[],"structuredLinks":{"docsUrl":null,"demoUrl":null,"supportUrl":null,"pricingUrl":null,"statusUrl":null},"customPage":null},"relatedAgents":{"evidence":{"source":"protocol-neighbors","verified":false,"confidence":"medium","updatedAt":"2026-10-10T08:46:29.899Z","emptyReason":null},"items":[{"id":"8ebccd8e-3863-4187-8355-c3f14e1f9edf","entityType":"agent","canonicalPath":"/agent/iofficeai-aionui","slug":"iofficeai-aionui","name":"AionUi","description":"Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!","url":"https://github.com/iOfficeAI/AionUi","homepage":"https://www.aionui.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-10-09T19:11:12.944Z","createdAt":"2026-02-25T03:38:16.584Z","downloads":null},{"id":"b917f68a-ebff-438e-84f8-3f4b2494c0bc","entityType":"agent","canonicalPath":"/agent/activepieces-activepieces","slug":"activepieces-activepieces","name":"activepieces","description":"AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents","url":"https://github.com/activepieces/activepieces","homepage":"https://www.activepieces.com","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-15T02:22:12.426Z","createdAt":"2026-02-25T03:38:12.412Z","downloads":null},{"id":"5cb26759-3a39-483f-94cf-276a98c13bb8","entityType":"agent","canonicalPath":"/agent/cherryhq-cherry-studio","slug":"cherryhq-cherry-studio","name":"cherry-studio","description":"AI productivity studio with smart chat, autonomous agents, and 300+ assistants. Unified access to frontier LLMs","url":"https://github.com/CherryHQ/cherry-studio","homepage":"https://cherry-ai.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-11T14:38:40.986Z","createdAt":"2026-02-25T03:38:19.379Z","downloads":null},{"id":"6f6582d0-5d76-4f0f-b81d-86520247950b","entityType":"agent","canonicalPath":"/agent/copilotkit-copilotkit","slug":"copilotkit-copilotkit","name":"CopilotKit","description":"The Frontend for Agents & Generative UI. React + Angular","url":"https://github.com/CopilotKit/CopilotKit","homepage":"https://docs.copilotkit.ai","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-03-25T09:50:57.846Z","createdAt":"2026-02-25T03:39:14.617Z","downloads":null}],"links":{"hub":"/agent","source":"/agent/source/clawhub","protocols":[{"label":"OpenClaw","href":"/agent/protocol/openclew"}]}}}