When to use this skill
When the user asks about a music artist — who was in the band, what instruments they played, what genre tags apply, when the group formed or ended, or how to tell two artists with the same name apart — reach for MusicBrainz. It is an open music encyclopedia that models artist relationships with instrument credits, crowd-sourced genre tags, and community ratings. For lyrics, audio, or chart positions, this is the wrong skill.
Your best first call
curl "https://musicbrainz.org/ws/2/artist?query=artist%3Adaft+punk&fmt=json&limit=10"
No auth. No key. But you must include fmt=json or you get XML. The query parameter supports Lucene syntax — artist:nirvana AND country:US narrows by field. Returns a paginated result with artists array, each entry carrying id (the MBID), name, disambiguation, country, type, score (0–100 match quality), and life-span. The disambiguation field is MusicBrainz's answer to name collisions — at least five artists share the name "Nirvana", and each gets a unique parenthetical like "1980s-1990s US grunge band".
When you have the MBID, a detail lookup with inc= returns everything the bare response hides — member relations with instrument credits, genre tags, and community ratings:
curl "https://musicbrainz.org/ws/2/artist/056e4f3e-d505-4dad-8ec1-d04f521cbb56?fmt=json&inc=artist-rels+tags+ratings"
Key fields in the detail response: relations (member-of with attributes listing specific instruments — Thomas Bangalter played bass, keyboard, synthesizer; Guy-Manuel de Homem-Christo played drums, guitar, synthesizer), tags (genre names with vote counts — higher is more established), rating (community score 0–5), and life-span (with begin, end, ended).
Fallbacks (when the best call isn't enough)
- You already have the artist's MBID →
/ws/2/artist/{mbid}?fmt=json&inc=artist-rels+tags+ratings skips the search and returns full detail directly.
- You have an ISRC code, not an artist name →
/ws/2/isrc/{isrc}?fmt=json resolves the code to a recording, from which you can follow artist relations. One of the few public APIs that resolves ISRCs directly.
- MusicBrainz is down → No fallback — no other public API models artist relationships with instrument credits or provides the same disambiguation quality.
Pitfalls
fmt=json is not optional. Omit it and you get XML. Every request must include it.
- MBIDs are opaque UUIDs. You cannot derive an artist's MBID from their name — you must search first, then use the
id from the result. Calling /artist/{made-up-uuid} returns 404, not an empty result.
- Rate limit is 1 request/second and requires a
User-Agent header identifying your application. MusicBrainz will block IPs that exceed this. Include a contact URL or email in your User-Agent.
- Search
count is total matches, not page size. A search returning "count": 266 with "limit": 10 has 266 total results across 27 pages. Use offset to paginate — do not assume count is the length of the array you received.
One-line summary for the user
I can look up music artist metadata — members, instruments, genres, lifespan, disambiguation — from MusicBrainz in unauthenticated JSON requests, and it is uniquely good at telling apart artists who share a name.
SKILL.md source (frontmatter + body)
---
name: look-up-music-artist-metadata
description: When the user asks about a music artist — members, instruments, genres, lifespan, disambiguation, or how to tell same-named artists apart — reach for MusicBrainz. Unauthenticated JSON API with Lucene search and rich entity detail.
---
## When to use this skill
When the user asks about a music artist — who was in the band, what instruments they played, what genre tags apply, when the group formed or ended, or how to tell two artists with the same name apart — reach for MusicBrainz. It is an open music encyclopedia that models artist relationships with instrument credits, crowd-sourced genre tags, and community ratings. For lyrics, audio, or chart positions, this is the wrong skill.
## Your best first call
```bash
curl "https://musicbrainz.org/ws/2/artist?query=artist%3Adaft+punk&fmt=json&limit=10"
```
No auth. No key. But you must include `fmt=json` or you get XML. The `query` parameter supports Lucene syntax — `artist:nirvana AND country:US` narrows by field. Returns a paginated result with `artists` array, each entry carrying `id` (the MBID), `name`, `disambiguation`, `country`, `type`, `score` (0–100 match quality), and `life-span`. The `disambiguation` field is MusicBrainz's answer to name collisions — at least five artists share the name "Nirvana", and each gets a unique parenthetical like "1980s-1990s US grunge band".
When you have the MBID, a detail lookup with `inc=` returns everything the bare response hides — member relations with instrument credits, genre tags, and community ratings:
```bash
curl "https://musicbrainz.org/ws/2/artist/056e4f3e-d505-4dad-8ec1-d04f521cbb56?fmt=json&inc=artist-rels+tags+ratings"
```
Key fields in the detail response: `relations` (member-of with `attributes` listing specific instruments — Thomas Bangalter played bass, keyboard, synthesizer; Guy-Manuel de Homem-Christo played drums, guitar, synthesizer), `tags` (genre names with vote counts — higher is more established), `rating` (community score 0–5), and `life-span` (with `begin`, `end`, `ended`).
## Fallbacks (when the best call isn't enough)
- **You already have the artist's MBID** → `/ws/2/artist/{mbid}?fmt=json&inc=artist-rels+tags+ratings` skips the search and returns full detail directly.
- **You have an ISRC code, not an artist name** → `/ws/2/isrc/{isrc}?fmt=json` resolves the code to a recording, from which you can follow `artist` relations. One of the few public APIs that resolves ISRCs directly.
- **MusicBrainz is down** → No fallback — no other public API models artist relationships with instrument credits or provides the same disambiguation quality.
## Pitfalls
- **`fmt=json` is not optional.** Omit it and you get XML. Every request must include it.
- **MBIDs are opaque UUIDs.** You cannot derive an artist's MBID from their name — you must search first, then use the `id` from the result. Calling `/artist/{made-up-uuid}` returns 404, not an empty result.
- **Rate limit is 1 request/second** and requires a `User-Agent` header identifying your application. MusicBrainz will block IPs that exceed this. Include a contact URL or email in your `User-Agent`.
- **Search `count` is total matches, not page size.** A search returning `"count": 266` with `"limit": 10` has 266 total results across 27 pages. Use `offset` to paginate — do not assume `count` is the length of the array you received.
## One-line summary for the user
I can look up music artist metadata — members, instruments, genres, lifespan, disambiguation — from MusicBrainz in unauthenticated JSON requests, and it is uniquely good at telling apart artists who share a name.