Query the MusicBrainz music database for artists, albums, and recordings.
mcp-musicbrainz
An MCP (Model Context Protocol) server that provides tools for querying the MusicBrainz music database. Search for artists, albums, recordings, labels, and more — directly from your AI assistant.
Tools
| Tool | Description |
|---|---|
search_entities |
Search for any MusicBrainz entity using Lucene syntax. Primary entry point |
search_entities_fuzzy |
Typo-tolerant search with automatic exact-first fallback |
search_artists |
Search for artists with filters (country, type, gender) |
search_releases |
Search for releases with filters (title, artist, label, barcode) |
search_recordings |
Search for recordings with filters (title, artist, release, ISRC) |
search_release_groups |
Search for release groups (albums/EPs/singles) with filters (artist, type) |
browse_entities |
Browse entities linked to another entity with paging and optional includes (e.g. all releases by an artist with label info) |
get_artist_details |
Artist info with aliases, genres, ratings, URLs, and first 10 release groups |
get_artist_discography |
Full paged discography (release groups) for an artist |
get_release_details |
Release (specific edition) tracklist, barcode, label, and catalog number |
get_release_group_details |
Release group (album concept) details with type, genres, and editions (with label, format, country) |
get_recording_details |
Recording info with appearances, ISRCs, and genres |
get_album_tracks |
Tracklist with durations and performer credits (instruments, vocals) for a release group |
get_work_details |
Musical work details with composers and lyricists |
get_area_details |
Geographic area info (country, city) with aliases |
get_label_details |
Label info with type, area, genres, and URLs |
get_entity_relationships |
Relationships for any entity type (band members, producers, etc.) |
get_cover_art_urls |
Cover art image URLs from the Cover Art Archive |
lookup_by_barcode |
Find a release by UPC/EAN barcode |
lookup_recording_by_isrc |
Translate a commercial ISRC (Spotify/Apple) to a MusicBrainz recording |
lookup_work_by_iswc |
Translate a publisher's ISWC to a MusicBrainz work (composition) |
get_event_details |
Event info (concert, festival) with date, time, aliases, and tags |
get_instrument_details |
Musical instrument info with type, description, aliases, and tags |
get_place_details |
Place info (venue, studio) with address, coordinates, aliases, and tags |
get_series_details |
Series info (release series, tour) with type, aliases, and tags |
get_release_group_cover_art |
Cover art image URLs for a release group (album concept) |
Setup
Requires Python 3.12+ and uv.
git clone https://github.com/zas/mcp-musicbrainz.git
cd mcp-musicbrainz
uv sync
Usage
Standalone
uv run mcp-musicbrainz
Claude Desktop
Add to claude_desktop_config.json:
Kiro CLI
Add to ~/.kiro/settings/mcp.json:
Cursor
Add to .cursor/mcp.json in your project:
Windsurf
Add to ~/.codeium/windsurf/mcp_config.json:
All use the same configuration:
{
"mcpServers": {
"musicbrainz": {
"command": "uv",
"args": ["run", "--directory", "/path/to/mcp-musicbrainz", "mcp-musicbrainz"]
}
}
}
Development
uv sync
uv run pytest tests/ -v
uv run ruff check .
Pre-commit hooks
Install pre-commit hooks to automatically run linting and formatting on commit, and tests on push:
uv run pre-commit install
Caching
Responses are cached locally in .musicbrainz_cache/ using diskcache with a 24-hour TTL to respect MusicBrainz rate limits.
License
Tools (26)
search_entitiesSearch for any MusicBrainz entity using Lucene syntax.search_entities_fuzzyTypo-tolerant search with automatic exact-first fallback.search_artistsSearch for artists with filters like country, type, and gender.search_releasesSearch for releases with filters like title, artist, label, and barcode.search_recordingsSearch for recordings with filters like title, artist, release, and ISRC.search_release_groupsSearch for release groups (albums/EPs/singles) with filters like artist and type.browse_entitiesBrowse entities linked to another entity with paging and optional includes.get_artist_detailsRetrieve artist info including aliases, genres, ratings, URLs, and release groups.get_artist_discographyRetrieve full paged discography for an artist.get_release_detailsRetrieve release tracklist, barcode, label, and catalog number.get_release_group_detailsRetrieve release group details with type, genres, and editions.get_recording_detailsRetrieve recording info with appearances, ISRCs, and genres.get_album_tracksRetrieve tracklist with durations and performer credits for a release group.get_work_detailsRetrieve musical work details with composers and lyricists.get_area_detailsRetrieve geographic area info with aliases.get_label_detailsRetrieve label info with type, area, genres, and URLs.get_entity_relationshipsRetrieve relationships for any entity type.get_cover_art_urlsRetrieve cover art image URLs from the Cover Art Archive.lookup_by_barcodeFind a release by UPC/EAN barcode.lookup_recording_by_isrcTranslate a commercial ISRC to a MusicBrainz recording.lookup_work_by_iswcTranslate a publisher's ISWC to a MusicBrainz work.get_event_detailsRetrieve event info with date, time, aliases, and tags.get_instrument_detailsRetrieve musical instrument info with type, description, and tags.get_place_detailsRetrieve place info with address, coordinates, and tags.get_series_detailsRetrieve series info with type, aliases, and tags.get_release_group_detailsRetrieve cover art image URLs for a release group.Configuration
{"mcpServers": {"musicbrainz": {"command": "uv", "args": ["run", "--directory", "/path/to/mcp-musicbrainz", "mcp-musicbrainz"]}}}