Review the MusicBrainz API documentation and set a descriptive User-Agent header for your requests (format: AppName/Version (contact-url)), as anonymous or library default user agents may be throttled or blocked.
Search for a recording by sending a GET request to the recording search endpoint with a Lucene query string (e.g., recording:title AND artist:name) in the query parameter.
Identify the correct recording from the results array using the MBID (MusicBrainz Identifier) in the id field.
Fetch the full recording resource by sending a GET request to the recording lookup endpoint (/ws/2/recording/{mbid}), adding an inc parameter to request related entities such as artists, releases, or tags.
Parse the JSON response (request JSON by appending fmt=json) for the recording's title, length, artist-credit, and any included relation data.
Known gotchas
MusicBrainz enforces a strict rate limit (currently 1 request per second for most clients); exceeding this results in 503 responses.
A descriptive and valid User-Agent header is mandatory; requests with missing or generic user agents may be blocked without warning.
MBID-based lookups are the stable reference method; search results can change over time as the database is edited, so store MBIDs rather than relying on repeated name searches.
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp