Skip to main content
Glama
Spotify MCP Server

Spotify MCP Server

by jamiew

Get Followed Artists

get_followed_artists
Read-onlyIdempotent

Retrieve the artists a Spotify user follows using cursor-based pagination. Set a page limit and pass the returned after cursor to fetch the next page.

Instructions

Get the artists the user follows. Paged by cursor, not offset.

Args:
    limit: Max artists to return per page (1-50, default 20)
    after: The `after` cursor from the previous page (omit for the first page)

Returns:
    FollowedArtists; pass its `after` back for the next page (None on the last)

Input Schema

NameRequiredDescriptionDefault
afterNo
limitNo

Output Schema

NameRequiredDescriptionDefault
nextNo
afterNo
itemsYes
limitYes
totalNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.8.1

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and openWorldHint, so safety is covered. The description adds genuinely useful behavior beyond that: paging is cursor-based rather than offset-based, the cursor comes from the previous response, and None signals the last page. It does not mention rate limits or ordering of results, which keeps it at a 4 rather than 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.

Conciseness4/5

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

The definition is front-loaded with the purpose, then cleanly separated into Args and Returns sections, and every line conveys information. The docstring-style Args/Returns scaffolding is slightly heavier than needed given the schema and output schema already list these fields, but no sentence 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?

For a two-parameter read tool with an output schema and full annotation coverage, this is complete: it explains what the tool returns conceptually, how to paginate, and what terminates iteration. Nothing an agent needs in order to call it correctly and drive the pagination loop is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description carries the full burden and does: limit is bounded to 1-50 with default 20, and after is defined as the cursor from the previous page that must be omitted on the first call. These constraints and semantics exist nowhere in the schema, which only shows types and defaults.

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 verb and resource: "Get the artists the user follows." That is unambiguous and clearly distinct from sibling mutators like follow_artists/unfollow_artists. It stops short of naming a near-neighbor such as check_following_artists or get_artist, so it is clear but not sibling-differentiating at the top level.

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 artists the user follows" and the paging note, but there is no explicit when-to-use/when-not guidance and no mention of the alternatives in the sibling set (check_following_artists for a boolean check, get_artist for a single artist). An agent can infer the right context, but nothing steers it away from the wrong sibling.

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