Skip to main content
Glama

Server Details

Spotify play counts, monthly listeners, charts, artist stats, albums, playlists and ISRC lookup.

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
Repository
eduair94/spotify-data-mcp
GitHub Stars
0
Server Listing
Spotify Data MCP Server

TDQS

A3.5/5.0

Scored across 13 tools

Disambiguation2/5

Multiple tools have overlapping purposes: fetch returns full records for tracks, artists, albums, and playlists, directly overlapping get_album, get_artist_overview, and get_playlist. Additionally, get_tracks with include_insights duplicates get_track_insights and get_track_play_count, and get_artists_stats overlaps with get_artist_overview and fetch. Descriptions help somewhat, but the boundaries remain fuzzy.

Naming Consistency4/5

Most tools (10 of 13) follow a consistent get_<resource> pattern (e.g., get_album, get_artist_insights, get_playlist). The exceptions—fetch, search, and isrc_lookup—are common special-purpose verbs/nouns that remain readable, making this a minor deviation rather than an inconsistent convention.

Tool Count5/5

With 13 tools, the server is well-scoped for a Spotify data/analytics purpose. Each tool targets a distinct data type or operation, and the count sits comfortably within the typical 3–15 range without feeling bloated or thin.

Completeness4/5

The surface covers core read operations across search, tracks, albums, artists, playlists, charts, related artists, and ISRC lookup, which is solid for a read-only analytics server. Minor gaps exist, such as no dedicated tool to list an artist's full discography (only counts in get_artist_overview) and no explicit pagination for artist top tracks, but these are workable.

Available Tools

13 tools
fetchFetch a Spotify recordA
Read-onlyIdempotent
Inspect

The full record behind a search result: a track (play count, album, release date, genres, moods, BPM, credits), an artist (monthly listeners, followers, world rank, top cities, top tracks), an album (every track with play counts) or a playlist (details and its first 50 tracks with play counts). Takes an id from the search results (track:, artist:, album:, playlist:), a spotify: URI or an open.spotify.com URL.

NameRequiredDescriptionDefault
idYestrack:<id>, artist:<id>, album:<id> or playlist:<id> from search, a spotify: URI or an open.spotify.com URL.

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover readOnly, idempotent, openWorld and non-destructive, so the safety profile is settled. The description still adds real behavioral value by disclosing scope and truncation — notably that a playlist returns only 'its first 50 tracks', which an agent could not infer from annotations or schema. It omits error behavior for malformed ids, which caps it below 5.

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?

Two front-loaded sentences: the payoff (full record with rich fields) comes first, and the accepted id formats come second. The per-type field enumeration is dense but each element tells the agent something about the return payload, so little is wasted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With one required parameter, full schema coverage, no output schema and rich annotations, the description covers the remaining gaps an agent needs: what each record type yields and the 50-track playlist cap. Nothing required to call it correctly is missing.

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?

There is a single parameter with 100% schema coverage, and the description's id-format text nearly duplicates the schema's own description ('track:<id>, artist:<id>, album:<id> or playlist:<id>... spotify: URI or open.spotify.com URL'). The only marginal addition is tying the id to search results, so this sits at the documented baseline.

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 opens with a specific framing ('full record behind a search result') and enumerates exactly what each record type returns — track, artist, album, playlist — so the agent knows this is a polymorphic detail lookup. It does not explicitly distinguish itself from overlapping siblings like get_album, get_artist_overview or get_playlist, which is the only thing keeping it from a 5.

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 phrase 'Takes an id from the search results' implies the intended workflow (search first, then fetch), which is useful. However, there is no explicit when-to-use versus get_album/get_artist_overview/get_playlist, and no statement of when not to use it or what happens with an invalid id.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_albumGet albumC
Read-onlyIdempotent
Inspect

An album with its track list and (by default) every track's lifetime play count, plus the album total, release date, label, UPC and popularity.

NameRequiredDescriptionDefault
albumYesSpotify album id, spotify:album:<id> URI or open.spotify.com/album/<id> URL.
include_play_countsNoAdd each track's lifetime play count and the album total.

TDQS

C2.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover read-only, idempotent, non-destructive and open-world behavior, so the safety profile needs no restating. The description adds the non-obvious default that play counts and album totals are included unless opted out, which is genuinely useful behavioral context. It says nothing about album resolution failures, unknown-ID behavior, 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence with no filler, and the primary content (album + track list) leads. The trailing metadata enumeration is slightly list-like but every item is informative given there is no output schema.

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?

With no output schema, the description usefully documents the returned fields, which is the right thing to cover. What is missing is anything about selection versus the many sibling tools and about failure modes for an open-world lookup; the definition is adequate but leaves real gaps for an agent choosing among eleven siblings.

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% and the album identifier formats (id, URI, URL) are fully documented in the schema, so the description adds little on that front. It does reinforce the default for include_play_counts via '(by default) every track's lifetime play count, plus the album total', which clarifies what the flag toggles, but that mostly duplicates the schema's own default and description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is a noun phrase ('An album with its track list...') rather than a verb+resource statement, so the operation must be inferred from the tool name. It does enumerate the payload precisely (tracks, play counts, total, release date, label, UPC, popularity), which clarifies what the tool returns, but it never says 'retrieves/fetches an album'.

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 versus siblings such as get_tracks, get_track_play_count, get_album-adjacent insight tools, or search. The only usage-adjacent signal is the '(by default)' note on play counts, which is a parameter behavior, not tool selection guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_artist_insightsArtist genres, moods and BPMA
Read-onlyIdempotent
Inspect

An artist's sound profile from their top tracks: genres, moods and activities with 0-1 weights, and tempo (average, min, max BPM). Up to 20 artists per call.

NameRequiredDescriptionDefault
artistsYesSpotify artist ids, spotify:artist:<id> URIs or open.spotify.com/artist/<id> URLs (1-20).

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile needs no repetition. The description adds genuinely non-structured behavior: the profile is computed only from an artist's top tracks (not the full catalog) and weights are 0-1 normalized, both of which affect interpretation of results. It omits edge-case behavior for unknown or partially resolvable artist IDs.

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 dense sentences with zero redundancy, and the payoff (what the profile contains) is front-loaded ahead of the batching limit. Every clause carries information an agent needs to interpret the response.

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?

With no output schema, the description carries the burden of describing returns and does so concretely (genres, moods, activities with 0-1 weights, tempo min/avg/max). Minor gaps remain: the shape of the per-artist result and what is returned for an unresolved artist are unstated.

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% and the single parameter already documents accepted formats (IDs, URIs, URLs) and the 1-20 range. The description's 'Up to 20 artists per call' merely restates maxItems, so it adds no syntax or format meaning beyond the schema. Baseline 3 applies when the schema does the heavy lifting.

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?

States a specific resource and the exact contents returned: genres, moods, activities with 0-1 weights, and tempo average/min/max BPM, derived from top tracks. This clearly separates it from a plain metadata lookup, though it never names the adjacent siblings (get_artist_overview, get_artists_stats) that an agent would otherwise have to disambiguate from.

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?

There is no when-to-use guidance at all: nothing explains when to pick this over get_artist_overview or get_artists_stats, nor any exclusion such as 'not suitable for full catalog analysis'. The only guidance-like sentence, 'Up to 20 artists per call', is a batching constraint rather than a selection rule.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_artist_overviewArtist overviewB
Read-onlyIdempotent
Inspect

One artist's profile: monthly listeners, followers, world rank, top cities, top tracks with play counts, latest release, discography counts, related artists, biography and social links.

NameRequiredDescriptionDefault
artistYesSpotify artist id, spotify:artist:<id> URI or open.spotify.com/artist/<id> URL.
top_tracksNoHow many top tracks to return (1-10).

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds useful context by listing the returned data categories, but it does not mention rate limits, error behavior, or whether missing data is omitted or null.

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 front-loaded sentence that efficiently enumerates the returned data. It is appropriately sized for a read-only overview tool, though the long comma-separated list is slightly dense.

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?

