Skip to main content
Glama

merge_playlists

Combine multiple Spotify playlists into one, removing duplicate tracks (first occurrence kept). Append to an existing playlist or create a new one from your sources.

Instructions

Merge multiple playlists into one. Deduplicates tracks across sources (first-seen order wins) and adds them in batches of 100. Pass target_playlist_id to append to an existing playlist (it is NOT cleared) or new_name to create a fresh playlist.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
publicNoVisibility of a NEW playlist. Default: false
dry_runNoPreview only: validate inputs and describe exactly what would change without performing it
sourcesYesSource playlists as IDs or spotify:playlist: URIs
new_nameNoName for a newly created target playlist
max_resultsNoMax items to return (default: SPOTIFY_MCP_MAX_ITEMS env or 50)
response_formatNo'concise' = human prose, 'detailed' = more fields in prose, 'json' = raw API objectconcise
target_playlist_idNoExisting playlist to APPEND into (never cleared), as ID or spotify:playlist: URI
Behavior4/5

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

With no annotations provided, the description carries the full burden and discloses more than most: the dedup strategy (first-seen order wins), batching behavior (100 per batch), and the critical non-destructive fact that appending does NOT clear the target. It falls short of 5 by leaving ambiguities like whether existing target contents participate in dedup and what happens on partial failures.

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?

Three sentences with zero fluff: purpose first, then the two behavioral traits that matter most (dedup and batching), then compact routing for the two output modes. Every sentence earns its place and the critical 'it is NOT cleared' caveat is prominently included.

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 no annotations, no output schema, and 7 parameters, the description leaves gaps: it does not state what happens if neither target_playlist_id nor new_name is supplied (schema requires only sources), what the return value looks like, or failure semantics. Core workflow is well-covered, but an agent cannot fully predict the tool's behavior at the edges.

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%, so the baseline is 3; the description adds value by clarifying the relationship and implied mutual exclusivity between target_playlist_id and new_name, and by attaching dedup ordering semantics to sources that the schema does not express. This pushes it above baseline without duplicating what the schema already documents.

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?

States a specific verb and resource ('Merge multiple playlists into one') and immediately distinguishes the tool from its many playlist-manipulation siblings by defining both execution modes (append to existing vs create fresh). The scope is unambiguous even before reading the schema.

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?

Gives clear within-tool decision guidance ('Pass target_playlist_id... or new_name...') but never teels agents when to prefer this over overlapping siblings like merge_playlists_plan, playlist_union, playlist_un on_preview, or dedupe_playlist_apply. Usage context is implied by the name and purpose rather than explicitly routed.

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

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/NovaLux12/spotify-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server