MCP server for the SonoVault music metadata API. Search 90M+ tracks, artists, and releases from AI assistants.
sonovault-mcp
以下摘录自该仓库的 README(片段) · 在 GitHub 读完整 README →
MCP server for the **SonoVault** music metadata API. Gives Claude, Cursor, and any MCP client search across 93M+ tracks, artists, labels, and releases, with full metadata per result: genre, label, release dates, artist credits, ISRC and ISWC codes, and cross-platform IDs (Spotify, Apple Music, Tidal, Beatport, Discogs, MusicBrainz, YouTube).
Ask your assistant things like:
- "What releases did mau5trap put out this year?"
- "Find Daft Punk's Veridis Quo and give me its genre, label, and ISRC"
- "Show me the tracklist of Discovery with ISRCs"
- "What's the Spotify and Beatport ID for ISRC GBDUW0000053?"
- "Resolve this play log to ISRCs and labels" (paste up to 100 lines)
- "List every recording of ISWC T-071.020.439-9"
Setup
You need a SonoVault API key. The free tier is 1,000 requests/month, no credit card: get a key.
Claude Desktop
Add to claude_desktop_config.json:
Claude Code
Cursor
Add to ~/.cursor/mcp.json (or .cursor/mcp.json in your project):
VS Code (GitHub Copilot)
Add to .vscode/mcp.json:
Windsurf
Add the same mcpServers block as Claude Desktop to ~/.codeium/windsurf/mcp_config.json.
Other MCP clients
Any client that speaks MCP over stdio works. Command: npx -y sonovault-mcp with the SONOVAULT_API_KEY environment variable set.
Tools
| Tool | What it does |
|---|---|
| search_tracks | Fuzzy search by artist + title. Returns ISRC, genre, label, release date. |
| lookup_isrc | Exact recording lookup by ISRC. |
| get_track | Fetch a track by SonoVault ID. |
| get_work_codes | Recording to composition: the ISWC(s) behind a recording. |
| get_recordings_of_work | Composition to recordings: every recording of an ISWC. |
| get_platform_links | One track's ID and deep link on all 7 platforms, from any ID or ISRC. |
| resolve_tracks | Bulk resolve up to 100 track names, ISRCs, or platform IDs. |
| search_artists, get_artist_releases | Artist search and discography, with Wikidata and MusicBrainz identifiers. |
| search_labels, get_label_releases | Label search and catalog, optionally for one release date or a date range. |
| search_releases, get_release | Release search, and tracklists with ISRCs in playing order with disc and track numbers, plus MusicBrainz release and release-group ids. get_release also lists the real editions behind a release, each with its own label and catalog number, and takes an edition id to render that edition's numbering. |
| list_genres | The canonical genre hierarchy. |
| browse_tracks | Discover by label, artist, genre, or year (paid tier). |
All tools are read-only. Most work on the free tier; browse_tracks needs a paid plan.
Example workflows
Enrich a radio play log for royalty reporting
Paste a play log with just artist and title, and ask: "Resolve these to ISRC, album, and label, and give me a table I can map onto a SoundExchange Report of Use." The assistant calls resolve_tracks once per 100 lines and returns the identifiers collecting societies match on. Works the same for PPL, Sena, GVL, and Re:Sound reporting.
Clean up a DJ library
"Here are 50 tracks from my rekordbox export. Find the canonical version of each, flag duplicates that share an ISRC, and tag each with its genre." The assistant combines resolve_tracks with the genre fields on each result.