Skip to main content
Glama

playlist_shuffle

Randomize a Spotify playlist's track order using Fisher-Yates, with an optional seed for deterministic results or a dry run to preview changes.

Instructions

Fisher-Yates shuffle a playlist (seeded optional). Quota: GET all + PUT/POST.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
seedNoDeterministic shuffle seed; omit for a random order
dry_runNoPreview only: validate inputs and describe exactly what would change without performing it
playlist_idYesPlaylist ID, spotify:playlist: URI, or URL

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed4 schema fields changedv1.31.0
    • removedInput schema / $schema
      Removed value: -"http://json-schema.org/draft-07/schema#"
    • addedInput schema / additionalProperties
      Added value: +false
    • addedInput schema / properties / playlist_id / description
      Added value: +"Playlist ID, spotify:playlist: URI, or URL"
    • addedInput schema / properties / seed / description
      Added value: +"Deterministic shuffle seed; omit for a random order"
  2. Addedv1.26.1

TDQS

B3.3/5.0
Behavior3/5

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

The 'Quota: GET all + PUT/POST' note adds real operational context beyond the single destructiveHint=false annotation, implying the tool performs writes and costs a read-plus-write quota. However, it says nothing about reversibility, ownership/auth requirements, or what happens to existing ordering, which matters for a mutating operation.

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

Conciseness5/5

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

Two compact sentences, algorithm stated first, quota constraint second; nothing is padded or redundant. Every clause carries information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutation tool with only a destructiveHint annotation and no output schema, the description covers the algorithm and quota cost but omits whether the change is reversible, what the tool returns, and any auth/ownership prerequisites. Adequate but with visible gaps.

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%, so playlist_id, seed, and dry_run are already documented in the schema; the description only echoes the optional seed behavior and never mentions dry_run. Baseline 3 is appropriate when the schema carries the parameter burden.

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?

Names a concrete verb ('shuffle') plus resource ('playlist') and even specifies the algorithm (Fisher-Yates), which separates it from generic siblings like playlist_sort and playlist_reverse. It stops short of explicitly contrasting itself with those siblings, so it is clear but not fully differentiated.

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?

There is no indication of when to choose this over playlist_sort, playlist_reverse, or reorder_playlist_items, nor when to prefer the dry_run preview. The parenthetical '(seeded optional)' hints at a determinism use case but never states it as 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