Skip to main content
Glama
rekordcloud

sonovault-mcp

Official

sonovault-mcp

CI npm

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-mcp

Cursor

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

search_tracks

Fuzzy search by artist + title. Returns ISRC, genre, label, release date.

lookup_isrc

Exact recording lookup by ISRC.

get_track

Fetch a track by SonoVault ID.

get_work_codes

Recording to composition: the ISWC(s) behind a recording.

get_recordings_of_work

Composition to recordings: every recording of an ISWC.

get_platform_links

One track's ID and deep link on all 7 platforms, from any ID or ISRC.

resolve_tracks

Bulk resolve up to 100 track names, ISRCs, or platform IDs.

search_artists, get_artist_releases

Artist search and discography, with Wikidata and MusicBrainz identifiers.

search_labels, get_label_releases

Label search and catalog.

search_releases, get_release

Release search, and tracklists with ISRCs in playing order with disc and track numbers, plus MusicBrainz release and release-group ids.

list_genres

The canonical genre hierarchy.

browse_tracks

Discover by label, artist, genre, or year (paid tier).

All tools are read-only. Most work on the free tier; browse_tracks needs a paid plan.

Example workflows

Enrich a radio play log for royalty reporting

Paste a play log with just artist and title, and ask: "Resolve these to ISRC, album, and label, and give me a table I can map onto a SoundExchange Report of Use." The assistant calls resolve_tracks once per 100 lines and returns the identifiers collecting societies match on. Works the same for PPL, Sena, GVL, and Re:Sound reporting.

Clean up a DJ library

"Here are 50 tracks from my rekordbox export. Find the canonical version of each, flag duplicates that share an ISRC, and tag each with its genre." The assistant combines resolve_tracks with the genre fields on each result.

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.

License

MIT

Available Tools

15 tools
browse_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.

ParametersJSON Schema
NameRequiredDescriptionDefault
yearNo
genreNoExact genre name (mutually exclusive with genre_id)
genre_idNoCanonical genre ID (mutually exclusive with genre)
label_idNo
artist_idNo
randomizeNoSample randomly instead of newest first

TDQS

A4.1/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
cursorNonext_cursor from the previous page
artist_idYesSonoVault artist ID (from search_artists)

TDQS

B3.4/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters4/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
cursorNo
label_idYesSonoVault label ID (from search_labels)

TDQS

A4.1/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters2/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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_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.

ParametersJSON Schema
NameRequiredDescriptionDefault
iswcYesISWC work code
limitNoMax recordings (default 50)

TDQS

A3.9/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesSonoVault release ID

TDQS

A3.8/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesSonoVault track ID

TDQS

A3.7/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
isrcNoISRC of the recording
track_idNoSonoVault track ID (alternative to isrc)

TDQS

A3.9/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.4/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
isrcYesISRC code, e.g. GBDUW0000053

TDQS

B3.4/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
itemsYesStrings for id/isrc types; {artist, title} objects for track_name
input_typeYes

TDQS

A4.2/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesArtist name to search for
limitNo

TDQS

B3.4/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters2/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesLabel name to search for
limitNo

TDQS

A3.6/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters2/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
titleYesRelease/album title
artistNoArtist name to narrow the match

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax results (default 20)
titleYesTrack title, e.g. 'One More Time'
artistYesArtist name, e.g. 'Daft Punk'

TDQS

A4/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

  1. 15 tool updatesv1.0.2
    • First observedbrowse_tracks
    • First observedget_artist_releases
    • First observedget_label_releases
    • First observedget_platform_links
    • First observedget_recordings_of_work
    • First observedget_release
    • First observedget_track
    • First observedget_work_codes
    • First observedlist_genres
    • First observedlookup_isrc
    • First observedresolve_tracks
    • First observedsearch_artists
    • First observedsearch_labels
    • First observedsearch_releases
    • First observedsearch_tracks

TDQS

A3.8/5.0

Scored across 15 tools

Disambiguation5/5

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.

Naming Consistency5/5

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.

Tool Count5/5

15 tools is well within the optimal 3-15 range, providing comprehensive coverage of the music metadata domain without being excessive or too few.

Completeness4/5

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

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    A
    maintenance
    Cross-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 tracking
    5
    162
    3
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables querying the Verified Human Cert registry to verify human-made music certifications by ISRC, artist, track, or cert number.
    1
    MIT
  • F
    license
    Not graded
    quality
    C
    maintenance
    Enables AI music generation and management through the Suno API, supporting text prompts, custom lyrics, track status monitoring, and credit management.
    11
    -
  • F
    license
    Not graded
    quality
    C
    maintenance
    Enables 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.
    -