Skip to main content
Glama

dropplaylists

Empty all queues: clear the audio, video and picture playlists in one call. The current item keeps playing — only the queued items behind it are removed — so playback is never interrupted.

Instructions

Empty all queues: clear the audio, video and picture playlists in one call. The current item keeps playing — only the queued items behind it are removed — so playback is never interrupted. Not undoable; inspect with getplaylist first if the content matters. Returns the player-state snapshot — whatever was playing still is, with nothing queued behind it.

Input Schema

NameRequiredDescriptionDefault
instanceNoTarget Kodi instance. Omitted uses the default ("(null)").

Output Schema

NameRequiredDescriptionDefault
timeNoPlayback position { hours, minutes, seconds, milliseconds }.
typeNoThe active player kind.
audioNoAudio tracks of the playing video (video only): { count, current: { index, language, codec, channels } }. `index` is the set_audio_and_subtitle audio selector.
stateYesPlayback state; "stopped" means nothing is loaded.
progressNoLegible position derived from time/totaltime, "elapsed / total (NN%)" e.g. "15:38 / 46:40 (33%)"; absent for live streams with no fixed length.
subtitleNoSubtitles of the playing video (video only, present only when any exist): { count, enabled, current: { index, language } }. `current` is present only while a subtitle is shown; `index` is the set_audio_and_subtitle subtitle selector.
totaltimeNoThe item's duration, same shape as time.
nowplayingNoThe loaded media (present whenever something is loaded): { media (song/episode/movie/…; "unknown" off-library), id (library id, -1 off-library), file, label, title; and where they apply showtitle/season/episode (TV), album/artist/track (song) }.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed15 schema fields changed
    • removedOutput schema / properties / album
      Removed value: -{
      -  "description": "Song: the album name.",
      -  "type": "string"
      -}
    • removedOutput schema / properties / artist
      Removed value: -{
      -  "description": "Song: the performers, an array of strings.",
      -  "type": "array"
      -}
    • addedOutput schema / properties / audio
      Added value: +{
      +  "description": "Audio tracks of the playing video (video only): { count, current: { index, language, codec, channels } }. `index` is the set_audio_and_subtitle audio selector.",
      +  "type": "object"
      +}
    • removedOutput schema / properties / episode
      Removed value: -{
      -  "description": "TV episode: episode number.",
      -  "type": "integer"
      -}
    • removedOutput schema / properties / file
      Removed value: -{
      -  "description": "Path of the playing item.",
      -  "type": "string"
      -}
    • removedOutput schema / properties / id
      Removed value: -{
      -  "description": "Library id of the playing item; -1 when off-library.",
      -  "type": "integer"
      -}
    • removedOutput schema / properties / label
      Removed value: -{
      -  "description": "Kodi's display label for the item.",
      -  "type": "string"
      -}
    • removedOutput schema / properties / media
      Removed value: -{
      -  "description": "Real media type (song/episode/movie/musicvideo/…); \"unknown\" for an off-library file.",
      -  "type": "string"
      -}
    • addedOutput schema / properties / nowplaying
      Added value: +{
      +  "description": "The loaded media (present whenever something is loaded): { media (song/episode/movie/…; \"unknown\" off-library), id (library id, -1 off-library), file, label, title; and where they apply showtitle/season/episode (TV), album/artist/track (song) }.",
      +  "type": "object"
      +}
    • addedOutput schema / properties / progress
      Added value: +{
      +  "description": "Legible position derived from time/totaltime, \"elapsed / total (NN%)\" e.g. \"15:38 / 46:40 (33%)\"; absent for live streams with no fixed length.",
      +  "type": "string"
      +}
    • removedOutput schema / properties / season
      Removed value: -{
      -  "description": "TV episode: season number.",
      -  "type": "integer"
      -}
    • removedOutput schema / properties / showtitle
      Removed value: -{
      -  "description": "TV episode: the show's name.",
      -  "type": "string"
      -}
    • addedOutput schema / properties / subtitle
      Added value: +{
      +  "description": "Subtitles of the playing video (video only, present only when any exist): { count, enabled, current: { index, language } }. `current` is present only while a subtitle is shown; `index` is the set_audio_and_subtitle subtitle selector.",
      +  "type": "object"
      +}
    • removedOutput schema / properties / title
      Removed value: -{
      -  "description": "The item's title (may be empty).",
      -  "type": "string"
      -}
    • removedOutput schema / properties / track
      Removed value: -{
      -  "description": "Song: track number on the album.",
      -  "type": "integer"
      -}
  2. First observedv0.1.0

TDQS

A4.5/5.0
Behavior5/5

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

With no annotations, the description carries the full behavioral burden and does so: it defines exactly what is destroyed (only queued items behind the current one), guarantees playback continues uninterrupted, warns the operation is not undoable, and describes the resulting player state. This is precisely the destructive/reversibility context an agent needs.

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?

Four short sentences, each earning its place: scope, effect on current playback, reversibility warning, return state. The core action is front-loaded and there is no redundancy or filler.

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?

Although an output schema exists (and a return description is therefore optional), the description still tells the agent what the snapshot will look like. Combined with the destruction scope and irreversibility warning, nothing needed to call this tool safely is missing.

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% for the single 'instance' parameter, so the schema fully documents it. The description adds nothing about the instance parameter (or its default), so the baseline 3 applies rather than a higher score.

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: 'Empty all queues: clear the audio, video and picture playlists in one call.' It states scope (all three playlists at once) and implicitly distinguishes itself from sibling getplaylist, which it names. An agent can tell this apart from stop/skipnext without opening 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 Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives a clear precondition — 'Not undoable; inspect with getplaylist first if the content matters' — which routes to the alternative sibling and warns about irreversibility. It stops short of an explicit when-not-to-use statement (e.g. how it differs from stop), so it is 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.