Skip to main content
Glama
jamiew

Spotify MCP Server

by jamiew

Recently Played

get_recently_played
Read-onlyIdempotent

Retrieve your recently played tracks in reverse chronological order, with timestamps, by specifying the number of tracks to return.

Instructions

Get recently played tracks, most recent first.

Args:
    limit: Max tracks to return (1-50, default 20)

Returns:
    RecentlyPlayed with each track's played_at timestamp

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
limitNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
itemsYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.6.1

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, openWorldHint, and idempotentHint, covering the safety profile. The description adds useful behavior: it states the ordering (most recent first) and the presence of a 'played_at' timestamp in the return, which are not implied by annotations. It does not contradict annotations.

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 concise, with the core purpose front-loaded in the first sentence. The Args and Returns sections are clearly structured, though there is minor redundancy (e.g., repeating 'limit' meaning). Overall, it is efficient and easy to parse.

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 simple read-only tool with one parameter and an output schema, the description covers everything needed: purpose, ordering, parameter constraints, and return format. No critical information is missing, and the annotations provide the safety context. It is complete for correct invocation.

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 0%, so the description must fully document the parameter. It explains 'limit' with a max range (1-50) and a default (20), which exceeds the schema's default. This is complete and precise, giving the agent all necessary semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Get' and the resource 'recently played tracks' with ordering 'most recent first'. This is specific and distinguishes it from sibling tools like get_top_items or get_playback_state by resource, though it does not explicitly name alternatives. It is clear enough for an agent to select correctly.

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?

The description implies the tool is used when recently played tracks are needed, but provides no explicit guidance on when to use it versus siblings like get_playback_state or get_queue. There are no exclusion criteria or alternative references, so the usage context is only implied.

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