Look up concert setlists and live-music history via setlist.fm. Use when the user asks what songs an artist played at a show, their tour setlists, what was performed at a venue or on a date, or wants to find concerts by artist, venue, city, or year. Triggers on phrases like "what did Radiohead play at...", "Phish setlist for...", "shows at Red Rocks", "what songs were played on this tour", or any request about concert setlists, gigs, tours, or live performances. Requires setlist-mcp installed and the setlist server registered (see Setup below).
数据分析
Tmp.6wLATFVyAx
试用通过自然语言 MCP 工具查询 setlist.fm 上的演出歌单、巡演记录与现场数据。
它能做什么
对 setlist.fm 只读 API 的 MCP 封装。通过 `setlist_` 前缀的工具,可按名称、MusicBrainz ID、日期或年份搜索艺人、场馆、城市、国家和歌单,再拉取单场演出的完整歌曲列表。批量工具一次最多解析 24 场演出,返回匹配的歌单、空壳记录以及同一巡演其他场次的参考歌单。每个结果都附带 setlist.fm 的可点击链接,且每次调用都会重新拉取数据——setlist.fm 的条款禁止持久化缓存。
什么时候用它
- 查某艺人在最近一场演出唱了什么歌
- 列出某场馆某一年的所有歌单
- 查询某一天某场演出的具体歌单
- 批量解析最多 24 场巡演日期对应的歌单
技能文档
setlist-mcp
MCP server for setlist.fm — search concert setlists, artists, venues, and tours via natural language. Read-only (setlist.fm has no write API).
Setup
Option A — npx (recommended)
Add to .mcp.json in your project or ~/.claude/mcp.json:
{
"mcpServers": {
"setlist": {
"command": "npx",
"args": ["-y", "setlist-mcp"],
"env": {
"SETLIST_API_KEY": "your-api-key-here"
}
}
}
}
Option B — from source
git clone https://github.com/chrischall/setlist-mcp
cd setlist-mcp
npm install && npm run build
Then add to .mcp.json:
{
"mcpServers": {
"setlist": {
"command": "node",
"args": ["/path/to/setlist-mcp/dist/index.js"],
"env": {
"SETLIST_API_KEY": "your-api-key-here"
}
}
}
}
Or use a .env file in the project directory with SETLIST_API_KEY=.
Getting your API key
Apply for a free API key (non-commercial use) at setlist.fm/settings/api — you'll need a setlist.fm account. The key is sent as the x-api-key header on every request.
Optional: set SETLIST_ACCEPT_LANGUAGE (one of en, es, fr, de, pt, tr, it, pl) to localize city/country names.
Tools
All tools are read-only and prefixed setlist_.
Artists
setlist_search_artists— find artists byartistNameorartistMbid; returns each artist's MusicBrainz ID (mbid).setlist_get_artist— get an artist bymbid.setlist_get_artist_setlists— an artist's setlists (most recent first), bymbid, paginated viap.
Setlists
setlist_search_setlists— search by any mix of artist, venue, city, country, tour,date(ISO yyyy-MM-dd), oryear.setlist_get_setlist— a setlist (with full song list) bysetlistId.setlist_get_setlist_version— a specific historical version byversionId.
Batch
setlist_resolve_concerts— resolve up to 24{artist, date, city?, venue?}to their best-match setlists in one call (withsongCount/hasSongs+ a{matched, stubs, tourReferenced, unmatched, pending}summary). When a show is an empty stub but the act toured a repeating set, the result also includes atourReference— a populated, representative setlist from the same tour on a nearby date (withsongs+ its ownurl), clearly labeled as a reference, not the exact show (passtourFallback: falseto skip). Calls are paced to setlist.fm's rate limit; if a batch can't finish in time the rest come backpending: true— re-call with just those. For more than 24 shows, chunk into batches of ≤24.
Venues
setlist_search_venues— find venues bynameand/or location.setlist_get_venue— get a venue byvenueId.setlist_get_venue_setlists— setlists performed at a venue, paginated viap.
Cities & countries
setlist_search_cities— find cities byname/location; returns each city'sgeoId.setlist_get_city— get a city bygeoId.setlist_search_countries— list all supported countries and their codes.
Users
setlist_get_user— a user's public profile byuserId.setlist_get_user_attended— concerts a user marked as attended.setlist_get_user_edited— setlists a user has created or edited.
Utility
setlist_healthcheck— verify the API key works and the API is reachable.
Typical flows
- "What did Radiohead play at their last show?" →
setlist_search_artists(Radiohead → mbid) →setlist_get_artist_setlists(latest) →setlist_get_setlistfor the song list. - "Setlists at Red Rocks in 2023" →
setlist_search_venues(Red Rocks → venueId) →setlist_search_setlistswithvenueId+year: 2023. - "Phish on 2023-08-07" →
setlist_search_setlistswithartistName: "Phish",date: "2023-08-07".
Attribution & API terms
setlist.fm's API terms bind anyone using this data. When you present setlist.fm results to a user:
- Always cite the source. Each setlist/artist/venue result includes a
url— show it as a real, clickable link to setlist.fm (e.g. "Source: The Beatles setlist on setlist.fm"). The terms require a followable link — never anofollow. If a particular result has nourl, link to https://www.setlist.fm instead. - Non-commercial use only. A free API key covers non-commercial use; commercial use needs setlist.fm's permission.
- Live data, not a datastore. The terms forbid persistent caching — this server fetches fresh on every call and you should treat results as point-in-time, not build a local copy.
- Don't expose or share the API key. It's read from
SETLIST_API_KEYand never appears in results.
Interpreting setlist data
- Songs live in
sets.set[]; each set may have anencorenumber (1 = first encore) and aname(e.g. an acoustic set or a full album). - Each
songmay carry:tape: true(a pre-recorded intro/outro — not actually performed live),cover(the original artist when it's a cover),with(a guest performer), andinfo(a note like "acoustic" or "first time live"). Surface these when relevant rather than dropping them.
Notes
- Stub setlists: every setlist result carries
songCount/setCount/hasSongs. A page can exist with no songs logged (hasSongs: false) — skip those without a secondget_setlistcall. - Disambiguate by location:
artistName+datecan return shows in multiple cities. AddcityName/cityIdorvenueName/venueIdto pin the right one (e.g. TSO on a date plays both Charlotte and Orlando). - All performers at a venue/festival on a day: call
setlist_search_setlistswithvenueName(orvenueId) +dateand no artist. - IDs chain:
search_*tools return thembid/setlistId/venueId/geoIdyou feed into theget_*tools. - All dates are ISO
yyyy-MM-dd— both thedate/lastUpdatedinputs and everyeventDatein the output. (The server translates to/from setlist.fm's nativedd-MM-yyyyinternally.) - Results are paginated; pass
p(1-based) to page through large result sets. - setlist.fm rate-limits the standard tier (~2 req/sec); a 429 is retried once.
常见问题
- 会写入 setlist.fm 吗?
- 不会。setlist.fm 没有写入 API,本服务暴露的所有工具都是只读的。
- 可以商用吗?
- 不可以。免费 API key 仅限非商业用途;商业用途需要按 setlist.fm 的 API 条款另行获得授权。
- 需要怎么配置?
- 通过 npx 或源码安装 setlist-mcp,在 `.mcp.json` 中注册 `setlist` 服务器,并提供环境变量 `SETLIST_API_KEY`(前往 setlist.fm/settings/api 申请免费 key)。
相关技能
Query and update setlist.fm from a shell without running the setlist-mcp server — search/read concert setlists, artists, venues, cities, and users via plain curl against the public REST API (an x-api-key header), and toggle "I was there" attendance on a setlist via the authenticated website, using an fpx-captured session cookie. Use when you want setlist.fm data or want to mark/unmark attendance without the MCP, in a script, or on a machine where the MCP isn't installed.
Search Etix events, venues, and performers and pull event/venue details via MCP. Triggers on phrases like "find events on etix", "etix tickets for", "what's playing at <venue> on etix", "etix event details for", "search etix for <artist>", or any request involving Etix events, venues, performers, or showtimes. Requires etix-mcp installed and the fetchproxy extension active with an open etix.com tab (see Setup below).
Search Etix events, venues, and performers and pull event/venue details via MCP. Triggers on phrases like "find events on etix", "etix tickets for", "what's...
Researches music, artists, playlists, and podcasts via the Crawlora API — Spotify tracks/albums/artists/playlists/profiles, Spotify Podcasts, Apple Podcasts, Discogs, and SoundCloud tracks/profiles/playlists — returning clean JSON. Use when the user wants a track/album/artist's details, a playlist or profile, podcast show/episode info and charts, a record's Discogs release/pressing data, or a SoundCloud track/user's stats.
Search and browse the MusicBrainz music encyclopedia (artists, releases, recordings, labels, works), fetch Cover Art Archive images, resolve musicbrainz.org URLs, and — with OAuth configured — submit your own tags, ratings, and collection edits. Use when the user asks about music metadata, discographies, album/artist/recording details, MBIDs, cover art, or wants to tag/rate music on MusicBrainz.