Skip to main content
Glama
Spotify Data MCP Server

Spotify Data MCP Server

Spotify charts

get_chart
Read-onlyIdempotent

Fetch Spotify charts by country for top tracks, viral tracks, top artists, or top albums, with rank, movement, streams, and optional date or latest daily/weekly data.

Instructions

Spotify Charts by country: top_tracks (Top 200), viral_tracks (Viral 50, daily only), top_artists or top_albums. Each entry has rank, previous and peak rank, days (or weeks) on the chart, movement and, for top_tracks, the streams in that period. Defaults to the latest published daily chart.

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": "get_chart"
  }
}

Input Schema

NameRequiredDescriptionDefault
dateNoChart date YYYY-MM-DD; omit for the latest published chart.
chartNoWhich chart.top_tracks
limitNoEntries to return (1-200).
periodNoDaily or weekly chart (viral_tracks is daily only).daily
countryNo'global' or a 2-letter country code, e.g. 'us', 'br', 'mx'.global
include_play_countsNotop_tracks / viral_tracks: add each track's lifetime play count (slower).

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.1

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, non-destructive, open-world, so the safety profile is covered. The description adds real behavioral context beyond them: the default behavior when no date is supplied, the fact that viral_tracks is daily-only, and exactly what each returned entry contains — valuable given there is no output schema. It stops short of noting rate limits, country coverage gaps, or what happens for an unpublished date.

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, front-loaded with the resource and chart variants, then the entry payload. Every clause carries information — chart names, sizes, the daily-only caveat, and the default — with no filler or redundancy.

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 six optional parameters, no output schema, and no required arguments, the description does the necessary work by describing return fields and the default invocation path. A reader could call it correctly. Minor gaps remain around country code validation, behavior for dates with no published chart, and the slower nature of include_play_counts (only noted in the schema).

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3, but the description adds meaning the schema does not: 'Top 200' and 'Viral 50' convey the effective size ceiling per chart, and 'days (or weeks) on the chart' clarifies how the period parameter changes the returned units. That is genuine semantic enrichment rather than restatement.

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 names a specific resource (Spotify Charts by country) and enumerates the exact chart variants available (top_tracks, viral_tracks, top_artists, top_albums) with their sizes. It also previews the entry shape (rank, previous/peak rank, days/weeks, movement, streams), which lets an agent distinguish this chart-data tool from siblings like get_tracks or get_artists_stats without opening a schema.

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?

Usage is only implied: 'Defaults to the latest published daily chart' hints at the no-argument case, and 'viral_tracks (Viral 50, daily only)' signals a constraint. There is no explicit statement of when to pick this tool over get_artists_stats or get_track_insights, nor any exclusion guidance.

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