Skip to main content
Glama

compare_playlists

Compare Spotify playlists to surface size, follower, duration, popularity, genre, release-era, and unique-track stats, plus shared-track counts between each pair.

Instructions

One row per playlist (or only the ones given): size, followers, hours, average, shortest and longest duration, average popularity, genre diversity, release era (median, oldest, newest year), first and last added, and the unique tracks that are in no other playlist; then how many tracks each pair of playlists shares. A data tool: draw charts from it yourself.

Args: playlists: names, IDs or links; default all loaded playlists.

Input Schema

NameRequiredDescriptionDefault
playlistsNo

Output Schema

NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.0.1

TDQS

A3.6/5.0
Behavior3/5

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

With no annotations supplied, the description carries the full behavioral burden. It does well on output shape (the exact metric set and pairwise shared-track counts) and confirms the default scope is all loaded playlists, but it says nothing about whether it requires loaded playlists, performance cost on large collections, or the pairwise comparison's complexity. Read-only intent is strongly implied by 'compare' and 'draw charts', but never stated outright.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

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

The metric enumeration is front-loaded and informative, but it is a single dense run-on list that is hard to scan, and the trailing 'A data tool: draw charts from it yourself' plus the Args restatement of the default are awkwardly placed. The content earns its place; the formatting does not.

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?

An output schema exists, so return-format explanation is not strictly required, yet the description goes further and enumerates the metrics anyway. For a one-optional-parameter read tool this is nearly sufficient; the notable gap is the unstated dependency on playlists being loaded, which siblings like load_playlists make relevant.

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 description coverage is 0%, so the description must compensate, and it does: the Args block explains that 'playlists' accepts names, IDs or links, and that omitting it defaults to all loaded playlists. This is meaningful semantics the schema's bare 'array of string' cannot convey, though it stops short of format examples or error behavior for unknown names.

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 names a specific verb (compare) and resource (playlists) and then enumerates the exact per-playlist metrics produced: size, followers, hours, average/shortest/longest duration, average popularity, genre diversity, release era, first/last added, and unique tracks. That is far more specific than any sibling such as show_playlist or collection_stats, so an agent can separate it from alternatives without opening a schema.

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 only usage hint is 'A data tool: draw charts from it yourself', which says what to do with output but not when to choose compare_playlists over collection_stats or show_playlist. There is no exclusion clause and no prerequisite (e.g. playlists must be loaded first via load_playlists), even though load/unload siblings imply that state exists.

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