Skip to main content
Glama

remove_from_library

Destructive

Remove one or more Spotify tracks, albums, episodes, shows, audiobooks, users, or playlists from a user's Spotify library. Preview changes by default; set dry_run=false to commit.

Instructions

Preferred. Accepts the widest URI mix (track, album, episode, show, audiobook, user, playlist) in one request. Remove one or more items from the user's library via Spotify's unified library endpoint. Max 40. PREVIEWS BY DEFAULT — pass dry_run=false to commit. Removals of 10+ items additionally require elicitation confirmation (or SPOTIFY_MCP_CONFIRM=never for automation).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
urisYesSpotify URIs to remove
dry_runNoPreview only: perform the read side and return a PLAN without changing anything. Default true — pass dry_run=false to commit.
response_formatNo'concise' = human prose, 'detailed' = more fields in prose, 'json' = raw API objectconcise

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changedv3.0.1
    • addedInput schema / properties / dry_run / default
      Added value: +true
    • changedInput schema / properties / dry_run / description
      Previous value: -"Preview only: show exactly which URIs would be removed without calling the API"New value: +"Preview only: perform the read side and return a PLAN without changing anything. Default true — pass dry_run=false to commit."
  2. Changed2 schema fields changedv1.31.0
    • removedInput schema / $schema
      Removed value: -"http://json-schema.org/draft-07/schema#"
    • addedInput schema / additionalProperties
      Added value: +false
  3. Addedv1.26.1

TDQS

A4.6/5.0
Behavior5/5

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

Annotations only carry destructiveHint=true; the description adds the critical behavior that this is a preview-first operation ('PREVIEWS BY DEFAULT — pass dry_run=false to commit') and that large removals trigger elicitation confirmation with an env-var escape hatch. That is exactly the kind of operational context an agent needs to avoid an unintended destructive call.

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?

Dense, front-loaded sentences that each carry a distinct fact (scope, endpoint, limit, dry-run default, confirmation rule). The leading 'Preferred.' is slightly cryptic out of context, but overall there is little waste.

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 destructive batch tool with no output schema, the description covers scope, limits, default preview behavior, commit path, and the confirmation requirement — everything needed to invoke it safely and 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 coverage is 100% and the schema already documents uris, dry_run and response_format, so the baseline is 3. The description still adds meaning: the max-40 batch limit, the accepted URI entity types, and the preview/commit semantics of dry_run that go beyond the schema's terse wording.

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?

Specific verb+resource: removes one or more items from the user's library via Spotify's unified library endpoint. It also carves out its scope against siblings ('accepts the widest URI mix (track, album, episode, show, audiobook, user, playlist) in one request'), which separates it from remove_from_playlist and remove_from_library_by_playlist.

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?

States it is 'Preferred' and explains why (widest URI mix in one request, max 40), which implies when to choose it over narrower removal tools. It stops short of explicitly naming the alternative tools or the conditions where they would win, so it's clear context rather than full when/when-not guidance.

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

Deploy Server

Other Tools