Generate a printable setlist
generate_setlistUse this when the user wants a printable setlist for a gig or band (set list, stage setlist, setlist template, "print our set list", "how long is our set") as a PDF and CSV. Pass songs[] in play order with title and, when given, key, bpm, capo, duration ("3:45"), notes, segue and transpose; use sets[] when the sets are decided, or pass the pasted list as text (numbered lists, "Song - Key - BPM - Time", CSV or tab rows, "->" segues, SET 2 / Encore / --- breaks). Options: split_sets or break_after_minutes to split one list, changeover_seconds, transpose_all, band, venue, date, layout (both, stage, band) and paper (letter, a4). Returns set totals and the show total in m:ss; songs without a duration are listed and not estimated. Does not look up keys, tempos or song lengths, and does not make chord charts or lyrics.
Tool call template
This tool declares no required parameters. Add optional parameters from the input schema as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {},
"name": "generate_setlist"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| band | No | Band or act name printed at the top. Example: The Late Shift | |
| date | No | Gig date as it should print. Example: Sat 14 Nov 2026 | |
| sets | No | Use instead of songs when the sets are already decided, e.g. [{"name":"Set 1","songs":[...]},{"name":"Encore","songs":[...]}]. | |
| text | No | Fallback: the setlist as the user pasted it, one song per line, e.g. "1. Brown Eyed Girl (G) 150 bpm 3:05 capo 2\nSET 2\nValerie - Eb - 3:40 ->". Reads numbered lists, CSV or tab rows with a header, "->" segues and SET 2 / Encore / --- breaks. | |
| paper | No | letter (default) or a4. Example: a4 | |
| songs | No | Songs in play order, one object per song, e.g. [{"title":"Valerie","key":"Eb","bpm":116,"duration":"3:40"}]. A plain string such as "SET 2" or "Encore" starts a new set. Up to 80 songs. | |
| venue | No | Venue printed at the top. Example: Blue Door Pub | |
| layout | No | both (default: big-type stage pages plus a band copy table), stage, or band. Example: stage | |
| split_sets | No | Split a single list into this many sets of similar length, keeping the order (2 to 6). Example: 2 | |
| transpose_all | No | Shift every song with a known key by these semitones or to a key name. Example: -2 | |
| changeover_seconds | No | Seconds between songs counted in the set times (none after a segue). Default 0. Example: 20 | |
| break_after_minutes | No | Start a new set when a set would run past this many minutes. Example: 45 |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| band | Yes | ||
| date | Yes | ||
| sets | Yes | ||
| notes | Yes | ||
| paper | Yes | ||
| songs | Yes | ||
| total | Yes | ||
| venue | Yes | ||
| layout | Yes | ||
| downloads | Yes | ||
| pdf_pages | Yes | ||
| set_count | Yes | ||
| song_count | Yes | ||
| songs_shown | No | ||
| total_seconds | Yes | ||
| changeover_seconds | Yes | ||
| links_expire_hours | Yes | ||
| songs_without_duration | Yes |