SetlistMCP
Resolves artist names through the MusicBrainz API, enabling tolerant search that handles misspellings and ambiguous artist names.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@SetlistMCPI saw Radiohead in Oslo in 2008 — what did they play?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
setlist-mcp
An MCP server that lets Claude find setlist.fm setlists for gigs you've been to.
Ask "I saw The Cure in Wellington in August 1992 — what did they play?" and Claude resolves the artist, searches setlist.fm, and reads back the songs in order.
Features
find_setlists— search by artist, city and date. Returns a compact list of matching gigs with their setlist IDs, venues and song counts.get_setlist— fetch one setlist in full: every song in order, grouped into sets and encores, with cover and guest-appearance notes.Forgiving about dates. Searching covers the year around the date you give and ranks results by how close they are, so a misremembered day still finds the gig.
Forgiving about artist names. Names resolve through MusicBrainz, so minor misspellings usually still work. Ambiguous names come back with alternatives.
Careful with rate limits. Requests are serialised and spaced out, 429s are retried with backoff, and responses are cached. Searches take a few seconds by design.
Related MCP server: Last.fm MCP Server
Installation
git clone git@github.com:adrianparker/setlist-mcp.git
cd setlist-mcp
npm install
cp .env.example .envThen edit .env and set SETLISTFM_API_KEY. Request a key at
setlist.fm's API settings — it's free, and
requires a setlist.fm account.
Setting MUSICBRAINZ_CONTACT to your email address is good manners: MusicBrainz
asks that clients identify a contact in their User-Agent, and throttles
anonymous-looking clients harder.
Registering with Claude Code
claude mcp add setlist-mcp --scope user -- node /full/path/to/setlist-mcp/src/index.jsOr add it to a project's .mcp.json:
{
"mcpServers": {
"setlist-mcp": {
"command": "node",
"args": ["/full/path/to/setlist-mcp/src/index.js"]
}
}
}No secrets go in the client config — the server reads .env from its own directory,
so it works whatever directory the client launches it from.
Restart Claude Code, then check it connected with /mcp.
Usage
Once registered, just ask in plain English:
I saw Villainy in Tauranga in March 2026, what was the setlist?
Claude will call find_setlists, pick the matching gig, then call get_setlist.
To check the server directly without a client:
npx @modelcontextprotocol/inspector node src/index.jsConfiguration
Variable | Default | Purpose |
| — | Required. Your setlist.fm API key. |
| repo URL | Contact detail sent to MusicBrainz in the User-Agent. |
|
| Which |
|
| Minimum gap between setlist.fm requests. |
|
| Per-process request budget for setlist.fm. |
|
| Minimum gap between MusicBrainz requests. |
|
| Per-request timeout. |
Rate limiting
setlist.fm doesn't publish its rate limits. Community reports put the standard tier
at roughly 2 requests per second and 1440 per day, so the defaults here — one request
every 1.1 seconds — sit comfortably inside the slower end of that. Requests are
serialised through a queue, so concurrent tool calls wait their turn rather than
bursting. A 429 backs off the whole queue, honouring Retry-After when the server
sends one.
The daily limit is not a real daily quota. It's held in memory, so it resets whenever the MCP client restarts the server. Treat it as a circuit breaker against a runaway loop, not as compliance. The minimum interval is what actually protects your key: at 1.1s per request, reaching 1440 requests would take 26 minutes of continuous querying.
Responses are cached in memory — artists for 24 hours, searches for 1 hour, setlist detail for 6 hours — so repeated questions about the same gig cost nothing.
Development
Run tests
npm test
npm run test:watchNo test touches the real APIs: test/setup.js installs a global.fetch that throws,
and tests stub it explicitly.
Coverage
npm run coverageLint
npm run lintA note on setlist.fm
The setlist.fm API is free for non-commercial use only — see their API terms. Both tools return the setlist.fm URL for every result so it can be linked back to.
Setlist data is contributed by setlist.fm's users. Gigs may be missing, incomplete, or have the wrong date.
License
MIT
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseAqualityDmaintenanceEnables users to search for events, performers, and venues through the SeatGeek API. Provides event recommendations, detailed venue seating information, and performer discovery capabilities for ticketed entertainment events.43MIT
- FlicenseBqualityDmaintenanceEnables interaction with Last.fm music data including searching for artists, albums, and tracks, accessing user listening history, and managing music preferences. Supports both read-only operations and authenticated write operations like scrobbling and loving tracks.345
- FlicenseNot gradedqualityDmaintenanceEnables interaction with Spotify's music catalog through natural language conversations. Search for tracks and artists, get recommendations, explore playlists, and browse artist discographies using the Spotify Web API.
- AlicenseAqualityDmaintenanceEnables AI assistants to query the MusicBrainz music database for artists, albums, recordings, and labels. It provides tools for advanced searches, detailed metadata retrieval, and accessing cover art information.1710GPL 3.0
Related MCP Connectors
setlist.fm: concert setlists by artist/venue/date. Free key required.
Live-concert discovery: 44,000+ upcoming concerts worldwide by city, artist, genre or festival.
Search MusicBrainz artists, releases, works, labels; resolve ISRC/ISWC/barcode; fetch cover art.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- 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/adrianparker/SetlistMCP'
If you have feedback or need assistance with the MCP directory API, please join our Discord server