Skip to main content
Glama

year_in_review

Generate a markdown year-in-review from Spotify data: top tracks and artists across time ranges, decade mix, library growth, and discovery ratio.

Instructions

Spotify-Wrapped substitute: top tracks/artists across all top-list time ranges, decade mix, library growth and discovery ratio, rendered as a markdown review. Local compute. Quota: ~9 reads (3 top ranges × 2 lists + library + history).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
yearNoYear to review (used for library-growth histogram framing). Default: current year.
max_resultsNoMax items to return (default: SPOTIFY_MCP_MAX_ITEMS env or 50)
output_formatNoRender as markdown review or raw jsonmarkdown
response_formatNo'concise' = human prose, 'detailed' = more fields in prose, 'json' = raw API objectconcise
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 of behavioral disclosure, and it does well: 'Local compute' reveals the execution/privacy trait, and 'Quota: ~9 reads (3 top ranges × 2 lists + library + history)' is an unusually precise cost disclosure that strongly implies a read-only operation. It does not cover edge cases like empty years or missing history data, but the operational traits that matter most — cost and compute locality — are clearly disclosed.

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?

Two sentences with zero waste. The 'Spotify-Wrapped' hook is front-loaded in the first clause, and the second sentence packs local compute and the quota into a compact, parseable breakdown ('3 top ranges × 2 lists + library + history'). Every clause earns its place.

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 complex aggregator with no annotations and no output schema, the description adequately covers scope, cost, and output format. Gaps remain: the unresolved output_format/response_format 'json' overlap, how max_results interacts with the fixed ~9-read quota, and no signal about behavior for years with no history data. An agent can call the tool correctly in the common case, but not with full confidence about edge behavior.

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%, so the baseline is 3; the tool description itself adds no per-parameter detail beyond the schema. Notably, it fails to disambiguate the interaction between output_format and response_format, which both accept a 'json' value — an agent cannot tell which takes precedence or whether they are aliases. The description leaves this ambiguity unresolved, so it neither adds value nor actively misleads.

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 opens with 'Spotify-Wrapped substitute,' a strong semantic anchor, then enumerates the concrete resources (top tracks/artists across all top-list time ranges, decade mix, library growth, discovery ratio) and the output form ('rendered as a markdown review'). This compound scope clearly distinguishes the tool from narrower siblings like get_top_tracks, top_artists_by_range, or discovery_ratio.

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 'Spotify-Wrapped substitute' framing and the quota disclosure (~9 reads) implicitly tell an agent this is a heavy, comprehensive annual report, implying it is for full-scope end-of-year reviews rather than single-metric lookups. However, it never names alternatives or states when NOT to use it, despite many overlapping siblings (listening_report, taste_shift_report, library_growth_report, discovery_ratio) that an agent could confuse it with. The guidance is implied, not explicit.

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