Skip to main content
Glama

grow_playlist

Discover tracks to grow a playlist from your own listening data. Finds songs already in your other playlists, boosts those sharing an artist with the target, and excludes existing tracks.

Instructions

Propose tracks to grow one of your playlists using ONLY your own listening data (no recommendations): finds tracks appearing in >=2 of your OTHER playlists, boosts ones sharing an artist with the target playlist, excludes tracks already in it (and optionally your saved library), and returns top candidates with evidence. Read-only: review the proposals, then call add_to_playlist with the URIs you want.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
sizeNoHow many candidates to propose (default 20)
dry_runNoPreview only: validate inputs and describe exactly what would change without performing it
max_resultsNoMax items to return (default: SPOTIFY_MCP_MAX_ITEMS env or 50)
playlist_idYesTarget playlist ID to grow
exclude_savedNoSkip tracks already in your saved library (default true)
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 changedv1.31.0
    • removedInput schema / $schema
      Removed value: -"http://json-schema.org/draft-07/schema#"
    • addedInput schema / additionalProperties
      Added value: +false
  2. Addedv1.26.1

TDQS

A3.8/5.0
Behavior3/5

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

The description aligns with annotations by declaring 'Read-only' consistent with destructiveHint: false, and adds useful behavioral context: the data-source constraint, deduplication rule (>=2 playlists), artist boost, and exclusion behavior. However, it leaves the dry_run parameter's implication unexplained — dry_run's 'describe exactly what would change without performing it' phrasing suggests a performing mode that the read-only claim doesn't reconcile. Output format ('top candidates with evidence') is also vague.

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 a single dense sentence with the core purpose front-loaded and the follow-up workflow at the end. Every clause earns its place — algorithm, exclusions, and routing. It is slightly long and could be split into two sentences, but no filler or repetition exists.

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 6-parameter tool with no output schema, the description covers purpose, algorithm, and the follow-up action well. However, since no output schema exists, the vague 'returns top candidates with evidence' leaves the response shape under-specified, and the dry_run parameter's behavior is not integrated into the description. An agent could invoke it correctly but would not know what 'evidence' looks like in the response.

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 every parameter (size, dry_run, max_results, playlist_id, exclude_saved, response_format) already carries a description. The tool description adds marginal context by explaining the algorithm that maps to exclude_saved ('and optionally your saved library') and the candidate-count notion, but it does not need to compensate for schema gaps. Baseline 3 is appropriate.

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 description states a specific verb ('Propose tracks'), resource ('one of your playlists'), and a precise algorithm: finds tracks in >=2 other playlists, boosts artist matches, excludes existing tracks. It also explicitly distinguishes itself from recommendation tools with 'using ONLY your own listening data (no recommendations)', which sets it apart from the many playlist and discovery siblings in the toolset.

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?

The description gives an explicit workflow: 'Read-only: review the proposals, then call add_to_playlist with the URIs you want.' This names the exact follow-up tool and clarifies that grow_playlist is an analysis/proposal step, not a mutation. It doesn't explicitly enumerate when-not-to-use alternatives, but the '(no recommendations)' qualifier and the read-only workflow assertion provide strong contextual routing.

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