Skip to main content
Glama
Spotify MCP Server

Spotify MCP Server

by jamiew

Unfollow Artists

unfollow_artists
DestructiveIdempotent

Unfollow up to 50 Spotify artists at once using their IDs or URIs to remove unwanted artists from your following list.

Instructions

Unfollow artists. Requires user-follow-modify; reauthorize if it is missing.

Args:
    artist_ids: Artist IDs or URIs (up to 50)

Input Schema

NameRequiredDescriptionDefault
artist_idsYes

Output Schema

NameRequiredDescriptionDefault
statusYes
messageYes
snapshot_idNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.8.1

TDQS

A3.7/5.0
Behavior3/5

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

Annotations already declare destructiveHint=true, idempotentHint=true and openWorldHint=true, so the safety profile is covered. The description adds genuinely new context beyond them by stating the required scope and the reauthorization path, which annotations never express. It still omits what is actually destroyed/lost, whether unfollowing is recoverable by re-following, and how partial failures among the 50 IDs are handled.

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 short lines, front-loaded with the action and immediately followed by the blocking prerequisite. The docstring-style 'Args:' block is slightly awkward formatting but earns its space given the zero schema coverage.

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?

An output schema exists, so return values need no explanation, and the annotations already declare destructiveness and idempotency. With the scope requirement and the batch/format limits supplied, an agent has everything needed to invoke this correctly.

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 carry the parameter burden, and it does: it specifies accepted formats ('Artist IDs or URIs') and a hard batch limit (up to 50), neither of which appears in the schema. That is meaningful compensating detail, though it does not say what happens for invalid or unknown IDs.

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 gives a specific verb + resource ('Unfollow artists'), which unambiguously identifies the operation and is easily distinguished from the inverse sibling follow_artists. It does not explicitly name the alternative, but the name and verb leave little ambiguity.

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 context is limited to a prerequisite: it names the required OAuth scope (user-follow-modify) and tells the agent to reauthorize if it is missing, which is actionable. However, there is no guidance on when to prefer this over check_following_artists or follow_artists, no exclusion cases, and no note on behavior when an artist is not currently followed.

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