Unofficial MCP server for Bandcamp music discovery — search, browse, and inspect albums, artists, and tracks from Claude and other MCP clients.
Five tools with consistent verb_noun naming (bandcamp_search, bandcamp_get_*) and clear, actionable descriptions (avg 95 chars). All tools have input schemas with typed parameters and enums where appropriate (e.g., search type, browse sort). Error handling is sophisticated, mapClientError() distinguishes NotFoundError, BandcampShapeChangedError, BandcampChallengeError, and BandcampUnavailableError, returning user-friendly guidance rather than raw errors. However, output schemas are not documented in the source, tool handlers return results but no schema definitions are visible. Parameter descriptions are present but minimal (e.g., 'Album slug in format...' lacks guidance on when to use this tool vs others). No tool annotations (readOnlyHint, idempotentHint) despite all being read-only. Composition is clean, each tool has one responsibility, and search/browse tools support pagination (cursor parameter).
Browse Bandcamp releases by tag with sorting options and pagination support
Get detailed information about a Bandcamp album including tracks, pricing, and metadata
Get information about a Bandcamp artist or label including their discography
Get detailed information about a Bandcamp track including album and artist details
Search Bandcamp for albums, artists, tracks, or labels by query text and type filter
Output schemas not documented. Tool handlers return results but no schema definitions visible in source. LLMs cannot plan downstream operations or extract fields reliably.
No tool annotations despite all tools being read-only. Missing readOnlyHint would help agents understand safety and retry behavior.
Parameter descriptions lack dependency hints and selection guidance. E.g., bandcamp_get_album description does not explain when to call it vs bandcamp_search, or how to obtain a slug.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 63 | 2026-07-28+ | v2 |
Slug parameter format is documented inline ('artist/album/title') but not enforced via regex pattern in schema. LLMs may pass invalid formats.
Error messages reference GitHub issues URL but do not provide immediate recovery steps. E.g., 'Bandcamp changed format' should suggest fallback tools or retry timing.