sonovault-mcp
OfficialAn MCP server that lets AI assistants search and enrich music metadata from SonoVault's 93M+ track catalog.
Search tracks by artist and title, returning ISRC, genre, label, release date, artist credits, and duration.
Look up exact recordings by ISRC or SonoVault track ID.
Map recordings to compositions via ISWC, and list every recording of a work.
Resolve a track to IDs and deep links on Spotify, Apple Music, Tidal, Beatport, Discogs, MusicBrainz, and YouTube.
Bulk resolve up to 100 track names, ISRCs, or platform IDs in one call.
Search artists and labels, and page through their releases with optional date ranges.
Search releases and fetch tracklists with ISRCs, disc/track numbers, editions, and MusicBrainz identifiers.
List the canonical genre hierarchy.
Browse tracks by label, artist, genre, or year (paid tier).
All tools are read-only, and most work on the free tier.
Provides music metadata and deep links for Apple Music tracks, albums, and artists, enabling lookup of Apple Music IDs, ISRCs, and cross-platform references.
Provides music metadata and deep links for Beatport tracks, releases, and artists, enabling lookup of Beatport IDs and cross-platform references.
Provides music metadata and deep links for Discogs releases and artists, enabling lookup of Discogs IDs and cross-platform references.
Provides music metadata and deep links for MusicBrainz recordings and artists, enabling lookup of MusicBrainz IDs and cross-platform references.
Provides music metadata and deep links for Spotify tracks, albums, and artists, enabling lookup of Spotify IDs, ISRCs, and cross-platform references.
Provides music metadata and deep links for Tidal tracks, albums, and artists, enabling lookup of Tidal IDs and cross-platform references.
Provides music metadata and deep links for YouTube videos and channels, enabling lookup of YouTube IDs and cross-platform references.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@sonovault-mcpWhat's the genre and label of 'Strobe' by Deadmau5?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
sonovault-mcp
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:
{
"mcpServers": {
"sonovault": {
"command": "npx",
"args": ["-y", "sonovault-mcp"],
"env": { "SONOVAULT_API_KEY": "svk_live_..." }
}
}
}Claude Code
claude mcp add sonovault -e SONOVAULT_API_KEY=svk_live_... -- npx -y sonovault-mcpCursor
Add to ~/.cursor/mcp.json (or .cursor/mcp.json in your project):
{
"mcpServers": {
"sonovault": {
"command": "npx",
"args": ["-y", "sonovault-mcp"],
"env": { "SONOVAULT_API_KEY": "svk_live_..." }
}
}
}VS Code (GitHub Copilot)
Add to .vscode/mcp.json:
{
"servers": {
"sonovault": {
"command": "npx",
"args": ["-y", "sonovault-mcp"],
"env": { "SONOVAULT_API_KEY": "svk_live_..." }
}
}
}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.
Related MCP server: Verified Human MCP Server
Tools
Tool | What it does |
| Fuzzy search by artist + title. Returns ISRC, genre, label, release date. |
| Exact recording lookup by ISRC. |
| Fetch a track by SonoVault ID. |
| Recording to composition: the ISWC(s) behind a recording. |
| Composition to recordings: every recording of an ISWC. |
| One track's ID and deep link on all 7 platforms, from any ID or ISRC. |
| Bulk resolve up to 100 track names, ISRCs, or platform IDs. |
| Artist search and discography, with Wikidata and MusicBrainz identifiers. |
| Label search and catalog, optionally for one release date or a date range. |
| Release search, and tracklists with ISRCs in playing order with disc and track numbers, plus MusicBrainz release and release-group ids. |
| The canonical genre hierarchy. |
| 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.
Bridge recordings to compositions
"I have ISRCs from my distributor. Which musical works do they belong to, and what other recordings exist of each work?" The assistant chains get_work_codes and get_recordings_of_work. Useful for publishing administration and cover/version research.
Check cross-platform availability
"Is this Beatport exclusive on Spotify yet? Beatport ID 6014288." One get_platform_links call answers it, with deep links per platform.
Research a label
"Summarize what Anjunabeats released in the last six months, grouped by subgenre." The assistant pages through get_label_releases and pulls genre from the tracklists.
FAQ
Is there a free tier?
Yes. A free SonoVault key includes 1,000 requests/month with no credit card. Every tool except browse_tracks works on it.
What metadata does each track include?
Title, artist credits (with primary/remixer flags), ISRC, duration, genre and subgenre, and per-release album title, label, and release date. ISWC work codes come from the dedicated work-code tools.
Does it return BPM or musical key?
No. The public SonoVault API deliberately excludes audio features like BPM, key, and energy. No audio previews or artwork either.
Where does the data come from?
Aggregated and deduplicated from MusicBrainz, Discogs, Spotify, Apple Music, Tidal, and Beatport, with ISWC links from The MLC. Details: sonovault.now/data-sources.
How is this different from a Spotify API integration?
Single-platform APIs return their own IDs only. SonoVault resolves one recording to its IDs on all seven supported platforms, keyed by ISRC, and adds identifiers (ISRC, ISWC) that platform APIs don't expose. Comparison: sonovault.now/compare/spotify-api.
Is my API key sent anywhere besides SonoVault?
No. The server runs locally over stdio and sends your key only to api.sonovault.now as a request header. The code is small and auditable: src/server.ts.
Agent Skill
Not using MCP? skill/SKILL.md is an Agent Skill that teaches any agent to call the SonoVault API directly over HTTP: search rules, ISRC/ISWC recipes, bulk resolution, and error handling.
Related
sonovault-js and sonovault-python, the client SDKs (this server is built on sonovault-js)
License
MIT
Available Tools
15 toolsbrowse_tracksBrowse the catalogA
Discover tracks by filter: label ID, artist ID, genre name or genre ID (from list_genres), or release year. At least one filter is required. Needs a paid SonoVault tier; free-tier keys get a 403.
| Name | Required | Description | Default |
|---|---|---|---|
| year | No | ||
| genre | No | Exact genre name (mutually exclusive with genre_id) | |
| genre_id | No | Canonical genre ID (mutually exclusive with genre) | |
| label_id | No | ||
| artist_id | No | ||
| randomize | No | Sample randomly instead of newest first |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries behavioral burden. It adds the auth requirement (paid tier, 403) and the mandatory-filter constraint. However, it omits details like default sorting (schema has 'randomize' but description doesn't explain default order), pagination, or response structure. It doesn't contradict but leaves gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, each essential. First sentence lists filters and constraint; second sentence states authorization requirement. No wasted words, front-loads the action and key conditions.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 6 parameters, no output schema, and no annotations, the description covers the input constraints and authorization well but lacks details on output format, pagination, default ordering (randomize is implied but not default), and any limits. It provides sufficient high-level understanding but not full operational completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Description covers 5 of 6 parameters (all except randomize) and adds meaning beyond schema: 'genre ID (from list_genres)' implies a valid source. Also adds the constraint that at least one filter is required, which is not in the schema's optional parameters. This compensates for the 50% schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses 'Discover tracks by filter' as a specific verb+resource. It lists concrete filter fields (label ID, artist ID, genre name, genre ID, release year) and includes critical usage constraints ('At least one filter is required'). This clearly distinguishes it from sibling tools like search_tracks, which presumably do text-based search.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states the requirement of at least one filter, guiding when to use. Also notes the paid-tier prerequisite and potential 403 for free keys, which is a clear when-to-use/not-use boundary. Does not explicitly name alternative tools, but the required-filter constraint implies it's for filtered browsing, not free-form search.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_artist_releasesArtist releasesA
An artist's releases, newest first. Use the cursor from a previous call for the next page. Optional from/until (YYYY-MM-DD, inclusive) limit it to a release-date range.
| Name | Required | Description | Default |
|---|---|---|---|
| from | No | Only releases dated on or after this day (YYYY-MM-DD) | |
| limit | No | ||
| until | No | Only releases dated on or before this day (YYYY-MM-DD) | |
| cursor | No | next_cursor from the previous page | |
| artist_id | Yes | SonoVault artist ID (from search_artists) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden. It discloses ordering (newest first), pagination (cursor-based), and date range inclusivity. This is useful and goes beyond the schema. It does not mention edge cases like default limit, cursor staleness, or return format, but the core behavior is transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no wasted words. The main purpose is front-loaded, followed by pagination and filtering details. Everything earns its place and is easy to scan.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a paginated list tool with 5 parameters and no output schema, the description gives the necessary information: purpose, ordering, pagination, and filter semantics. It does not explain default limits or error conditions, but these are less critical for basic invocation. Overall, adequate for correct use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers 80% of parameters with descriptions. The description's mention of from/until being inclusive and 'release-date range' is mostly redundant since schema already says 'on or after' and 'on or before'. Cursor semantics in the description mirror the schema's 'next_cursor from the previous page'. No significant new parameter meaning added.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states exactly what the tool does: it returns an artist's releases, ordered newest first. This clearly distinguishes it from sibling tools like get_label_releases (by artist vs. label) and search_releases (direct listing vs. searching). The resource and scope are unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It implies usage context: you need an artist_id and can paginate with a cursor. It also explains how to filter by date range. However, it does not explicitly tell when to choose this over alternatives like search_releases, or when a label-oriented view would be better. Guidance is present but not exhaustive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_label_releasesLabel releasesA
A label's releases, newest first, with artist per release. Cursor-paginated. Optional from/until (YYYY-MM-DD, inclusive) limit it to a release-date range; pass the same day for both to see what the label released that day.
| Name | Required | Description | Default |
|---|---|---|---|
| from | No | Only releases dated on or after this day (YYYY-MM-DD) | |
| limit | No | ||
| until | No | Only releases dated on or before this day (YYYY-MM-DD) | |
| cursor | No | ||
| label_id | Yes | SonoVault label ID (from search_labels) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description mentions it is cursor-paginated and includes an 'artist per release', which are useful behavioral details. Since no annotations are provided, these disclosures help. However, it doesn't mention what happens if no releases match, potential rate limits, or whether it supports only the given label or also sublabels. The description is decent but could add more edge-case behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that packs in the key details: sorting, pagination, date filter, and the same-day example. It is front-loaded with the main purpose and uses no filler words. Every clause adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool is a paginated list endpoint, the description covers sorting, pagination, and date filtering, which are the main usage points. It lacks explicit return format details, but since no output schema exists, the description could have mentioned that it returns releases with artist info, which it does. The main missing piece is what the 'artist' field contains (e.g., artist name vs ID), but that might be inferred from the schema of other tools. Overall, reasonably complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema covers 60% of parameters, and the description adds context for the from/until parameters by explaining the inclusive date range and the same-day use case. It also clarifies that the returned data includes artist per release, which maps to the schema but isn't explicitly documented. For the limit and cursor parameters, it only mentions 'cursor-paginated', so it partially compensates for the schema gaps.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns a label's releases, newest first, with the artist per release. It distinguishes itself from siblings like get_artist_releases and search_releases by specifying it operates on a label and includes a release date filter. The verb 'get' and resource 'label releases' are specific and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explains the optional from/until date range and even gives a concrete use case (pass same day for both to see releases on a specific day). However, it doesn't explicitly mention when to use this vs search_releases or get_artist_releases, so some inference is needed. It does imply the tool is for label-scoped browsing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_platform_linksCross-platform linksA
Resolve a track to its ID and deep link on every supported platform: Spotify, Apple Music, Tidal, Beatport, Discogs, MusicBrainz, YouTube. Identify the track by exactly one of: SonoVault id, ISRC, or any platform's ID.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | SonoVault track ID | |
| isrc | No | ||
| tidal_id | No | ||
| discogs_id | No | ||
| spotify_id | No | ||
| youtube_id | No | ||
| beatport_id | No | ||
| applemusic_id | No | ||
| musicbrainz_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It explains the tool returns IDs and deep links for all platforms, but does not disclose error handling (e.g., if track not found on a platform), rate limits, or authentication requirements. The core behavior is clear but basic.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence that packs all essential information: the action, output, supported platforms, and input constraint. No redundant words, front-loaded with the main purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has 9 parameters and no output schema. The description hints that the output contains IDs and deep links for each platform, but does not elaborate on structure, whether it returns multiple results, or how failures are handled. It is functional but leaves room for ambiguity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 11%, so the description must compensate. It adds that exactly one parameter should be used, but does not provide format hints (e.g., ISRC pattern) or clarify that some IDs are platform-specific. It lists platforms but adds little beyond the schema's property names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool resolves a track to its ID and deep link on every supported platform, listing all platforms explicitly. It distinguishes from sibling tools by specifying the exact platforms and the input requirements.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description specifies that exactly one identifier must be provided, which is a key usage rule. However, it does not explain when to use this tool over alternatives like resolve_tracks or get_track, nor does it give examples of when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_recordings_of_workComposition to recordings (ISWC)A
List every recording of a musical work by its ISWC (e.g. T0710204399 or T-071.020.439-9). Returns recordings sorted by popularity, each with a representative ISRC.
| Name | Required | Description | Default |
|---|---|---|---|
| iswc | Yes | ISWC work code | |
| limit | No | Max recordings (default 50) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It states the tool returns sorted recordings with ISRCs, implying a read-only operation, but does not explicitly confirm safety, disclose rate limits, or describe error behavior (e.g., invalid ISWC format).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no redundant information. The first sentence introduces the primary function and input format, the second explains the output characteristics. Efficient and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the tool's purpose and output nature (recordings sorted by popularity, with ISRC). However, it lacks details about the output structure (e.g., fields beyond ISRC), error handling, and performance considerations. Given no output schema, more descriptive compensation is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so parameters are documented. The description adds value by providing ISWC format examples, explaining the sort order (by popularity), and mentioning that each recording includes a representative ISRC. This supplements the schema's minimal descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists every recording of a musical work by ISWC, with examples of valid ISWC formats. It differentiates from sibling tools like lookup_isrc (ISRC lookup) and search_tracks (text search) by focusing on work-to-recordings mapping.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when an ISWC is available and recordings of that work are needed, but does not explicitly state when not to use this tool or mention alternatives among siblings. No guidance on prerequisites or fallback strategies.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_releaseGet release with tracklistA
Fetch one release by SonoVault release ID, including its full tracklist with ISRCs. Tracks come back in playing order, each with disc_number and track_number; a track whose position is unknown sorts last with both null. A SonoVault release groups every edition of an album onto one record, so the response also carries an editions array naming the real editions behind it, each with its provider, format, release date, barcode, country, track count, label and catalog number (pressings of one album often carry different labels); pass one of their ids as edition to render that edition's numbering instead of the default consensus. musicbrainz_release_ids and musicbrainz_release_group_ids are arrays for the same reason.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | SonoVault release ID | |
| edition | No | Edition id from the response's editions array. Renders that edition's track numbering; tracks it does not carry keep a null position and come last. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden and does so thoroughly: it explains track ordering, null-position handling for unknown track numbers, the multi-edition aggregation model, the meaning of the editions array and its fields, the edition parameter's renumbering effect, and the reason the MusicBrainz ID fields are arrays. This goes well beyond the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is long but information-dense and logically structured: main fetch operation first, then tracklist ordering, then the editions/edition parameter explanation, then the MusicBrainz arrays. Every sentence contributes necessary domain context or parameter behavior; there is no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given there is no output schema, the description supplies what the agent needs to interpret the response: track fields, edition fields, and ID arrays. It also defines the domain-specific behavior of the optional edition parameter. No critical invocation detail appears to be missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is already 100%, but the description adds real meaning: it explains that editions are aggregated onto one record, that passing an edition id swaps the default consensus numbering for that edition's numbering, and how tracks missing from an edition are placed. The id parameter's role is also clearly stated as the SonoVault release ID.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb ('Fetch'), an exact target ('one release by SonoVault release ID'), and the key delivered content ('full tracklist with ISRCs'). This clearly separates it from sibling tools that list releases by artist or label, search releases, or retrieve single tracks.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives clear context: use this when you already have a SonoVault release ID and need the release plus tracklist/edition data. It does not explicitly name alternatives or say when not to use it, but the direct-by-ID phrasing is enough to disambiguate from the search/list siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_trackGet track by IDA
Fetch one track by its SonoVault track ID, with full metadata.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | SonoVault track ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. Only states 'with full metadata' without elaborating on what metadata is returned, or any other behavioral traits like side effects or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no wasted words, front-loaded with action and resource. Efficient and clear.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple fetch tool with one parameter and no output schema, description covers purpose but lacks detail about what 'full metadata' includes. Adequate but could be more complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, with schema description 'SonoVault track ID'. Description adds same phrase, no additional meaning beyond schema. Baseline 3 appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states verb 'Fetch', resource 'one track', and unique identifier 'SonoVault track ID'. This distinguishes it from sibling tools like search_tracks (searching) and browse_tracks (browsing).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use (when you have a specific track ID). Does not explicitly mention when not to use or list alternatives, but sibling tool names provide enough context to differentiate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_work_codesRecording to composition (ISWC)A
Find the ISWC work code(s) behind a recording, by ISRC or SonoVault track ID. Useful for royalty and publishing workflows. One recording can carry several ISWCs (medleys, samples).
| Name | Required | Description | Default |
|---|---|---|---|
| isrc | No | ISRC of the recording | |
| track_id | No | SonoVault track ID (alternative to isrc) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must cover behavioral traits. It mentions that one recording can have multiple ISWCs, a key nuance. However, it does not specify the return format, pagination, or error behavior, leaving gaps in transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three concise sentences, front-loaded with the core action. Every sentence adds value without repetition or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Without an output schema, the description should more fully explain the return structure. While it indicates multiple ISWCs may be returned, it omits details on format or empty results, leaving the agent with incomplete expectations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with clear parameter descriptions. The description restates the parameters without adding new meaning, so it does not exceed the baseline expectation for parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool finds ISWC work codes based on a recording, using ISRC or track ID. It distinguishes from sibling tools by focusing specifically on ISWC mapping for royalty workflows.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description indicates use for royalty and publishing workflows, providing clear context. However, it does not explicitly contrast with sibling tools like get_recordings_of_work or lookup_isrc, leaving some ambiguity about when to choose this tool over alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_genresList genresA
The canonical SonoVault genre hierarchy: 25 main genres plus subgenres, with IDs.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations, but the description conveys the read-only nature and output content. Could mention that it returns a list or tree, but still adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence, directly front-loaded with 'canonical'. No superfluous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list with no input or output schema, description is sufficient. Could be more specific about hierarchy structure, but not critical.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist; schema coverage is 100%. Description adds meaning by specifying output details, meeting expectations for a parameterless tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it lists the canonical SonoVault genre hierarchy with 25 main genres, subgenres, and IDs. No ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use guidance, but the tool is self-explanatory and has no close sibling. Slight deduction for lack of usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lookup_isrcLook up a track by ISRCB
Exact lookup of a recording by its ISRC (International Standard Recording Code, e.g. GBDUW0000053). Returns the track's full metadata.
| Name | Required | Description | Default |
|---|---|---|---|
| isrc | Yes | ISRC code, e.g. GBDUW0000053 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears full responsibility for behavioral disclosure. It states returns 'full metadata' but does not specify what fields are included or describe error conditions, rate limits, or side effects. The transparency is minimal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, very concise and front-loaded. It efficiently conveys the purpose and gives an example. However, it could be slightly improved by mentioning the return format without adding much length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple lookup tool with no output schema, the description is mostly adequate but lacks specifics about what 'full metadata' includes. No error handling or result structure is described, leaving some gaps for an AI agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100% for the single parameter 'isrc', and the main description also includes an example. The schema already documents the parameter adequately, so the description adds little beyond what is in the schema, resulting in a baseline score of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Exact lookup of a recording by its ISRC', providing a specific verb (lookup) and resource (recording by ISRC). It includes an example ISRC code for context, distinguishing it from sibling tools like search_tracks or get_track which use different identifiers or search methods.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when an ISRC is available for an exact lookup, but it does not explicitly state when not to use it or mention alternatives such as get_track or search_tracks. The guidance is present but not detailed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
resolve_tracksBulk resolveA
Resolve up to 100 inputs in one call to canonical tracks plus cross-platform links. input_type picks the key: 'track_name' (items are {artist, title} objects), 'isrc', 'sonovault_id', or a platform id type ('spotify_id', 'applemusic_id', 'tidal_id', 'beatport_id', 'discogs_id', 'musicbrainz_id'). Costs one API credit per line.
| Name | Required | Description | Default |
|---|---|---|---|
| items | Yes | Strings for id/isrc types; {artist, title} objects for track_name | |
| input_type | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses the 100-input limit, cost per line, and input_type mapping. Missing details on error handling or response format, but provides solid behavioral traits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with front-loaded purpose. The second sentence is dense but efficient, covering all parameter details without redundancy. Slightly long but earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Without an output schema, the description vaguely mentions 'canonical tracks plus cross-platform links' but lacks detail on return structure, error behavior, or partial results. For a batch tool, more completeness is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50%, but the description adds crucial semantics: it explains how input_type selects the key format and specifies the {artist, title} structure for 'track_name' objects, going beyond the schema's anyOf definition.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool resolves up to 100 inputs to canonical tracks and cross-platform links, using a specific verb and resource. It also explains the input_type parameter, distinguishing it from sibling tools like get_track or search_tracks.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description indicates usage for batch resolution with cost and limit details. While it doesn't explicitly state when not to use or list alternatives, the context of sibling tools and the focus on bulk resolution provide clear guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_artistsSearch artistsA
Search artists by name. Returns id, name, country, formation year, release count, and the wikidata_id and musicbrainz_id identifiers for joining against external datasets.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Artist name to search for | |
| limit | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It discloses the return fields, which is useful, and implies a read-only search operation. However, it does not disclose behavior like partial matching, case sensitivity, pagination, or what happens with no results. The description is honest but not deeply transparent about edge-case behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, information-dense sentence. It front-loads the action and resource, then lists return fields. Every clause earns its place; no filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple search tool with 2 parameters and no output schema, the description covers the core purpose and return fields. However, it lacks guidance on the 'limit' parameter, result ordering, or matching behavior. Given the tool's simplicity, this is adequate but not complete; an agent might not know how to interpret the limit parameter or what the default is.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 50%: the 'name' parameter is described in the schema, but 'limit' has no description. The tool description adds the return-field context and the purpose of the identifiers, but it does not explain the 'limit' parameter's semantics or default behavior. With 50% coverage, the description partially compensates but leaves the limit parameter undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Search'), a resource ('artists'), and the search key ('by name'). It also lists the return fields, which distinguishes it from sibling search tools like search_tracks and search_releases. The tool name and title are reinforced, not merely restated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context: use this when you need to find an artist by name and get identifiers for joining external datasets. However, it does not explicitly state when to prefer this over siblings like get_artist_releases or search_labels, nor does it mention any exclusions or alternatives. The mention of identifiers for joining against external datasets gives some context but not explicit routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_labelsSearch record labelsA
Search record labels by name. Returns id, name, and release count.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Label name to search for | |
| limit | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses the return fields (id, name, release count) but omits details about pagination, ordering, or behavior for missing results. The read-only nature is implied but not stated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences with no wasted words. It front-loads the primary action and return value, making it easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (two parameters, no output schema, no annotations), the description provides basic functionality and return shape but lacks details on matching behavior (e.g., case sensitivity, partial match) and pagination, leaving some gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 50% (only 'name' described). The tool description adds no meaning beyond the schema for either parameter. The 'limit' parameter is not mentioned, so the description does not compensate for the low coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Search' and the resource 'record labels', and specifies the criterion 'by name'. It effectively distinguishes this tool from sibling tools like search_artists and search_releases, which operate on different entities.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not provide explicit guidance on when to use this tool versus alternatives beyond the resource name. While the sibling tools are distinct, no when-not or specific context is given, leaving usage implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_releasesSearch releases (albums)C
Search releases by title, optionally narrowed by artist name.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| title | Yes | Release/album title | |
| artist | No | Artist name to narrow the match |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description must carry the full burden. It does not disclose any behavioral traits beyond basic search (e.g., no mention of result formatting, pagination, case sensitivity, or limitations).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no fluff. However, it omits the limit parameter, which reduces completeness. Still efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, yet the description does not explain result structure, pagination (limit is not mentioned despite being in schema), or sorting. Missing critical context for a search tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema provides descriptions for title and artist (67% coverage). The description paraphrases those but adds no new semantics. The limit parameter is not mentioned. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('search releases') and the key parameters (title, optional artist). However, it does not explicitly distinguish from sibling tools like search_tracks or search_artists, though the focus on releases and title is implicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives (e.g., get_release for a known ID, or search_artists for artist-first workflows). The description only explains what it does, not when to prefer it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_tracksSearch tracksA
Search the SonoVault catalog (93M+ tracks) by artist and title. Both are required; there is no free-text search. Returns ISRC, genre, duration, artist credits, and release info (album, label, release date) per track.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results (default 20) | |
| title | Yes | Track title, e.g. 'One More Time' | |
| artist | Yes | Artist name, e.g. 'Daft Punk' |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of behavioral disclosure. It explains that both fields are required, free-text search is not available, and lists the fields returned per track. It does not cover edge behavior such as exact-match semantics, pagination, or auth requirements, but for a search tool the description is adequately transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no filler. It front-loads the purpose, then the key constraints, and then the return information. Every clause adds useful information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the primary purpose, required parameters, constraints, and return fields, which is adequate for a search tool even without an output schema. It could further clarify match behavior or when to prefer sibling tools like lookup_isrc or resolve_tracks, but overall the agent has enough context to invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents the three parameters. The description adds context by stating both artist and title are required and clarifies the no-free-text limitation, but it does not add substantial meaning beyond the schema's own descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool searches the SonoVault catalog by artist and title, which is a specific verb and resource. It distinguishes itself from sibling tools like search_artists and search_releases by the required parameters and the note that there is no free-text search, though it does not explicitly name these alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use the tool: when both artist and title are known, and explicitly notes that both are required and free-text search is unsupported. It does not explicitly discuss alternatives or when not to use this tool, but the boundary is reasonably clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
2 tool updates
v1.2.0- Changed
get_artist_releases2 fields changed- added
Input schema / properties / fromAdded value: +{ + "description": "Only releases dated on or after this day (YYYY-MM-DD)", + "pattern": "^\\d{4}-\\d{2}-\\d{2}$", + "type": "string" +} - added
Input schema / properties / untilAdded value: +{ + "$ref": "#/properties/from", + "description": "Only releases dated on or before this day (YYYY-MM-DD)" +}
- Changed
get_label_releases2 fields changed- added
Input schema / properties / fromAdded value: +{ + "description": "Only releases dated on or after this day (YYYY-MM-DD)", + "pattern": "^\\d{4}-\\d{2}-\\d{2}$", + "type": "string" +} - added
Input schema / properties / untilAdded value: +{ + "$ref": "#/properties/from", + "description": "Only releases dated on or before this day (YYYY-MM-DD)" +}
1 tool update
v1.1.0- Changed
get_release1 field changed- added
Input schema / properties / editionAdded value: +{ + "description": "Edition id from the response's editions array. Renders that edition's track numbering; tracks it does not carry keep a null position and come last.", + "type": "integer" +}
15 tool updates
v1.0.2- First observed
browse_tracks - First observed
get_artist_releases - First observed
get_label_releases - First observed
get_platform_links - First observed
get_recordings_of_work - First observed
get_release - First observed
get_track - First observed
get_work_codes - First observed
list_genres - First observed
lookup_isrc - First observed
resolve_tracks - First observed
search_artists - First observed
search_labels - First observed
search_releases - First observed
search_tracks
TDQS
Scored across 15 tools
Most tools target a distinct resource and operation (artist releases, label releases, tracks, works, genres), but get_platform_links and resolve_tracks overlap heavily: both resolve a track to platform links, with resolve_tracks being a batch superset. lookup_isrc also partially overlaps with resolving by ISRC, though its purpose is more specific.
Tool names consistently follow a snake_case verb_noun pattern: get_*, search_*, list_*, lookup_*, browse_*, resolve_*. The verbs align well with the action type, and even variants like lookup_isrc versus get_track are predictable given their identifier-based lookup semantics.
Fifteen tools is at the upper edge of the ideal range and is mostly justified by the broad music-metadata domain. The set would be slightly tighter if get_platform_links were folded into resolve_tracks, but overall the count is not excessive.
The read-only catalog surface is thorough: releases, tracks, artists, labels, genres, ISRC/ISWC workflows, and cross-platform resolution are all covered. Minor gaps include the lack of dedicated get_artist and get_label detail tools beyond search results, and search_releases cannot be filtered by artist ID directly, though artist releases cover that partially.
Maintenance
Related MCP Connectors
Search MusicBrainz artists, releases, works, labels; resolve ISRC/ISWC/barcode; fetch cover art.
Audio features + harmonic set-building for tracks by name/ISRC. Spotify audio-features replacement.
Privacy-first audio intelligence: BPM, key, waveform. Audio never stored. Pay per second.
Spotify: Spotify Data API for Millions of songs & podcasts, artists, albums, playlists and more.
Related MCP Servers
- AlicenseAqualityAmaintenanceCross-platform music link resolution for AI agents. Resolve any song or album across Spotify, Apple Music, Amazon, YouTube, and more. Returns affiliate-ready links with click tracking563 npm3MIT
- AlicenseNot gradedqualityDmaintenanceEnables querying the Verified Human Cert registry to verify human-made music certifications by ISRC, artist, track, or cert number.1MIT
- FlicenseNot gradedqualityCmaintenanceEnables AI music generation and management through the Suno API, supporting text prompts, custom lyrics, track status monitoring, and credit management.14-
- FlicenseNot gradedqualityCmaintenanceEnables music search, metadata retrieval, local audio analysis (tempo, key, energy), recommendations, song recognition, and classical work resolution via Spotify, Last.fm, AudD, MusicBrainz, and Songkick APIs.-