Skip to main content
Glama
setlist-mcp

setlist-mcp

by chrischall

setlist_get_setlist

Read-onlyIdempotent

Retrieve a setlist.fm setlist by ID to view its full song list and event details, including encores, covers, guests, and performance notes.

Instructions

Get a setlist.fm setlist by its ID, including the full song list and event details. A setlist's songs live in sets.set[]; each set may have an encore number (1 = first encore) and a name (e.g. an acoustic set or a full album). Each song may carry: tape: true (pre-recorded intro/outro/interlude — not actually performed), cover (the original artist when it is a cover), with (a guest performer), and info (a note like "acoustic" or "first time live"). Results include a setlist.fm url; when you present this data, cite it as a clickable source link to setlist.fm (their API terms require followable attribution — no nofollow). If a result has no url, link to https://www.setlist.fm instead.

Input Schema

NameRequiredDescriptionDefault
viewNoResponse shape: "compact" (default) drops fields the response already carries elsewhere; "full" returns every field this server understands. compact strips image/avatar URLs from the response; "full" returns Setlist.fm's payload untouched. No field projection: this server has no verified record of which Setlist.fm fields matter, and inventing one would risk dropping a field a caller needs.
setlistIdYesSetlist ID (e.g. 63de4613)

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv1.0.0
    • changedInput schema / $schema
      Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
  2. Changed1 schema field changedv0.11.1
    • addedInput schema / properties / view
      Added value: +{
      +  "description": "Response shape: \"compact\" (default) drops fields the response already carries elsewhere; \"full\" returns every field this server understands. compact strips image/avatar URLs from the response; \"full\" returns Setlist.fm's payload untouched. No field projection: this server has no verified record of which Setlist.fm fields matter, and inventing one would risk dropping a field a caller needs.",
      +  "enum": [
      +    "compact",
      +    "full"
      +  ],
      +  "type": "string"
      +}
  3. First observedv0.4.0

TDQS

A4.1/5.0
Behavior5/5

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

With annotations covering the safety profile, the description still adds a great deal: it explains the sets/songs data model (encore numbering, set names, tape/cover/with/info semantics) so the agent can interpret results, and it states a hard external constraint — setlist.fm's attribution/url linking requirement — that appears nowhere in structured fields.

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?

The purpose is front-loaded in the first clause, and the remaining sentences each carry distinct information (data model, field flags, attribution requirement). It is dense but only mildly over-extended by the enumerated song flags, which read more like reference documentation than call-time guidance.

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 does real work explaining the response shape (sets.set[], encore, per-song fields, url). It stops short of enumerating top-level setlist fields, but combined with the annotations and complete schema coverage, an agent has enough to call and use the tool correctly.

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% and the view enum is fully documented in the schema, so the description correctly does not restate it. The description adds no syntax or format detail beyond what the schema already provides, so the 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?

States a specific verb and resource — 'Get a setlist.fm setlist by its ID' — and immediately scopes the return to 'the full song list and event details.' The 'by its ID' phrasing cleanly separates it from setlist_search_setlists and setlist_get_setlist_version.

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?

There is an implicit precondition (you must already have a setlist ID), but no explicit when-to-use guidance and no named alternative such as setlist_search_setlists or setlist_get_setlist_version. Usage is inferred rather than stated.

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