TheAudioDB MCP — community music metadata database. Provides artist bios/genres/formed-year/country, album info + artwork URLs, and track listings. Complements MusicBrainz by adding artwork URLs and biographies.
TheAudioDB MCP has clear, well-structured tool definitions with consistent naming (verb_noun pattern: search_*, get_*) and solid descriptions (avg 180 chars, within 10-1024 baseline). All 4 tools have complete input schemas with typed properties and required arrays. However, output schemas are entirely undocumented, LLMs cannot predict response structure for planning downstream calls. Parameter descriptions are present but lack constraints (no enums, ranges, or format specs). Error handling returns generic error objects without recovery guidance. No tool annotations (readOnlyHint, etc.) despite all tools being read-only. Missing pagination guidance for potentially large result sets (search_artist, search_album could return many results).
List all tracks on a TheAudioDB album by its idAlbum (as returned by search_album). Returns each track id, title, track number, duration in milliseconds, genre, and music-video URL when available.
Look up a single TheAudioDB artist by its idArtist (as returned by search_artist). Returns the same metadata fields as search_artist: genre, style, mood, formed year, country, website, biography, and thumbnail URL.
Search TheAudioDB for albums by artist (optionally narrowed to a specific album title). Returns album id, title, artist, release year, genre, album cover artwork URL, and English description. Omit the album arg to list all albums for the artist.
Search TheAudioDB for a music artist/band by name. Returns metadata: genre, style, mood, year formed, country, official website, English biography, and artist thumbnail image URL. Music-metadata lookup — complements MusicBrainz with biographies and artwork.
Output schemas completely undocumented. LLMs cannot predict response structure (fields, types, nesting) for planning multi-step workflows. E.g., search_artist returns {found, artists: [{id, name, genre, ...}]} but this is invisible to the agent.
No pagination or result-limiting guidance. search_artist and search_album could return hundreds of results, blowing context windows. No limit parameter, no offset/page support, no total_count in response.
Error responses lack recovery guidance. callTool() returns {error: string} but does not tell LLM what to do next (retry? try different params? call a different tool?). E.g., 'artist not found' should suggest search_artist as an alternative.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 61 | 2026-07-28+ | v2 |
No tool annotations despite all tools being read-only. Adding readOnlyHint: true to each tool definition would signal to agents that these calls are safe to retry and have no side effects.
Parameter descriptions lack format/constraint details. E.g., 'artist' param has no guidance on case sensitivity, partial matching, or expected format. 'id' and 'album_id' params lack examples of valid ID ranges or formats.