sonovault-mcp
OfficialThe SonoVault MCP server connects AI assistants to the SonoVault music metadata API, enabling search and lookup across 90M+ tracks, artists, labels, and releases with rich identifiers and cross-platform linking.
Core capabilities:
Track search: Fuzzy search by artist + title, returning ISRC, genre, label, release date, duration, and artist credits
ISRC lookup: Exact recording lookup by ISRC with full metadata
Track by ID: Fetch full metadata by SonoVault track ID
Work codes: Resolve recordings → compositions via ISWC (useful for royalty/publishing workflows)
Recordings of a work: List all recordings of a musical work by ISWC (composition → recordings)
Cross-platform links: Resolve a track to IDs and deep links on Spotify, Apple Music, Tidal, Beatport, Discogs, MusicBrainz, and YouTube
Bulk resolve: Resolve up to 100 tracks by name, ISRC, or platform IDs in one call
Artist search & discography: Search artists and browse their releases with pagination
Label search & catalog: Search labels and browse their releases with pagination
Release search & tracklist: Search releases by title and get full tracklists with ISRCs
Genre listing: Browse the canonical genre hierarchy (25 genres + subgenres)
Catalog browsing (paid tier): Discover tracks by label, artist, genre, or release year
Key use cases include royalty reporting (resolving play logs to ISRCs, labels, and work codes), DJ library cleanup, publishing research (chaining ISRC → ISWC → all recordings), cross-platform availability checks, and label catalog analysis. All tools are read-only; most work on the free tier (1,000 req/month).
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 "Install 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. |
| 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 releasesB
An artist's releases, newest first. Use the cursor from a previous call for the next page.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| 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 must disclose behavioral traits. It indicates the results are newest first and pagination via cursor, but omits auth requirements, rate limits, side effects, or whether the tool is read-only. The return format is not described, which is problematic without an output 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 two sentences long, front-loaded with the main purpose, and every word serves a purpose. No unnecessary detail or repetition.
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 has 3 parameters, no output schema, and no annotations, the description is somewhat minimal. It covers pagination and ordering but does not describe the response fields (e.g., release ID, title, date). An agent may need additional context to fully understand the output, though the tool name implies standard release data.
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 67%, and the description adds value by explaining cursor usage ('Use the cursor from a previous call for the next page'). The artist_id parameter is already well-documented in the schema. limit has min/max but no additional guidance. Overall, the description supplements the schema effectively for the cursor parameter.
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 retrieves an artist's releases sorted newest first, and mentions pagination. The verb 'get' and resource 'artist releases' are specific, but it does not explicitly differentiate from sibling tools like get_label_releases or search_releases.
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 when to use (to get an artist's releases) and provides pagination instructions ('Use the cursor from a previous call for the next page'). However, it lacks exclusions or alternatives, such as recommending search_releases for broader queries.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| 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?
With no annotations, the description carries full burden. It discloses sorting order (newest first), inclusion of artist, and pagination method (cursor). It does not mention error handling, rate limits, or idempotency, but these are common for read-only endpoints.
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 concise sentence that efficiently communicates the core functionality and key behaviors. No unnecessary words.
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 no output schema, the description adequately conveys what the tool does, but it does not specify the output structure. For a simple list endpoint, this is acceptable, but additional details on the response format would improve 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?
Schema description coverage is only 33% (only 'label_id' has description). The tool description adds no parameter-level detail beyond the schema, leaving 'limit' and 'cursor' unexplained. This is a gap given the low 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 clearly states the tool lists a label's releases sorted newest first, including the artist per release, and specifies cursor pagination. This distinguishes it from siblings like 'get_artist_releases' which focuses on a specific artist.
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 implied usage context (label releases, newest first) but does not explicitly state when to use this tool versus alternatives like 'get_artist_releases' or 'search_releases'. However, the purpose is clear enough for an experienced user.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | SonoVault release ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It does not explicitly state that this is a read-only operation or disclose any side effects. However, the nature of 'fetch' implies no mutation, and the description notes what data is returned.
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, directly front-loaded with the action and resource. Every word adds value; no 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 one-parameter tool with no output schema, the description adequately explains what is fetched and what data is included. Could be improved by noting any response size limits or typical structure, but acceptable.
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 a single parameter described. The description adds no new meaning beyond the schema, simply restating that the ID is a 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?
Description clearly states the action (Fetch), the resource (one release by ID), and the output (full tracklist with ISRCs). It distinguishes from sibling tools like search_releases (searching) and get_artist_releases (by artist).
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 you have a release ID, but does not explicitly contrast with alternatives or provide guidance on when not to use it. Sibling tools exist for searching or fetching by other criteria.
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 artistsB
Search artists by name. Returns id, name, country, formation year, and release count.
| 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 must convey behavioral traits. It only states it returns fields but does not disclose whether it is read-only (implied but not explicit) or any other behavior like pagination limits or destructive potential.
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 only two sentences, with no extraneous information. It is concise and front-loaded with the key action and return 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's simplicity, the description covers the basic purpose and return fields. However, it lacks information on result ordering, pagination, or error cases. With no output schema, this is adequate but not thorough.
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% (only 'name' has a description). The description does not add meaning beyond what is in the schema for either parameter. It does not explain the 'limit' parameter or its effects, failing to compensate for low 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 clearly states the verb 'Search', the resource 'artists', and the search criterion 'by name'. It also specifies the returned fields. This distinguishes it from sibling tools like search_labels 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 implies usage for finding artists by name but provides no explicit when-to-use guidance, alternative tools, or exclusion scenarios. It relies on the tool name and context.
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 (90M+ 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?
No annotations are provided, so the description carries the full burden. It discloses return fields (ISRC, genre, duration, artist credits, release info) and catalog size (90M+), but does not cover authentication, rate limits, error cases, or pagination behavior. This is adequate but not exhaustive.
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 purpose is front-loaded immediately, and each sentence adds essential 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?
Given the lack of output schema, the description compensates by listing return fields. It covers the core functionality, constraints, and output details. Could mention pagination (limit parameter) more explicitly, but overall complete 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 description coverage is 100%, so the baseline is 3. The description reinforces that both parameters are required and adds context about no free-text search, but does not add new parameter-level semantics beyond the schema 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 specifies the action ('Search'), the resource ('SonoVault catalog (90M+ tracks)'), and key constraints ('by artist and title', 'Both are required', 'no free-text search'). It uniquely identifies this tool's purpose among siblings like browse_tracks and search_artists.
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 explicitly states that both artist and title are required and that free-text search is not available, guiding usage. However, it does not mention when to use this tool over siblings like get_track or search_releases, though the constraints imply the appropriate scenario.
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.
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
Each tool targets a distinct operation on specific resources (tracks, artists, labels, releases, genres, ISRCs, works). There is no overlap; even similar operations like browse_tracks vs search_tracks use different parameters.
All tool names follow a consistent verb_noun pattern with underscores, using clear and distinct verbs (browse, get, list, lookup, resolve, search) that align with the action performed.
15 tools is well within the optimal 3-15 range, providing comprehensive coverage of the music metadata domain without being excessive or too few.
The set covers key lookups, search, batch resolution, and genre hierarchy. Minor gaps like lack of full artist or label details beyond search are present but do not significantly hinder core workflows.
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 tracking51623MIT
- 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.11-
- 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.-