About setlist-mcp
setlist-mcp gives Claude access to setlist.fm concert information, including setlists, artists, venues, tours, and cities. It is mostly read-only, with authenticated tools to mark attendance.
Key features
- 01Search and retrieve concert setlists
- 02Look up artists and their setlists
- 03Search venues and venue setlists
- 04Find cities and countries
- 05Mark or unmark concert attendance
Use cases
- 01Explore an artist's concert history
- 02Look up songs played at a concert
- 03Find setlists at a venue or in a city
- 04Record attendance for a concert
MCP support
It exposes setlist.fm data and attendance actions as tools for MCP clients. Read operations use the setlist.fm REST API; attendance changes require an authenticated session cookie.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
npx -y setlist-mcpSETLIST_API_KEYSecretYour setlist.fm API key (apply at setlist.fm/settings/api). Required for the data (read) tools; the attendance tools and setlist_id_from_url work without it.SETLIST_ACCEPT_LANGUAGEOptional language for city/country names (en, es, fr, de, pt, tr, it, pl)SETLIST_SESSION_COOKIESecretOptional. Logged-in www.setlist.fm Cookie header — enables the attendance write tools.SETLIST_DISABLE_FETCHPROXYSet to 1 to turn the browser (fetchproxy) fallback off for the attendance tools (1/true/yes/on).FETCHPROXY_WS_PORTLocalhost port of the fetchproxy concentrator the ContextMint Bridge extension connects to (default 37149). Every MCP on one machine shares it, so move it for all of them or not at all.FETCHPROXY_WS_HOSTBind interface for the fetchproxy concentrator, a literal IP only (default 127.0.0.1). Keep on loopback; it exists for hosted deployments that run each MCP in its own network namespace.FETCHPROXY_IDENTITY_DIRAbsolute path where the fetchproxy long-term identity keypair is stored (default ~/.fetchproxy/identity/).Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.
Tools
20Saved tool list · updated 2w ago
| Parameter | Type | Required | Description |
|---|---|---|---|
| p | integer | No | Result page number (defaults to 1) |
| sort | enum | No | Sort order (sortName = default, or relevance)sortName | relevance |
| view | enum | No | 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.compact | full |
| artistMbid | string | No | Artist's MusicBrainz ID (mbid) |
| artistName | string | No | Artist name to search for |
Details
From the project READMEsetlist-mcp
MCP server for setlist.fm — search concert setlists, artists, venues, tours, and cities from Claude via natural language. Mostly read-only (the setlist.fm REST API exposes no write endpoints), plus authenticated "I was there" attendance actions via your logged-in session.
This project was developed and is maintained by AI (Claude). Use at your own discretion.
What it does
Exposes 20 tools — 18 read-only over the setlist.fm REST API, plus 2 authenticated "I was there" attendance actions:
| Area | Tools |
|---|---|
| Artists | setlist_search_artists, setlist_get_artist, setlist_get_artist_setlists |
| Setlists | setlist_search_setlists, setlist_get_setlist, setlist_get_setlist_version |
| Venues | setlist_search_venues, setlist_get_venue, setlist_get_venue_setlists |
| Cities & countries | setlist_search_cities, setlist_get_city, setlist_search_countries |
| Users | setlist_get_user, setlist_get_user_attended, setlist_get_user_edited |
| Resolve | setlist_resolve_concerts |
| Attendance (authenticated writes) | setlist_mark_attended, setlist_unmark_attended |
| Utility | setlist_healthcheck, setlist_id_from_url |
Setup
Get a free API key (non-commercial use) at setlist.fm/settings/api, then add the server to your .mcp.json:
{
"mcpServers": {
"setlist": {
"command": "npx",
"args": ["-y", "setlist-mcp"],
"env": {
"SETLIST_API_KEY": "your-api-key-here"
}
}
}
}
Optional: SETLIST_ACCEPT_LANGUAGE (one of en, es, fr, de, pt, tr, it, pl) localizes city/country names.
The attendance tools (setlist_mark_attended / setlist_unmark_attended) need your logged-in www.setlist.fm session. Either set SETLIST_SESSION_COOKIE to the Cookie header of a logged-in request, or install ContextMint Bridge (Chrome: load the chrome zip unpacked; Safari isn't available yet — it will ship inside the ContextMint app, which has no public download — so use Chrome for now) and stay signed in to www.setlist.fm — the server lifts the session cookie from your browser on first use. Set SETLIST_DISABLE_FETCHPROXY=1 to turn the browser fallback off.
ContextMint Bridge is the fetchproxy browser extension under its new name, from the same maintainer — fetchproxy's own README points to it. Its source is public at nullnet-app/contextmint-bridge: build it yourself, or check a release zip against the .sha256 file published beside it (shasum -a 256 -c contextmint-bridge-chrome-<version>.zip.sha256).
See skills/setlist/SKILL.md for from-source setup, the full tool reference, and example flows.
Attribution & terms
Use is governed by the setlist.fm API terms. In short:
- Attribute setlist.fm. Every result carries a
url; surface it as a followable source link (nonofollow) wherever the data is shown. The tool descriptions instruct the model to do this, and results pass theurlthrough verbatim. - Non-commercial only under a free key — commercial use requires setlist.fm's permission.
- No persistent caching — this server makes a live API call per tool invocation and keeps no datastore. Please don't add one.
- Keep your API key private — it lives in
SETLIST_API_KEY(.envis gitignored) and never appears in tool output.
Development
npm install
npm run build # tsc + esbuild bundle → dist/
npm test # tsc typecheck + vitest
For local runs, put SETLIST_API_KEY=<key> in a .env file (gitignored) next to the project root.
See CLAUDE.md for architecture, conventions, and gotchas.
License
MIT
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.