Releases: cyanheads/musicbrainz-mcp-server
v0.1.5: mcp-ts-core ^0.10.9 maintenance
mcp-ts-core ^0.10.9 maintenance
Framework adoption — devcheck gains plugin-manifest validation and a floating-specifier guard; no server behavior change.
Dependency bumps:
@cyanheads/mcp-ts-core^0.10.8 → ^0.10.9
Changed:
lint:packagingvalidates the plugin marketplace manifests (.claude-plugin, .codex-plugin) for descriptions + identity/install correctness, gated by devcheck.config.jsonpackaging.pluginManifests(cyanheads/mcp-ts-core#240)- New
Dependency Specifiersdevcheck step rejects floating specifiers (latest / dist-tags) in package.json + the bun.lock workspaces map (cyanheads/mcp-ts-core#246) - Synced framework
scripts/and thepolish-docs-metaskill (2.8 → 2.9) to the upstream 0.10.9 versions
45 tests pass; bun run devcheck clean.
v0.1.4: mcp-ts-core ^0.10.8 adoption
mcp-ts-core ^0.10.8 adoption
Framework maintenance pass plus a one-line identity change.
Changed:
- createApp() drops websiteUrl — identity canon is name + title only; the server manifest and initialize response no longer emit it.
- @cyanheads/mcp-ts-core ^0.10.6 → ^0.10.8: Canvas SQL gate classifies prepare failures on SELECT-shaped statements as invalid_sql with the DuckDB binder detail (#236); DuckdbProvider.describe() qualifies pushed WHERE filters, fixing the ambiguous-column Binder Error (#235); devcheck/changelog/skill-version scripts gain fresh-scaffold and worktree-deletion guards (#237, #242, #243); biome 2.4.16 → 2.5.0; new ctx.content collector (#239).
- Re-synced framework skills/ and devcheck scripts to 0.10.8; reconciled the devcheck outdated allowlist to empty.
Dependencies:
- @cyanheads/mcp-ts-core ^0.10.6 → ^0.10.8
- @types/node 25.9.3 → 26.0.0
45 tests pass; bun run devcheck clean.
v0.1.3: lookup correctness fixes
lookup correctness fixes
Four MusicBrainz lookup-surface fixes — accurate truncation signals on get_work and get_release_group, real artist credits on ISRC lookups, and a working ISWC example.
Added:
- get_release_group surfaces the one-page editions cap (truncated/shown/cap + a browse notice) so capped releases lists are no longer silently incomplete (#2)
Changed:
- lookup_identifier ISRC requests inc=artist-credits, so recordings carry the real credit instead of "Unknown artist" (#3)
- lookup_identifier ISWC example swapped to T-010.140.236-1 with the canonical T-DDD.DDD.DDD-C format note; the old T-345246800-1 resolved to nothing (#4)
Removed:
- get_work false recording-rels truncation — the work lookup returns relationships in full, so the contradictory truncated/cap/notice enrichment is gone (#1)
45 tests pass; bun run devcheck clean.
v0.1.2: Hosted endpoint and install badges
Hosted endpoint and install badges
Public instance live at https://musicbrainz.caseyjhand.com/mcp (Streamable HTTP, no install required). Added to server.json remotes[] and documented in README header and Getting Started.
Added:
- Hosted endpoint https://musicbrainz.caseyjhand.com/mcp in server.json remotes[]
- Public Hosted Instance section in README Getting Started
- Install badges (Claude Desktop, Cursor, VS Code) in README header
Changed:
vitest^4.1.8 -> ^4.1.9
34 tests pass; bun run devcheck clean.
v0.1.1: Scope README title to published package name
Scope README title to published package name
The README
now reads @cyanheads/musicbrainz-mcp-server, matching the
published npm package.
Changed:
- README
scoped to @cyanheads/musicbrainz-mcp-server
34 tests pass; bun run devcheck clean.
v0.1.0: MusicBrainz WS/2 + Cover Art Archive MCP server
MusicBrainz WS/2 + Cover Art Archive MCP server
Open music metadata over the live MusicBrainz Web Service v2 and the Cover Art Archive. Keyless, read-only, CC0 core data.
Added:
- 10 read-only tools: musicbrainz_search_entities (Lucene full-text → ranked MBID + 0–100 score); musicbrainz_get_artist / get_release_group / get_release / get_recording / get_work / get_label (per-entity lookup with inc-folded linked data); musicbrainz_lookup_identifier (ISRC → recordings, ISWC → works, barcode → releases); musicbrainz_browse_entities (complete linked-set enumeration past the one-page inc cap); musicbrainz_get_cover_art (Cover Art Archive images, no-art → empty set).
- musicbrainz://{entity_type}/{mbid} resource — single entity by type and MBID, mirroring the get_* lookups.
- musicbrainz-service: mandatory descriptive User-Agent, process-wide ~1 req/sec token-bucket limiter, full-request response cache (MUSICBRAINZ_CACHE_TTL, default 24h), withRetry backoff.
- cover-art-service: 404 → empty set, follows the release-group 307 redirect.
- Typed error contracts on the live 400-vs-404 split: invalid_mbid / entity_not_found (lookups), invalid_identifier / identifier_not_found (lookup_identifier), invalid_link / entity_not_found (browse_entities).
Config: MUSICBRAINZ_CONTACT, MUSICBRAINZ_BASE_URL, MUSICBRAINZ_RATE_LIMIT_RPS, MUSICBRAINZ_CACHE_TTL, COVER_ART_BASE_URL.
Built on @cyanheads/mcp-ts-core ^0.10.6. STDIO or Streamable HTTP.
34 tests pass; bun run devcheck clean.