Skip to main content
Glama
Spotify Data MCP Server

Spotify Data MCP Server

Get tracks

get_tracks
Read-onlyIdempotent

Retrieve details for up to 50 Spotify tracks in one call, including artists, album, duration, ISRC, play counts, and optional genres, moods, BPM, credits, and lyrics flags.

Instructions

Track details for up to 50 tracks in one call: name, artists, album, release date, duration, explicit flag, popularity, ISRC and (by default) lifetime play count. include_insights adds genres, moods, activities, BPM, credits, lyrics flag and languages. A play count of 0 means fewer than 1,000 plays.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "tracks": "<tracks>"
    },
    "name": "get_tracks"
  }
}

Input Schema

NameRequiredDescriptionDefault
tracksYesSpotify track ids, spotify:track:<id> URIs or open.spotify.com/track/<id> URLs (1-50).
include_insightsNoAdd genres, moods, BPM, credits and languages (slower).
include_play_countsNoAdd each track's lifetime play count.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.1

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare read-only, idempotent, non-destructive, open-world access, so the safety profile is covered. The description adds genuinely non-obvious semantics beyond that: which fields come back by default, that play counts are included unless disabled, and critically that 'a play count of 0 means fewer than 1,000 plays' – a threshold rule that would otherwise cause misreading of returned data.

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?

Three tight sentences: what it returns, what the opt-in flag adds, and a caveat about interpreting zero. The most decision-relevant information (batch size and field inventory) is front-loaded and no sentence is redundant.

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?

With no output schema, the description must convey return shape, and it does so by enumerating the fields returned and the extra insight fields. The zero-play-count interpretation is a helpful addition. Minor gaps remain: no mention of behavior for invalid or unknown track IDs, and no note on whether non-existent tracks are silently dropped from the result.

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 coverage is 100%, so all three parameters are already documented, making 3 the baseline. The description adds a little beyond the schema – it lists 'activities' and 'lyrics flag' among the insight fields, which the schema's include_insights text does not enumerate, and confirms play counts are on by default – but it says nothing extra about the tracks parameter's accepted ID/URI/URL formats.

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?

States a specific verb and resource ('Track details') plus an explicit batch scope ('up to 50 tracks in one call') and enumerates the returned fields, which separates it from the singular siblings like get_track_play_count and get_track_insights. It stops short of naming those siblings directly, so the differentiation is inferable rather than stated.

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?

'in one call' and the default-on play count implicitly steer the agent toward this tool instead of making separate get_track_play_count / get_track_insights calls, and 'include_insights adds ...' signals the opt-in path. However there is no explicit when-to-use or when-not-to-use statement naming an alternative, so guidance is implied rather than stated.

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