There is no output schema, so the description carries the burden of explaining return values, and it does so by listing the major data categories. For a read-only tool with full schema coverage and clear annotations, this is nearly complete, though it could clarify behavior when data is unavailable.

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%, and the schema fully documents both the artist identifier formats and the top_tracks range. The description adds no parameter-level meaning beyond what the schema already provides, so the baseline of 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 identifies the resource (one artist's profile) and enumerates the specific data returned, including listeners, rank, top tracks, releases, and related artists. It does not explicitly distinguish this tool from close siblings such as get_artist_insights, get_artists_stats, or get_related_artists, so it falls short of a 5.

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?

The description gives no guidance on when to use this tool versus alternatives. With siblings like get_artist_insights, get_artists_stats, and get_related_artists, an agent must infer the distinction from names alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_artists_statsArtist monthly listeners and statsA
Read-onlyIdempotent
Inspect

Monthly listeners, followers, world rank, popularity, genres and top 5 cities (with listener counts) for up to 50 artists in one call.

NameRequiredDescriptionDefault
artistsYesSpotify artist ids, spotify:artist:<id> URIs or open.spotify.com/artist/<id> URLs (1-50).

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false, and openWorldHint, so the safety profile is covered. The description adds meaningful context beyond the annotations by enumerating exactly which fields come back and stating the batch limit of 50 artists, which is the key behavioral trait for planning calls. It does not mention rate limits or error handling, so it is not a 5.

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?

A single sentence with zero filler, front-loaded with what data is returned and ending with the batch scope. Every clause earns its place.

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?

With no output schema and a single simple parameter, the description does the necessary work by listing the metrics returned, so an agent knows what to expect. It does not describe response structure or ordering for multiple artists, which keeps it from a 5.

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 single 'artists' parameter's accepted formats and 1-50 range are already fully documented. The description only echoes the 'up to 50' limit and adds 'in one call', providing marginal value beyond the schema. 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 names the exact resource (artists) and enumerates the specific metrics returned: monthly listeners, followers, world rank, popularity, genres, and top 5 cities with listener counts. It does not differentiate from close siblings like get_artist_overview or get_artist_insights, so it falls short of a 5.

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 phrase 'for up to 50 artists in one call' implies a batch use case, but there is no explicit guidance on when to use this versus get_artist_overview or get_artist_insights, and no stated exclusions or prerequisites. Usage is inferable but not spelled out.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_chartSpotify chartsA
Read-onlyIdempotent
Inspect

Spotify Charts by country: top_tracks (Top 200), viral_tracks (Viral 50, daily only), top_artists or top_albums. Each entry has rank, previous and peak rank, days (or weeks) on the chart, movement and, for top_tracks, the streams in that period. Defaults to the latest published daily chart.

NameRequiredDescriptionDefault
dateNoChart date YYYY-MM-DD; omit for the latest published chart.
chartNoWhich chart.top_tracks
limitNoEntries to return (1-200).
periodNoDaily or weekly chart (viral_tracks is daily only).daily
countryNo'global' or a 2-letter country code, e.g. 'us', 'br', 'mx'.global
include_play_countsNotop_tracks / viral_tracks: add each track's lifetime play count (slower).

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover readOnly/idempotent/openWorld safety, and the description adds real context beyond them: viral_tracks is daily-only and include_play_counts is slower. That 'slower' note and the default-to-latest behavior are the kind of operational detail annotations cannot express.

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?

Three tight sentences: resource and chart types first, entry fields second, default last. No filler and no repetition of annotation-declared safety traits.

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?

With no output schema, the description correctly spends its words describing the shape of each entry (rank, previous/peak rank, days/weeks, movement, streams). Defaults are covered; only edge behaviors such as out-of-range dates or empty results are unaddressed.

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 the baseline is 3; the description adds meaning by tying period to output units ('days (or weeks) on the chart') and noting streams are only present for top_tracks. That clarifies field semantics rather than repeating the schema.

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?

States a specific verb+resource ('Spotify Charts by country') and enumerates the four chart types it returns, which cleanly separates it from siblings like get_tracks or get_artist_overview. An agent can tell what this returns without opening the schema.

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?

Explains the default behavior ('defaults to the latest published daily chart') and flags the viral_tracks daily-only constraint, which guides selection among the chart enum values. It doesn't name alternative tools or state exclusions, but the chart-type mapping functions as implicit routing guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_playlistGet playlistA
Read-onlyIdempotent
Inspect

A playlist's name, owner, followers and description, plus limit tracks (max 100) from offset with lifetime play counts. Use next_offset from the answer to page through long playlists (later pages skip the metadata and cost one request).

NameRequiredDescriptionDefault
limitNoTracks to return (1-100).
offsetNoIndex of the first track (0 = start).
playlistYesSpotify playlist id, spotify:playlist:<id> URI or open.spotify.com/playlist/<id> URL.
include_play_countsNoAdd each track's lifetime play count.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover read-only, idempotent, non-destructive, so the safety bar is met. The description adds genuinely non-obvious behavior: the 100-track cap, that lifetime play counts are attached, and that subsequent pages omit metadata and consume one request each — useful for planning request budgets.

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 tight sentences with zero filler. The payload content is front-loaded, the pagination rule follows. Every clause carries information an agent needs.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, so the description carries the return-value burden and does so — it lists the metadata fields, the track slice, play counts, and the `next_offset` control field. Nothing essential to correct invocation is missing.

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 the baseline is 3. The description goes beyond the schema by tying `offset`/`limit` to a paging loop driven by a `next_offset` value returned in the answer, which adds interpretive meaning the schema alone doesn't convey.

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 names the resource and enumerates exactly what comes back — name, owner, followers, description, plus a bounded track slice with lifetime play counts — so the agent knows this is a playlist-metadata-plus-track-page tool. It does not explicitly contrast with siblings like `get_tracks` or `get_album`, but the scope is unambiguous on its own.

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?

It gives concrete operational guidance: use `next_offset` from the response to page, and later pages skip metadata and cost one request. That tells the agent how to iterate. It stops short of stating when to prefer this over `get_tracks` or `search`, so no explicit alternative routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_track_insightsTrack genres, moods and BPMB
Read-onlyIdempotent
Inspect

Genres, moods and activities (with Spotify's 0-1 weights), tempo in BPM, credits (writers, producers), lyrics flag and vocal languages for up to 50 tracks.

NameRequiredDescriptionDefault
tracksYesSpotify track ids, spotify:track:<id> URIs or open.spotify.com/track/<id> URLs (1-50).

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so safety behavior is covered. The description adds useful context about returned data categories, Spotify 0-1 weights, and the 50-track cap, but does not address authentication, rate limits, or error behavior.

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, dense sentence with no filler. It front-loads the most important data categories, though the noun-phrase format is slightly less immediately actionable than a verb-led statement.

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?

With no output schema and only one fully documented parameter, the description does a good job specifying what information is returned and the batch limit. It could be stronger if it stated the retrieval action explicitly or mentioned response structure, but it is sufficient for correct invocation.

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%, and the schema fully documents the tracks parameter, including accepted ID formats and the 1-50 range. The description's 'up to 50 tracks' is consistent but adds little beyond the schema, so 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 identifies the resource as track insights and enumerates the specific data returned: genres, moods, activities, BPM, credits, lyrics flag, and languages. It lacks an explicit verb and does not name sibling tools, but the field list makes its scope distinct from get_tracks or get_track_play_count.

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?

There is no guidance on when to use this tool versus siblings like get_tracks, get_track_play_count, or get_album. The only contextual hint is the 50-track batch limit, which does not explain selection criteria or alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_track_play_countTrack play countsA
Read-onlyIdempotent
Inspect

Lifetime Spotify play counts (streams) for up to 50 tracks in one call, with track name, artists and release date. The fastest way to compare streams. A play count of 0 means fewer than 1,000 plays.

NameRequiredDescriptionDefault
tracksYesSpotify track ids, spotify:track:<id> URIs or open.spotify.com/track/<id> URLs (1-50).

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already carry readOnly/idempotent/openWorld semantics, so the description's real contribution is the data caveat: counts are lifetime, and 0 means fewer than 1,000 plays — essential for interpreting results correctly. It would score higher if it also noted missing/unknown tracks or response ordering.

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?

Three short sentences, front-loaded with the payload, then the comparative value proposition, then the interpretation caveat. Every sentence earns its place and nothing is redundant.

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?

With no output schema, the description responsibly enumerates the returned fields and explains the zero-value encoding, which is the main gotcha for a single-parameter read tool. Only edge cases (invalid IDs, not-found tracks, result ordering) are left unaddressed.

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% and the schema already specifies accepted formats (IDs, spotify:track URIs, open.spotify.com URLs) and the 1–50 range. The description only restates the 50-track cap, adding no new parameter meaning.

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?

States a specific verb and resource ('lifetime Spotify play counts (streams) for up to 50 tracks') plus the returned fields (track name, artists, release date), which is far more concrete than a sibling like get_tracks. It implies but never names the differentiation from get_track_insights or get_tracks, so it stops short of unambiguous routing.

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 fastest way to compare streams' hints at the comparison use case, but no alternative tool is named and there are no exclusions (e.g., when to prefer get_track_insights for per-track analysis). Usage must be inferred by the agent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_tracksGet tracksA
Read-onlyIdempotent
Inspect

Track details for up to 50 tracks in one call: name, artists, album, release date, duration, explicit flag, popularity, ISRC and (by default) lifetime play count. include_insights adds genres, moods, activities, BPM, credits, lyrics flag and languages. A play count of 0 means fewer than 1,000 plays.

NameRequiredDescriptionDefault
tracksYesSpotify track ids, spotify:track:<id> URIs or open.spotify.com/track/<id> URLs (1-50).
include_insightsNoAdd genres, moods, BPM, credits and languages (slower).
include_play_countsNoAdd each track's lifetime play count.

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, non-destructive, openWorld, so safety is covered; the description instead adds genuinely new behavior: the 'slower' performance cost of include_insights and the default-on play counts. The 'play count of 0 means fewer than 1,000 plays' note is a valuable data-semantics disclosure that prevents a likely misinterpretation.

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 dense sentences with zero filler; the core capability and the field list come first, followed by the optional-insights expansion and the one edge-case caveat. Every clause carries 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?

With no output schema, the description appropriately enumerates the returned fields and covers defaults, performance cost, and the play-count edge case. It is silent on what happens when some of the supplied IDs are invalid (error vs. partial result), which matters for a 50-item batch call.

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 baseline is 3; the description still earns above baseline by explaining what include_insights actually returns and by clarifying that 0 is a bucketed value, not a literal zero. It does not add anything about accepted ID formats beyond what the schema already documents.

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?

States a specific verb+resource ('Track details') and enumerates the returned fields, making the scope concrete. The batch framing ('up to 50 tracks in one call') distinguishes it from the single-track siblings get_track_insights and get_track_play_count, though it never names those siblings explicitly.

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?

Usage is implied rather than stated: 'include_insights adds genres, moods... (slower)' signals a performance trade-off, and the default behavior of include_play_counts is clear. There is no explicit when-to-use-this-vs-sibling guidance, e.g. no routing to get_track_play_count for a single track's plays.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

isrc_lookupFind tracks by ISRCA
Read-onlyIdempotent
Inspect

Find the Spotify track(s) for an ISRC (International Standard Recording Code), e.g. USUG11904206. Returns ids, names, artists, album and release date.

NameRequiredDescriptionDefault
isrcYes12-character ISRC; spaces and dashes are ignored.

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, openWorld and non-destructive, so safety is covered. The description adds value beyond that by enumerating the return payload (ids, names, artists, album, release date), which matters since there is no output schema. It stops short of disclosing empty-result or multi-match behavior.

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?

A single compact sentence pair with the identifying concept and example front-loaded, followed by the return shape. No filler, no restatement of the title.

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 one-parameter read-only lookup with full annotation coverage, the definition covers purpose, input form, and return fields. The only gap is edge-case behavior, such as what is returned when the ISRC resolves to nothing or to multiple tracks.

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% and the schema already documents the length bounds and that spaces/dashes are ignored. The description contributes only a sample ISRC value, which is marginally useful but adds no semantics the schema lacks; baseline 3 applies.

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 states a specific verb ('Find') and resource ('Spotify track(s) for an ISRC'), defines the acronym, and supplies a concrete example value. This is clearly distinct from siblings like search or get_tracks, which are not keyed by ISRC.

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?

Usage is implied by the resource type: if you hold an ISRC, this is the tool. But the description never explicitly says when to prefer it over search, nor does it name alternatives or any when-not condition. An agent must infer the routing.

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. 1 tool update
    • Addedfetch
  2. 12 tool updates
    • First observedget_album
    • First observedget_artist_insights
    • First observedget_artist_overview
    • First observedget_artists_stats
    • First observedget_chart
    • First observedget_playlist
    • First observedget_related_artists
    • First observedget_track_insights
    • First observedget_track_play_count
    • First observedget_tracks
    • First observedisrc_lookup
    • First observedsearch

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    Enables searching and managing Spotify playlists, tracks, and user information through the Spotify Web API.
    10
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    Provides access to the SonoVault music metadata API, enabling search and retrieval of information about 90M+ tracks, artists, labels, and releases, including ISRC, ISWC, and cross-platform IDs.
    15
    96 npm
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.