Skip to main content
Glama
Spotify & TMDB Web MCP Server

Spotify & TMDB Web MCP Server

get_recommendations

Read-onlyIdempotent

Get track recommendations from seed tracks, artists, or genres, with optional energy and valence targets to shape the vibe. Returns songs by seed collaborators plus genre picks.

Instructions

Get track recommendations from seed tracks, artists and genres (songs by the seeds' collaborators plus genre picks).

Args: limit: Number of recommendations to return (default: 10, max: 100). seed_tracks: List of Spotify track IDs or URIs. seed_artists: List of Spotify artist IDs or URIs. seed_genres: List of genres (e.g., 'synthwave', 'indie pop'). target_energy: Optional intensity 0.0-1.0. If no seed genres are given, adds the genres whose estimated vibe is closest (Spotify no longer provides per-track audio features). target_valence: Optional positivity 0.0-1.0, used the same way. target_danceability: Ignored. Spotify no longer provides audio features for Development Mode apps. target_acousticness: Ignored (see target_danceability). target_instrumentalness: Ignored (see target_danceability). target_tempo: Ignored (see target_danceability).

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_recommendations"
  }
}

Input Schema

NameRequiredDescriptionDefault
limitNo
seed_genresNo
seed_tracksNo
seed_artistsNo
target_tempoNo
target_energyNo
target_valenceNo
target_acousticnessNo
target_danceabilityNo
target_instrumentalnessNo

Output Schema

NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, non-destructive and open-world, so the safety profile is covered. The description adds substantive behavior beyond that: five target_* parameters are silently ignored because Spotify no longer serves audio features to Development Mode apps, and target_energy/target_valence degrade into genre selection rather than feature filtering. That prevents a whole class of wasted or misread calls.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose sentence first, then a scannable args block, which is the right order for an agent. The repeated 'Ignored (see target_danceability)' lines are slightly redundant but cheap and keep each parameter self-describing. Nothing is padded or off-topic.

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 10 parameters, 0% schema coverage and an output schema already present, the description covers what an agent needs to call correctly, including the deprecated-feature trap. It omits the seed-count limits (e.g. how many seeds are allowed) and the requirement of at least one seed, which are the remaining call-shaping facts.

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

Parameters5/5

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

Schema description coverage is 0%, so the description carries the full burden and does so: it gives defaults and max for limit, ID/URI formats for seed_tracks and seed_artists, example genre strings, 0.0-1.0 ranges for the targets, and explicitly marks five parameters as ignored. Every one of the ten parameters is given meaning that the bare JSON schema lacks.

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 opens with a precise verb+resource ('Get track recommendations') and names the seed types. The parenthetical explains the actual mechanism (collaborator songs plus genre picks), which is genuinely differentiating. It doesn't explicitly contrast with siblings like search_spotify or get_audio_features, so it stops short of a 5.

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 implied through the seed parameters and the note that target_energy/valence only act as genre proxies when no seed genres are supplied. However, it never states that at least one seed is required, nor when an agent should call this instead of search_spotify or get_audio_features. The alternative-selection guidance an agent needs is absent.

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