Skip to main content
Glama
@jam-jam/convert-mcp

@jam-jam/convert-mcp

by titouannwtt

Delete a notebook playlist

jj_delete_playlist

Deletes a playlist while keeping its songs in the notebook and other playlists. Idempotent, so unknown IDs succeed without error.

Instructions

Deletes a playlist, and ONLY the playlist: its songs stay in the notebook and in their other playlists. Idempotent, and an unknown id succeeds too. If the playlist was published on the profile, that published copy disappears.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "playlistId": "<playlistId>"
    },
    "name": "jj_delete_playlist"
  }
}

Input Schema

NameRequiredDescriptionDefault
playlistIdYesStable playlist id ("pl_...").

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.3.2

TDQS

A4.6/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does so well: it discloses that songs are preserved and left in their other playlists, that the operation is idempotent and tolerates unknown ids, and that a published profile copy disappears. It does not mention any permission/auth requirement or whether the deleted playlist is recoverable.

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 short sentences, each earning its place: the blast radius first, then retry semantics, then the published-copy side effect. No filler or restatement of the name.

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 one-parameter mutation with no output schema, this covers everything an agent needs before calling: what is destroyed, what survives, retry safety, and the profile side effect. Only auth/permission requirements are absent, which is a minor gap for a delete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% so the schema already defines playlistId as a stable "pl_..." id, and the description adds real semantic value on top by stating that an unknown id still succeeds — telling the agent that a bad id is not an error signal.

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?

Names a specific verb+resource ("Deletes a playlist") and immediately scopes it against the obvious confusion with song deletion: "ONLY the playlist: its songs stay in the notebook." An agent can distinguish this from jj_delete_song without opening either schema.

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 non-cascade clarification and the idempotency note give clear context for when this is the right call and that retrying is safe. It stops short of naming a sibling alternative (e.g. jj_update_playlist or jj_delete_song) or stating any when-not condition, so it is strong but not exhaustive.

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