Skip to main content
Glama

artist_affinity

Calculates how deeply an artist features in a user's listening history by combining lifetime stream share with recency-weighted half-life. Returns intensity and recency metrics for public profiles without authentication.

Instructions

How deep does an artist run? Lifetime intensity (share of top-artist streams) plus a recency half-life fitted to recent stream ages. Read-only, no auth. (Legacy alias of statsfm_artist_affinity — prefer the canonical name.)

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
artistYesArtist name (substring match) or stats.fm artist ID
statsfm_userYesstats.fm user ID (or username) — public profile, no auth needed
response_formatNo'concise' = human prose, 'detailed' = more fields in prose, 'json' = raw API objectconcise

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv1.29.0

TDQS

A4/5.0
Behavior4/5

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

With no annotations provided, the description carries the full behavioral disclosure burden. It clearly states the tool is read-only and requires no authentication, and it reveals the underlying methodology: lifetime intensity plus a recency half-life fitted to stream ages. This goes beyond a simple action statement and gives the agent meaningful insight into how the metric is computed.

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?

The description is compact and front-loaded: a hook question, a precise explanation of the algorithm, a safety declaration, and a legacy-alias note all in two sentences. Every sentence contributes useful information without unnecessary prose.

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 simple read-only tool with three parameters and no output schema, the description covers the key operational facts: what the metric means, that it is read-only/no-auth, and that a canonical alternative exists. The response_format parameter in the schema clarifies output modes, so the lack of an explicit return shape in the description is a minor gap rather than a blocking one.

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 input schema already documents all three parameters, including the substring-match behavior for artist and the public-profile note for statsfm_user. The description adds no additional parameter-specific meaning beyond what the schema provides. Baseline 3 is appropriate.

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 identifies the tool's function: computing artist affinity from lifetime stream intensity plus a recency half-life. Though it lacks a conventional imperative verb like 'calculate,' the resource and the calculation approach are explicit. Mentioning the canonical alias also helps distinguish it from the related statsfm_artist_affinity sibling.

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 description explicitly notes 'Read-only, no auth,' which tells the agent this is a safe, publicly accessible operation. It also provides clear routing guidance by labeling the tool as a legacy alias and directing the agent to prefer the canonical statsfm_artist_affinity. It does not compare against broader analytics siblings, but the alias guidance is a strong usage signal.

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