Skip to main content
Glama

check_playlist

Read-only

Scores one Spotify playlist for bot and fake-follower risk. Returns the playlist (id, name, curator, followers, tracks, url), botRisk.score from 0 to 100, botRisk.level (low, medium, high or editorial), the warning factors behind the score (follower-to-track ratio, generic naming, sudden follower spikes and similar), the caller tier, and the follower snapshots SpotCheck holds for the last 31 days. Use it when the question is about a single playlist, such as one an artist is about to pitch to or has just been added to. For a whole list pasted from Spotify for Artists after a distributor artificial-streaming warning, use scan_warning_playlists instead: it ranks up to 50 playlists in one call and drafts the replies. Limits: anonymous callers get 1 check a day and signed-in Free accounts 3; Free responses show only the most severe factor (lockedFactors counts the hidden ones) and no snapshots. Pro (£4.99/mo) and Premium (£14.99/mo) are unlimited and get every factor and the snapshot history. Call get_account_status to see what is left today. Read-only: it reads public Spotify data and stored snapshots and changes nothing apart from the daily usage count, which is refunded if Spotify fails. Errors: INVALID_PARAMS (not a playlist link), NOT_FOUND (deleted or private), SPOTIFY_PLAYLIST (Spotify-owned editorial or algorithmic playlists, which the API does not expose), UNVERIFIABLE, RATE_LIMITED (daily allowance used).

Input Schema

NameRequiredDescriptionDefault
playlistYesSpotify playlist to look up, in any of three forms: a share URL ("https://open.spotify.com/playlist/1PmwMQY86pJuAm7veFt3u2", query strings such as ?si= are ignored), a URI ("spotify:playlist:1PmwMQY86pJuAm7veFt3u2") or the bare 22-character base-62 id ("1PmwMQY86pJuAm7veFt3u2"). Album, track and artist links are rejected with INVALID_PARAMS.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / playlist / description
      Previous value: -"Spotify playlist URL (e.g. \"https://open.spotify.com/playlist/1PmwMQY86pJuAm7veFt3u2\"), URI, or 22-character playlist ID."New value: +"Spotify playlist to look up, in any of three forms: a share URL (\"https://open.spotify.com/playlist/1PmwMQY86pJuAm7veFt3u2\", query strings such as ?si= are ignored), a URI (\"spotify:playlist:1PmwMQY86pJuAm7veFt3u2\") or the bare 22-character base-62 id (\"1PmwMQY86pJuAm7veFt3u2\"). Album, track and artist links are rejected with INVALID_PARAMS."
  2. First observed

TDQS

A4.6/5.0
Behavior5/5

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

Annotations only declare readOnlyHint and openWorldHint; the description adds substantial context beyond that: daily quotas per tier, that Free responses hide factors (lockedFactors counts them) and snapshots, that Pro/Premium are unlimited, and that the usage count is refunded if Spotify fails. It also enumerates the six error codes including the notable SPOTIFY_PLAYLIST case for editorial/algorithmic playlists. Nothing here contradicts readOnlyHint=true, and the explicit 'changes nothing apart from the daily usage count' statement is a good-faith disclosure of the one side effect.

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 front-loaded with purpose and return shape, then usage, then limits, then errors — a sensible ordering that lets an agent stop reading early. It is dense but lengthy, and the exact pricing figures (£4.99/mo, £14.99/mo) are not load-bearing for tool selection; that is the main trimming opportunity.

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 full burden of describing return values, and it does so field by field (playlist id/name/curator/followers/tracks/url, score, level, factors, tier, 31-day snapshots). Combined with the enumerated error cases and tier-dependent visibility rules, an agent has everything needed to call this and interpret the result.

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 single parameter already documents all three accepted forms plus the rejection of album/track/artist links. The description only echoes the rejection indirectly via 'INVALID_PARAMS (not a playlist link)', adding essentially no syntax or format detail beyond the schema. 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 first sentence gives a specific verb and resource: scores one Spotify playlist for bot and fake-follower risk. It then enumerates what the score consists of (botRisk.score 0-100, botRisk.level, warning factors), which makes the tool unmistakable against siblings like scan_warning_playlists or get_curator_contacts.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit when-to-use is given (a single playlist an artist is pitching to or was added to), along with an explicit alternative and its trigger condition (scan_warning_playlists for a list pasted from Spotify for Artists after an artificial-streaming warning, up to 50 at once). It also routes quota questions to get_account_status, so the agent is never left guessing which sibling to call.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources