setlist-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| SETLIST_API_KEY | Yes | Your setlist.fm API key (get one at https://www.setlist.fm/settings/api) | |
| SETLIST_ACCEPT_LANGUAGE | No | Optional language for localizing city/country names (en, es, fr, de, pt, tr, it, pl) |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| setlist_search_artistsA | Search setlist.fm for artists by name or MusicBrainz ID. Returns matching artists with their MusicBrainz ID (mbid) — use that mbid with setlist_get_artist or setlist_get_artist_setlists. Results include a setlist.fm |
| setlist_get_artistA | Get a setlist.fm artist by their MusicBrainz ID (mbid). Results include a setlist.fm |
| setlist_get_artist_setlistsA | Get an artist's setlists (most recent first) by their MusicBrainz ID (mbid). Paginated via |
| setlist_search_setlistsA | Search setlist.fm for concert setlists. Filter by any combination of artist, venue, city, country, tour, date, or year (provide at least one). Combine filters to disambiguate — artistName + date can span multiple cities, so add cityName/cityId or venueName/venueId to pin the exact show. Omit the artist and pass venueName/venueId + date to list EVERY performer at a venue or festival that day. Every result includes songCount, setCount, and hasSongs, so you can skip empty 'stub' setlists (hasSongs: false) without a second fetch. Results include a setlist.fm |
| setlist_get_setlistA | Get a setlist.fm setlist by its ID, including the full song list and event details. A setlist's songs live in |
| setlist_get_setlist_versionA | Get a specific historical version of a setlist by its version ID. Setlists are wiki-edited; each edit has a version ID returned in a setlist's |
| setlist_search_venuesA | Search setlist.fm for venues by name and/or location. Returns matching venues with their venue ID — use it with setlist_get_venue or setlist_get_venue_setlists. Results include a setlist.fm |
| setlist_get_venueA | Get a setlist.fm venue by its ID. Results include a setlist.fm |
| setlist_get_venue_setlistsA | Get setlists performed at a venue, by venue ID (most recent first). Paginated via |
| setlist_search_citiesA | Search setlist.fm for cities by name and/or location. Returns cities with their geoId — use it as cityId in setlist_search_setlists / setlist_search_venues, or with setlist_get_city. Results include a setlist.fm |
| setlist_get_cityA | Get a city by its geoId. Results include a setlist.fm |
| setlist_search_countriesA | List all countries supported by setlist.fm, with their ISO country codes. Use a code as countryCode in setlist_search_setlists. Results include a setlist.fm |
| setlist_get_userA | Get a setlist.fm user's public profile by their userId (their setlist.fm username). Results include a setlist.fm |
| setlist_get_user_attendedA | Get the concerts a setlist.fm user has marked as attended. Paginated via |
| setlist_get_user_editedA | Get the setlists a setlist.fm user has created or edited. Paginated via |
| setlist_resolve_concertsA | Resolve many concerts to their setlists in ONE call (instead of 2+ per show). Given up to 24 |
| setlist_mark_attendedA | Record on YOUR setlist.fm account that you attended a show — the site's "I was there" marker — by setlist ID. Authenticated via your session (needs SETLIST_SESSION_COOKIE). Idempotent: a no-op if already marked. Without confirm: true it returns a dry-run preview and makes NO change; with confirm: true it toggles attendance and verifies by re-reading your attended list. Results include a setlist.fm |
| setlist_unmark_attendedA | Remove a show from YOUR attended list on setlist.fm, by setlist ID (reverses setlist_mark_attended). Authenticated via your session. Idempotent: a no-op if not currently attended. Without confirm: true it returns a dry-run preview and makes NO change; with confirm: true it removes the attendance and verifies by re-reading. Results include a setlist.fm |
| setlist_id_from_urlA | Parse the setlist ID out of a setlist.fm setlist URL so you can paste a link instead of hunting for the ID. Returns {setlistId} (the trailing hex token before .html), ready to feed into setlist_get_setlist / setlist_mark_attended. Scoped to /setlist/ pages — artist (/setlists/) and venue (/venue/) URLs are rejected. Tolerates http/https, with/without www, trailing slash, query/fragment, and a missing .html. Pure local parsing — no network call. Errors if no ID can be parsed. |
| setlist_healthcheckA | Confirm the API key is configured and works by calling the setlist.fm countries endpoint. Reports {ok, authenticated, country_count} with a plain-English hint distinguishing "no key" vs "bad key" vs "API error". Read-only. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/chrischall/setlist-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server