get_recording_details
Retrieve detailed metadata for a music recording, including artist information, duration, ISRC codes, genres, and the releases where it appears.
Instructions
Get recording details: artist, duration, ISRCs, genres, and which releases (albums/singles) it appears on.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| recording_id | Yes |
Implementation Reference
- mcp_musicbrainz/server.py:475-515 (handler)Implementation of the get_recording_details tool which fetches detailed information about a MusicBrainz recording using the musicbrainzngs library.
@mcp.tool() @cached_tool() def get_recording_details(recording_id: str) -> str: """ Get recording details: artist, duration, ISRCs, genres, and which releases (albums/singles) it appears on. """ res = musicbrainzngs.get_recording_by_id( recording_id, includes=[ "releases", "artist-credits", "isrcs", "tags", "ratings", ], ) rec = res["recording"] releases = [ f" - {rel['title']} ({rel.get('date', '?')}) | release ID: {rel['id']}" for rel in rec.get("release-list", []) ] isrcs = ", ".join(rec.get("isrc-list", [])) or "None" tags = [t["name"] for t in rec.get("tag-list", [])] genres = ", ".join(tags) if tags else "" artist = rec.get("artist-credit-phrase", "N/A") dur = _fmt_duration(rec.get("length")) parts = [ f"Title: {rec['title']}", f"Artist: {artist}", f"Duration: {dur}", f"ISRCs: {isrcs}", f"Genres: {genres or 'None listed'}", f"MBID: {recording_id}", f"\nAppears on ({len(releases)} releases):", *releases[:25], ] return "\n".join(parts)