Skip to main content
Glama

get_now_playing

Retrieves the current playback state, including active item, progress, shuffle mode, device, and volume.

Instructions

Full device/session state for what is playing right now — item, progress, plus shuffle/repeat mode, active device, and volume. For a lightweight item+progress poll use get_currently_playing instead. Also covers: get_currently_playing lightweight poll — See also: get_currently_playing.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
marketNoISO 3166-1 alpha-2 country code — localises item names; lowercase input is uppercased; defaults to the account market
response_formatNo'concise' = human prose, 'detailed' = more fields in prose, 'json' = raw API objectconcise
additional_typesNoItem types to include in the response. Default: ['track', 'episode']

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changedv1.26.1
    • addedInput schema / properties / additional_types
      Added value: +{
      +  "default": [
      +    "track",
      +    "episode"
      +  ],
      +  "description": "Item types to include in the response. Default: ['track', 'episode']",
      +  "items": {
      +    "enum": [
      +      "track",
      +      "episode"
      +    ],
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • addedInput schema / properties / market
      Added value: +{
      +  "description": "ISO 3166-1 alpha-2 country code — localises item names; lowercase input is uppercased; defaults to the account market",
      +  "pattern": "^[A-Za-z]{2}$",
      +  "type": "string"
      +}
    • addedInput schema / properties / response_format
      Added value: +{
      +  "default": "concise",
      +  "description": "'concise' = human prose, 'detailed' = more fields in prose, 'json' = raw API object",
      +  "enum": [
      +    "concise",
      +    "detailed",
      +    "json"
      +  ],
      +  "type": "string"
      +}
  2. First observedv1.0.1

TDQS

A3.9/5.0
Behavior3/5

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

With no annotations, the description carries the behavioral burden; it clearly frames the operation as reading current session state and lists included fields. However, it does not disclose behavior when nothing is playing, whether playback must be active, or error/empty-response behavior, which matter for a state-polling tool.

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

Conciseness3/5

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

The first two sentences are tight and front-load the core purpose and sibling comparison. The trailing sentence ('Also covers: get_currently_playing lightweight poll — See also: get_currently_playing') is redundant and garbled, repeating an already stated point and reducing clarity.

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 simple read-state tool, the description supplies purpose, key returned fields, and the alternative, while the schema covers parameters. But without an output schema or annotations, it omits important call-time expectations such as what happens when no device is active or no track is playing.

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?

The schema already documents all three parameters with 100% coverage, including formats, defaults, and enums, so the description need not repeat them. The description adds no parameter-level detail beyond the schema, which is acceptable but provides no extra value.

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 names a specific resource ('full device/session state for what is playing right now') and enumerates its payload: item, progress, shuffle/repeat, active device, and volume. It also explicitly contrasts the scope with get_currently_playing, so an agent can tell it apart from the closest sibling 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 Guidelines5/5

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

It gives an explicit routing rule: 'For a lightweight item+progress poll use get_currently_playing instead.' This states both when to use this tool (full state needed) and when not to (lightweight poll), naming the alternative directly.

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