setlistify
Allows fetching setlists from setlist.fm and creating Spotify playlists from them, with fuzzy matching for live track variants and discography comparison.
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., "@setlistifyCreate a playlist from Radiohead's most recent show"
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.
"Make me a Spotify playlist from Radiohead's last show" → done.
An MCP server that connects setlist.fm and Spotify. Tell Claude which artist and show you want — it fetches the real setlist, matches every track on Spotify, and creates the playlist.
Works with Claude Code and Claude Desktop.
Example
You: Create a playlist from Metallica's most recent show.
Claude: Created "Metallica — Live Setlist (09-01-2024)"
Setlist from Estadi Olímpic Lluís Companys, Barcelona — 09-01-2024.
21/22 tracks matched.
→ https://open.spotify.com/playlist/...You: Which songs does The National always play live vs. their rarities?
Claude: Always played (last 10 shows): Bloodbuzz Ohio, Terrible Love, Mr. November
Rarities (played once): Sorrow, Available, Green Gloves
Never played live: 34 studio tracksRelated MCP server: Tempo
What it does
Fetches real setlists from setlist.fm for any artist
Searches Spotify for each track with fuzzy matching for live variants
Creates a Spotify playlist and returns the URL
mode="latest"— most recent showmode="best-of"— aggregates last N shows, ranks by play frequencyDiffs live setlists against full studio discography (always played / never played / rarities)
Tools
get_setlists(artist, year?, city?, limit?)
Browse recent setlists before creating a playlist.
create_playlist_from_setlist(artist, year?, venue?, city?, mode?)
Create a Spotify playlist from a setlist. Returns playlist URL, matched/unmatched track counts.
diff_setlist_vs_discography(artist)
Compare last 10 setlists against full Spotify discography.
Installation
Prerequisites
Python 3.11+
setlist.fm API key — free
Spotify Developer app — free
1. Clone and install
git clone https://github.com/emarkou/setlistify.git
cd setlistify
python3.11 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt2. Configure credentials
cp .env.example .envEdit .env:
SETLISTFM_API_KEY=your_setlistfm_key
SPOTIFY_CLIENT_ID=your_spotify_client_id
SPOTIFY_CLIENT_SECRET=your_spotify_client_secret
SPOTIFY_REDIRECT_URI=http://localhost:8888/callbacksetlist.fm: Register at https://www.setlist.fm/settings/api, copy the API key.
Spotify:
Create an app → select Web API
Add
http://localhost:8888/callbackas a Redirect URICopy Client ID and Client Secret
3. Register with Claude Code
claude mcp add setlistify \
/path/to/setlistify/.venv/bin/python \
-- /path/to/setlistify/server.pyOr add to ~/.claude/mcp.json:
{
"mcpServers": {
"setlistify": {
"command": "/path/to/setlistify/.venv/bin/python",
"args": ["/path/to/setlistify/server.py"]
}
}
}4. Register with Claude Desktop
Add to ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"setlistify": {
"command": "/path/to/setlistify/.venv/bin/python",
"args": ["/path/to/setlistify/server.py"],
"env": {
"SETLISTFM_API_KEY": "your_key",
"SPOTIFY_CLIENT_ID": "your_client_id",
"SPOTIFY_CLIENT_SECRET": "your_client_secret",
"SPOTIFY_REDIRECT_URI": "http://localhost:8888/callback"
}
}
}
}5. First run — Spotify OAuth
On first use a browser window opens for Spotify authorisation. Log in and allow access. Token is cached locally in .cache and reused automatically.
If auth expires, delete .cache and retry.
Test without Claude
npx @modelcontextprotocol/inspector \
/path/to/setlistify/.venv/bin/python \
/path/to/setlistify/server.pyOpens a browser UI at http://localhost:6274 to call tools interactively.
Project structure
setlistify/
├── server.py # MCP server and tool definitions
├── setlistfm.py # setlist.fm API client
├── spotify.py # Spotify/spotipy wrapper
├── matching.py # Fuzzy track title matching
├── requirements.txt
├── .env.example
└── LICENSELicense
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.
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/emarkou/setlistify'
If you have feedback or need assistance with the MCP directory API, please join our Discord server