Skip to main content
Glama
lastfm-taste-mcp

lastfm-taste-mcp

by nurasik14

user_get_top_tracks

Read-only

Retrieve a Last.fm user's most played tracks for a chosen time window, with play counts, to analyze personal listening favorites or compare periods.

Instructions

The user's most played tracks in a time window (their personal favourites), with play counts. Not the same as artist_get_top_tracks (an artist's popular songs) or tag_get_top_tracks (songs with a tag).

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "user_get_top_tracks"
  }
}

Input Schema

NameRequiredDescriptionDefault
pageNoResult page, for going past the first `limit` items
userNoLast.fm username. Leave empty for the configured user (LASTFM_USERNAME).
limitNoHow many results to return
periodNoTime window: 7day, 1month, 3month, 6month, 12month or overall7day

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4/5.0
Behavior3/5

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

readOnlyHint=true already declares the safety profile, so the description's job is to add context, and it does add the useful detail that results carry play counts and are ranked by listens. It says nothing about how an omitted user resolves to the configured account, how paging interacts with ordering, or result caps beyond limit's schema maximum.

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, zero filler: the affirmative definition comes first, then the disambiguation. The parenthetical "(their personal favourites)" and the explicit sibling names each carry distinct information rather than restating the title.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only, zero-required-parameter query tool with a fully documented schema and no output schema, the description covers what the tool returns at a high level (ranked tracks with play counts) and how it differs from lookalikes. A note on paging past the first page or on how far back 'overall' reaches would be the only meaningful additions.

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%, with each parameter documented including the period enum's six values and the LASTFM_USERNAME fallback, so the schema already carries parameter meaning. The description only echoes the time-window concept via "in a time window" without adding format or defaults beyond that; baseline 3 applies.

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 user's most played tracks in a time window" gives a specific verb-resource pair scoped to the user, and the parenthetical clarifies the notion of 'top' as personal play-count ranking. It explicitly names the two nearest siblings (artist_get_top_tracks, tag_get_top_tracks) and states how their subject differs, so an agent can route without opening schemas.

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 negation sentence functions as explicit usage guidance: use this for a listener's own favourites, not for an artist's popular songs or a tag's chart. What's missing is anything about choosing between this and other user_* tools (recent vs. top vs. weekly chart), which the description leaves to inference from the tool name.

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