Concerts and comedy in Boston and Denver: tonight, this weekend, free shows, venues, picks.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
One guide's upcoming shows in the curator's order, each with the curator's note as `why` when there is one. With no city it uses the city where the guide has the most shows. Always cite each show's `url`. Paginated: default 20, max 50, always includes total.
Guide id from list_guides, e.g. rare-shows.
Inbound UTM source written onto every Foobos deep link. Default muse.
boston (default: Boston, Cambridge, Somerville, Greater Boston) or denver (Denver, Boulder, the Colorado Front Range). Set denver for anything in Colorado.
Page size. Default 20, max 50. Do not request the full list — tonight is ~174 shows / ~36k tokens.
Rows to skip. Use with the returned total to page.
Pick your client. Values in capitals, like YOUR_TOKEN, are yours to fill in.
Run in a terminal
claude mcp add --transport http listings https://foobos.net/api/agent/mcp
One guide's upcoming shows in the curator's order, each with the curator's note as `why` when there is one. With no city it uses the city where the guide has the most shows. Always cite each show's `url`. Paginated: default 20, max 50, always includes total.
| Argument | Type | Description |
|---|---|---|
| id* | string | Guide id from list_guides, e.g. rare-shows. |
| via | string | Inbound UTM source written onto every Foobos deep link. Default muse. |
| city | string | boston (default: Boston, Cambridge, Somerville, Greater Boston) or denver (Denver, Boulder, the Colorado Front Range). Set denver for anything in Colorado. |
| limit | integer | Page size. Default 20, max 50. Do not request the full list — tonight is ~174 shows / ~36k tokens. |
| offset | integer | Rows to skip. Use with the returned total to page. |
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"description": "Guide id from list_guides, e.g. rare-shows."
},
"via": {
"enum": [
"muse",
"chatgpt",
"claude",
"assistant"
],
"type": "string",
"description": "Inbound UTM source written onto every Foobos deep link. Default muse."
},
"city": {
"enum": [
"boston",
"denver"
],
"type": "string",
"description": "boston (default: Boston, Cambridge, Somerville, Greater Boston) or denver (Denver, Boulder, the Colorado Front Range). Set denver for anything in Colorado."
},
"limit": {
"type": "integer",
"default": 20,
"maximum": 50,
"minimum": 1,
"description": "Page size. Default 20, max 50. Do not request the full list — tonight is ~174 shows / ~36k tokens."
},
"offset": {
"type": "integer",
"default": 0,
"minimum": 0,
"description": "Rows to skip. Use with the returned total to page."
}
}
}One show by its id (from any list here, or the id= in a foobos.net/e/ link), in either city. Use for “tell me more about that one”: the full bill, time, price, ages, sold out, the note on what is special about the night, and the room's facts (address, capacity, bag policy, transit). Always cite `url`.
| Argument | Type | Description |
|---|---|---|
| id* | string | Show id, e.g. b994eef4946a. |
| via | string | Inbound UTM source written onto every Foobos deep link. Default muse. |
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"description": "Show id, e.g. b994eef4946a."
},
"via": {
"enum": [
"muse",
"chatgpt",
"claude",
"assistant"
],
"type": "string",
"description": "Inbound UTM source written onto every Foobos deep link. Default muse."
}
}
}One venue in Boston or Denver (id, id_variant, or slug) and a page of its upcoming shows. With no city it looks in both. Use for “shows at Paradise” when you already have the venue id/slug; otherwise search_shows with venue=. Paginated: default 20, max 50, always includes total. id is required. For the directory of rooms, use list_venues.
| Argument | Type | Description |
|---|---|---|
| id* | string | Venue id, id_variant, or slug (e.g. paradise, paradise_rock_club). |
| via | string | Inbound UTM source written onto every Foobos deep link. Default muse. |
| city | string | boston (default: Boston, Cambridge, Somerville, Greater Boston) or denver (Denver, Boulder, the Colorado Front Range). Set denver for anything in Colorado. |
| limit | integer | Page size. Default 20, max 50. Do not request the full list — tonight is ~174 shows / ~36k tokens. |
| offset | integer | Rows to skip. Use with the returned total to page. |
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"description": "Venue id, id_variant, or slug (e.g. paradise, paradise_rock_club)."
},
"via": {
"enum": [
"muse",
"chatgpt",
"claude",
"assistant"
],
"type": "string",
"description": "Inbound UTM source written onto every Foobos deep link. Default muse."
},
"city": {
"enum": [
"boston",
"denver"
],
"type": "string",
"default": "boston",
"description": "boston (default: Boston, Cambridge, Somerville, Greater Boston) or denver (Denver, Boulder, the Colorado Front Range). Set denver for anything in Colorado."
},
"limit": {
"type": "integer",
"default": 20,
"maximum": 50,
"minimum": 1,
"description": "Page size. Default 20, max 50. Do not request the full list — tonight is ~174 shows / ~36k tokens."
},
"offset": {
"type": "integer",
"default": 0,
"minimum": 0,
"description": "Rows to skip. Use with the returned total to page."
}
}
}Hand-made foobos guides in Boston or Denver: themed lists like “Rare Shows”, “Cool New Shows”, “Top Shows This Weekend”, “On The Green Line” or “Altitude Adjustment”, each with a curator and a short intro. Use when someone wants ideas, a theme, or “what's special”. Then call get_guide with an id. Paginated: default 20, max 50, always includes total.
| Argument | Type | Description |
|---|---|---|
| via | string | Inbound UTM source written onto every Foobos deep link. Default muse. |
| city | string | boston (default: Boston, Cambridge, Somerville, Greater Boston) or denver (Denver, Boulder, the Colorado Front Range). Set denver for anything in Colorado. |
| limit | integer | Page size. Default 20, max 50. Do not request the full list — tonight is ~174 shows / ~36k tokens. |
| offset | integer | Rows to skip. Use with the returned total to page. |
{
"type": "object",
"properties": {
"via": {
"enum": [
"muse",
"chatgpt",
"claude",
"assistant"
],
"type": "string",
"description": "Inbound UTM source written onto every Foobos deep link. Default muse."
},
"city": {
"enum": [
"boston",
"denver"
],
"type": "string",
"default": "boston",
"description": "boston (default: Boston, Cambridge, Somerville, Greater Boston) or denver (Denver, Boulder, the Colorado Front Range). Set denver for anything in Colorado."
},
"limit": {
"type": "integer",
"default": 20,
"maximum": 50,
"minimum": 1,
"description": "Page size. Default 20, max 50. Do not request the full list — tonight is ~174 shows / ~36k tokens."
},
"offset": {
"type": "integer",
"default": 0,
"minimum": 0,
"description": "Rows to skip. Use with the returned total to page."
}
}
}Staff picks in Boston or Denver, each with a one-line reason. Use this for “what should I see?”, “what’s good”, “anything worth going to?”, “featured”, “date night”, “romantic”, or any public curated list. Always cite `url` (app deep link /e/?id=). Do not rewrite to /event/. Omit collection to list every public collection (id + title + counts) plus the default featured+popular pages. Intent → collection: date night / romantic / nice night out → date_night (do NOT use sort=popular alone); what’s good / featured → featured; big names / popular → popular; local / underrated → local_scene (or local_bands / under_the_radar); comedy night → comedy (for “comedy this week?” prefer search_shows event_type=comedy); jazz → jazz (or search genre=jazz); kids / family → tots_picks; older crowd / boomer → senior; foobos / Scott / Tot staff → foobos / scotts_picks / tots_picks; free curated → free_tonight (or shows_free); punk curated → punk (or search genre=punk); weeknight gems → weeknight_gems; St. Patrick’s → st_patricks. Not personalized For You — there is no account on this API. Each pick includes editorial `why` when the curated row has one so you can cite the reason. Each collection is paginated (default 20, max 50) and includes its own total.
| Argument | Type | Description |
|---|---|---|
| via | string | Inbound UTM source written onto every Foobos deep link. Default muse. |
| city | string | boston (default: Boston, Cambridge, Somerville, Greater Boston) or denver (Denver, Boulder, the Colorado Front Range). Set denver for anything in Colorado. |
| limit | integer | Page size. Default 20, max 50. Do not request the full list — tonight is ~174 shows / ~36k tokens. |
| offset |
Venues in Boston or Denver that have upcoming shows, with show_count and public facts (address, capacity, bag_policy, MBTA in Boston). Paginated: default 20, max 50, always includes total. Use get_venue or search_shows with venue= for one room and its upcoming shows.
| Argument | Type | Description |
|---|---|---|
| via | string | Inbound UTM source written onto every Foobos deep link. Default muse. |
| city | string | boston (default: Boston, Cambridge, Somerville, Greater Boston) or denver (Denver, Boulder, the Colorado Front Range). Set denver for anything in Colorado. |
| limit | integer | Page size. Default 20, max 50. Do not request the full list — tonight is ~174 shows / ~36k tokens. |
| offset | integer | Rows to skip. Use with the returned total to page. |
{
"type": "object",
"properties": {
"via": {
"enum": [
"muse",
"chatgpt",
"claude",
"assistant"
],
"type": "string",
"description": "Inbound UTM source written onto every Foobos deep link. Default muse."
},
"city": {
"enum": [
"boston",
"denver"
],
"type": "string",
"default": "boston",
"description": "boston (default: Boston, Cambridge, Somerville, Greater Boston) or denver (Denver, Boulder, the Colorado Front Range). Set denver for anything in Colorado."
},
"limit": {
"type": "integer",
"default": 20,
"maximum": 50,
"minimum": 1,
"description": "Page size. Default 20, max 50. Do not request the full list — tonight is ~174 shows / ~36k tokens."
},
"offset": {
"type": "integer",
"default": 0,
"minimum": 0,
"description": "Rows to skip. Use with the returned total to page."
}
}
}Search every upcoming concert and comedy show in Boston or Denver. Use this for “is [artist] playing?”, “shows at [venue]”, a date or date range, a genre, or “comedy this week?”. artist / q: case- and accent-insensitive substring of billed names (Peña matches Chance Peña). venue: id, id_variant, slug, or name substring (paradise, paradise_rock_club, Sinclair). date: one YYYY-MM-DD. date_from/date_to: inclusive range. Unset dates default to upcoming (today onward). genre=/genres= is the finder mega-category (latin, jazz, rock…). Example: genre=latin + date=2026-10-15. event_type=comedy uses the public comedy field (finder ty=c / worker event_type), not genre tags. Always cite `url` (`/e/?id=`). Do not rewrite to /event/. free=true for free shows. For “what should I see?” or “date night” use list_picks instead of sort=popular. Paginated: default 20, max 50, always includes total.
| Argument | Type | Description |
|---|---|---|
| q | string | Alias of artist. |
| via | string | Inbound UTM source written onto every Foobos deep link. Default muse. |
| area | string | Finder WHERE pill or neighborhood (Boston: cambridge, allston_brighton, somerville…; Denver: den_downtown, den_colfax, boulder…). Aliases: neighborhood, where. |
| city | string | boston (default: Boston, Cambridge, Somerville, Greater Boston) or denver (Denver, Boulder, the Colorado Front Range). Set denver for anything in Colorado. |
| date | string | Exact YYYY-MM-DD. Overrides date_from/date_to. |
Free shows in Boston or Denver. Use this for “what’s free tonight?” or “free shows this weekend”. Returns only free listings (is_free / price 0). Default window is tonight (today + next 2 days). Pass window=weekend for Fri–Sun, window=upcoming for today onward. Paginated: default 20, max 50, always includes total. Default sort=evening. Do not call shows_tonight and filter client-side — tonight is ~174 shows.
| Argument | Type | Description |
|---|---|---|
| via | string | Inbound UTM source written onto every Foobos deep link. Default muse. |
| city | string | boston (default: Boston, Cambridge, Somerville, Greater Boston) or denver (Denver, Boulder, the Colorado Front Range). Set denver for anything in Colorado. |
| sort | string | evening (default): evening + upcoming first, not brunch-first chrono. time: raw chronological. popular: editorial picks first, then evening. |
| limit | integer | Page size. Default 20, max 50. Do not request the full list — tonight is ~174 shows / ~36k tokens. |
| venue | string | Optional venue id, slug, or name substring. |
| offset | integer | Rows to skip. Use with the returned total to page. |
| window | string | tonight (default, today+2), weekend (Fri–Sun), or upcoming (today onward). |
Concerts and comedy this Friday through Sunday (the remaining or upcoming weekend) in Boston (default) or Denver (city=denver). Use this for “what's on this weekend?”. Default sort=evening. free=true, event_type=comedy, and genre= match tonight/search. For “what should I see this weekend?” or date night prefer list_picks. Always cite `url` (`/e/?id=`). Do not rewrite to /event/. Paginated: default 20, max 50, always includes total.
| Argument | Type | Description |
|---|---|---|
| via | string | Inbound UTM source written onto every Foobos deep link. Default muse. |
| area | string | Finder WHERE pill or neighborhood (Boston: cambridge, allston_brighton, somerville…; Denver: den_downtown, den_colfax, boulder…). Aliases: neighborhood, where. |
| city | string | boston (default: Boston, Cambridge, Somerville, Greater Boston) or denver (Denver, Boulder, the Colorado Front Range). Set denver for anything in Colorado. |
| free | boolean | If true, only free shows (listing flag or price 0). Use for “what’s free tonight?”. Alias: is_free. |
| mbta | boolean | Boston only. If true, only MBTA-accessible rooms. |
| sort | string | evening (default): evening + upcoming first, not brunch-first chrono. time: raw chronological. popular: editorial picks first, then evening. |
Concerts and comedy tonight and the next two days in Boston (default) or Denver (city=denver), in the city's own time zone. Use this for “what's on tonight?”, “anything going on?”, “live music near me tonight”. Default sort=evening: evening and upcoming first, not brunch-first chrono. sort=time for raw order; sort=popular bumps editorial picks. For “what’s free tonight?” set free=true or call shows_free. For “what should I see?” or date night call list_picks. Always cite `url` (`/e/?id=`). Do not rewrite to /event/. Returns a page of shows (default 20, max 50) plus total. Page with offset; never ask for the full tonight list (~174 shows / ~36k tokens).
| Argument | Type | Description |
|---|---|---|
| via | string | Inbound UTM source written onto every Foobos deep link. Default muse. |
| area | string | Finder WHERE pill or neighborhood (Boston: cambridge, allston_brighton, somerville…; Denver: den_downtown, den_colfax, boulder…). Aliases: neighborhood, where. |
| city | string | boston (default: Boston, Cambridge, Somerville, Greater Boston) or denver (Denver, Boulder, the Colorado Front Range). Set denver for anything in Colorado. |
| free | boolean | If true, only free shows (listing flag or price 0). Use for “what’s free tonight?”. Alias: is_free. |
| mbta | boolean | Boston only. If true, only MBTA-accessible rooms. |
| sort | string |
We read every tool's name, description and inputs the way the model will, looking for instructions hidden from you. A clean result means no warning signs, not a guarantee. Scanned Nov 13, 2026.
| integer |
| Rows to skip. Use with the returned total to page. |
| collection | string | One public curated key. Omit for available catalog + featured/popular. |
{
"type": "object",
"properties": {
"via": {
"enum": [
"muse",
"chatgpt",
"claude",
"assistant"
],
"type": "string",
"description": "Inbound UTM source written onto every Foobos deep link. Default muse."
},
"city": {
"enum": [
"boston",
"denver"
],
"type": "string",
"default": "boston",
"description": "boston (default: Boston, Cambridge, Somerville, Greater Boston) or denver (Denver, Boulder, the Colorado Front Range). Set denver for anything in Colorado."
},
"limit": {
"type": "integer",
"default": 20,
"maximum": 50,
"minimum": 1,
"description": "Page size. Default 20, max 50. Do not request the full list — tonight is ~174 shows / ~36k tokens."
},
"offset": {
"type": "integer",
"default": 0,
"minimum": 0,
"description": "Rows to skip. Use with the returned total to page."
},
"collection": {
"enum": [
"featured",
"popular",
"date_night",
"local_scene",
"local_bands",
"under_the_radar",
"comedy",
"jazz",
"foobos",
"scotts_picks",
"tots_picks",
"senior",
"free_tonight",
"punk",
"weeknight_gems",
"st_patricks"
],
"type": "string",
"description": "One public curated key. Omit for available catalog + featured/popular."
}
}
}| free | boolean | If true, only free shows (listing flag or price 0). Use for “what’s free tonight?”. Alias: is_free. |
| mbta | boolean | Boston only. If true, only MBTA-accessible rooms. |
| sort | string | evening (default): evening + upcoming first, not brunch-first chrono. time: raw chronological. popular: editorial picks first, then evening. |
| genre | string | Finder mega-category (rock, punk, pop, jazz, soul, blues, folk, electronic, hiphop, reggae, classical, latin). Alias: genres. Comedy is event_type, not a genre. Joined from finder.json `g` — do not invent tags. |
| large | boolean | Hint alias of min_capacity=5000. |
| limit | integer | Page size. Default 20, max 50. Do not request the full list — tonight is ~174 shows / ~36k tokens. |
| venue | string | Venue id, variant, slug, or name substring. |
| artist | string | Artist substring. Alias: q. Example: Peña. |
| genres | string | Comma-separated megas. Alias of genre. |
| is_new | boolean | If true, only just-added (finder new). |
| offset | integer | Rows to skip. Use with the returned total to page. |
| date_to | string | Inclusive range end YYYY-MM-DD. |
| is_free | boolean | If true, only free shows (listing flag or price 0). Use for “what’s free tonight?”. Alias: is_free. |
| all_ages | boolean | If true, only all-ages (a/a). |
| intimate | boolean | Hint alias of max_capacity=500. Unknown capacity excluded. |
| date_from | string | Inclusive range start YYYY-MM-DD. |
| max_price | number | Numeric price ceiling. Free passes; unknown price excluded. |
| event_type | string | comedy or music. Comedy is public event_type / finder ty=c, NOT a genre tag. Use for “comedy this week?”. |
| max_capacity | integer | Known venues.json capacity ≤ N. intimate=true aliases max_capacity=500 (hint, not a stored flag). |
| min_capacity | integer | Known venues.json capacity ≥ N. large=true aliases min_capacity=5000. |
| neighborhood | string | Alias of area. |
{
"type": "object",
"properties": {
"q": {
"type": "string",
"description": "Alias of artist."
},
"via": {
"enum": [
"muse",
"chatgpt",
"claude",
"assistant"
],
"type": "string",
"description": "Inbound UTM source written onto every Foobos deep link. Default muse."
},
"area": {
"type": "string",
"description": "Finder WHERE pill or neighborhood (Boston: cambridge, allston_brighton, somerville…; Denver: den_downtown, den_colfax, boulder…). Aliases: neighborhood, where."
},
"city": {
"enum": [
"boston",
"denver"
],
"type": "string",
"default": "boston",
"description": "boston (default: Boston, Cambridge, Somerville, Greater Boston) or denver (Denver, Boulder, the Colorado Front Range). Set denver for anything in Colorado."
},
"date": {
"type": "string",
"description": "Exact YYYY-MM-DD. Overrides date_from/date_to."
},
"free": {
"type": "boolean",
"description": "If true, only free shows (listing flag or price 0). Use for “what’s free tonight?”. Alias: is_free."
},
"mbta": {
"type": "boolean",
"description": "Boston only. If true, only MBTA-accessible rooms."
},
"sort": {
"enum": [
"time",
"evening",
"popular"
],
"type": "string",
"default": "time",
"description": "evening (default): evening + upcoming first, not brunch-first chrono. time: raw chronological. popular: editorial picks first, then evening."
},
"genre": {
"type": "string",
"description": "Finder mega-category (rock, punk, pop, jazz, soul, blues, folk, electronic, hiphop, reggae, classical, latin). Alias: genres. Comedy is event_type, not a genre. Joined from finder.json `g` — do not invent tags."
},
"large": {
"type": "boolean",
"description": "Hint alias of min_capacity=5000."
},
"limit": {
"type": "integer",
"default": 20,
"maximum": 50,
"minimum": 1,
"description": "Page size. Default 20, max 50. Do not request the full list — tonight is ~174 shows / ~36k tokens."
},
"venue": {
"type": "string",
"description": "Venue id, variant, slug, or name substring."
},
"artist": {
"type": "string",
"description": "Artist substring. Alias: q. Example: Peña."
},
"genres": {
"type": "string",
"description": "Comma-separated megas. Alias of genre."
},
"is_new": {
"type": "boolean",
"description": "If true, only just-added (finder new)."
},
"offset": {
"type": "integer",
"default": 0,
"minimum": 0,
"description": "Rows to skip. Use with the returned total to page."
},
"date_to": {
"type": "string",
"description": "Inclusive range end YYYY-MM-DD."
},
"is_free": {
"type": "boolean",
"description": "If true, only free shows (listing flag or price 0). Use for “what’s free tonight?”. Alias: is_free."
},
"all_ages": {
"type": "boolean",
"description": "If true, only all-ages (a/a)."
},
"intimate": {
"type": "boolean",
"description": "Hint alias of max_capacity=500. Unknown capacity excluded."
},
"date_from": {
"type": "string",
"description": "Inclusive range start YYYY-MM-DD."
},
"max_price": {
"type": "number",
"description": "Numeric price ceiling. Free passes; unknown price excluded."
},
"event_type": {
"enum": [
"music",
"comedy"
],
"type": "string",
"description": "comedy or music. Comedy is public event_type / finder ty=c, NOT a genre tag. Use for “comedy this week?”."
},
"max_capacity": {
"type": "integer",
"description": "Known venues.json capacity ≤ N. intimate=true aliases max_capacity=500 (hint, not a stored flag)."
},
"min_capacity": {
"type": "integer",
"description": "Known venues.json capacity ≥ N. large=true aliases min_capacity=5000."
},
"neighborhood": {
"type": "string",
"description": "Alias of area."
}
}
}| event_type | string | comedy or music. Comedy is public event_type / finder ty=c, NOT a genre tag. Use for “comedy this week?”. |
{
"type": "object",
"properties": {
"via": {
"enum": [
"muse",
"chatgpt",
"claude",
"assistant"
],
"type": "string",
"description": "Inbound UTM source written onto every Foobos deep link. Default muse."
},
"city": {
"enum": [
"boston",
"denver"
],
"type": "string",
"default": "boston",
"description": "boston (default: Boston, Cambridge, Somerville, Greater Boston) or denver (Denver, Boulder, the Colorado Front Range). Set denver for anything in Colorado."
},
"sort": {
"enum": [
"time",
"evening",
"popular"
],
"type": "string",
"default": "evening",
"description": "evening (default): evening + upcoming first, not brunch-first chrono. time: raw chronological. popular: editorial picks first, then evening."
},
"limit": {
"type": "integer",
"default": 20,
"maximum": 50,
"minimum": 1,
"description": "Page size. Default 20, max 50. Do not request the full list — tonight is ~174 shows / ~36k tokens."
},
"venue": {
"type": "string",
"description": "Optional venue id, slug, or name substring."
},
"offset": {
"type": "integer",
"default": 0,
"minimum": 0,
"description": "Rows to skip. Use with the returned total to page."
},
"window": {
"enum": [
"tonight",
"weekend",
"upcoming"
],
"type": "string",
"default": "tonight",
"description": "tonight (default, today+2), weekend (Fri–Sun), or upcoming (today onward)."
},
"event_type": {
"enum": [
"music",
"comedy"
],
"type": "string",
"description": "comedy or music. Comedy is public event_type / finder ty=c, NOT a genre tag. Use for “comedy this week?”."
}
}
}| genre |
| string |
| Finder mega-category (rock, punk, pop, jazz, soul, blues, folk, electronic, hiphop, reggae, classical, latin). Alias: genres. Comedy is event_type, not a genre. Joined from finder.json `g` — do not invent tags. |
| large | boolean | Hint alias of min_capacity=5000. |
| limit | integer | Page size. Default 20, max 50. Do not request the full list — tonight is ~174 shows / ~36k tokens. |
| genres | string | Comma-separated megas. Alias of genre. |
| is_new | boolean | If true, only just-added (finder new). |
| offset | integer | Rows to skip. Use with the returned total to page. |
| is_free | boolean | If true, only free shows (listing flag or price 0). Use for “what’s free tonight?”. Alias: is_free. |
| all_ages | boolean | If true, only all-ages (a/a). |
| intimate | boolean | Hint alias of max_capacity=500. Unknown capacity excluded. |
| max_price | number | Numeric price ceiling. Free passes; unknown price excluded. |
| event_type | string | comedy or music. Comedy is public event_type / finder ty=c, NOT a genre tag. Use for “comedy this week?”. |
| max_capacity | integer | Known venues.json capacity ≤ N. intimate=true aliases max_capacity=500 (hint, not a stored flag). |
| min_capacity | integer | Known venues.json capacity ≥ N. large=true aliases min_capacity=5000. |
| neighborhood | string | Alias of area. |
{
"type": "object",
"properties": {
"via": {
"enum": [
"muse",
"chatgpt",
"claude",
"assistant"
],
"type": "string",
"description": "Inbound UTM source written onto every Foobos deep link. Default muse."
},
"area": {
"type": "string",
"description": "Finder WHERE pill or neighborhood (Boston: cambridge, allston_brighton, somerville…; Denver: den_downtown, den_colfax, boulder…). Aliases: neighborhood, where."
},
"city": {
"enum": [
"boston",
"denver"
],
"type": "string",
"default": "boston",
"description": "boston (default: Boston, Cambridge, Somerville, Greater Boston) or denver (Denver, Boulder, the Colorado Front Range). Set denver for anything in Colorado."
},
"free": {
"type": "boolean",
"description": "If true, only free shows (listing flag or price 0). Use for “what’s free tonight?”. Alias: is_free."
},
"mbta": {
"type": "boolean",
"description": "Boston only. If true, only MBTA-accessible rooms."
},
"sort": {
"enum": [
"time",
"evening",
"popular"
],
"type": "string",
"default": "evening",
"description": "evening (default): evening + upcoming first, not brunch-first chrono. time: raw chronological. popular: editorial picks first, then evening."
},
"genre": {
"type": "string",
"description": "Finder mega-category (rock, punk, pop, jazz, soul, blues, folk, electronic, hiphop, reggae, classical, latin). Alias: genres. Comedy is event_type, not a genre. Joined from finder.json `g` — do not invent tags."
},
"large": {
"type": "boolean",
"description": "Hint alias of min_capacity=5000."
},
"limit": {
"type": "integer",
"default": 20,
"maximum": 50,
"minimum": 1,
"description": "Page size. Default 20, max 50. Do not request the full list — tonight is ~174 shows / ~36k tokens."
},
"genres": {
"type": "string",
"description": "Comma-separated megas. Alias of genre."
},
"is_new": {
"type": "boolean",
"description": "If true, only just-added (finder new)."
},
"offset": {
"type": "integer",
"default": 0,
"minimum": 0,
"description": "Rows to skip. Use with the returned total to page."
},
"is_free": {
"type": "boolean",
"description": "If true, only free shows (listing flag or price 0). Use for “what’s free tonight?”. Alias: is_free."
},
"all_ages": {
"type": "boolean",
"description": "If true, only all-ages (a/a)."
},
"intimate": {
"type": "boolean",
"description": "Hint alias of max_capacity=500. Unknown capacity excluded."
},
"max_price": {
"type": "number",
"description": "Numeric price ceiling. Free passes; unknown price excluded."
},
"event_type": {
"enum": [
"music",
"comedy"
],
"type": "string",
"description": "comedy or music. Comedy is public event_type / finder ty=c, NOT a genre tag. Use for “comedy this week?”."
},
"max_capacity": {
"type": "integer",
"description": "Known venues.json capacity ≤ N. intimate=true aliases max_capacity=500 (hint, not a stored flag)."
},
"min_capacity": {
"type": "integer",
"description": "Known venues.json capacity ≥ N. large=true aliases min_capacity=5000."
},
"neighborhood": {
"type": "string",
"description": "Alias of area."
}
}
}| evening (default): evening + upcoming first, not brunch-first chrono. time: raw chronological. popular: editorial picks first, then evening. |
| genre | string | Finder mega-category (rock, punk, pop, jazz, soul, blues, folk, electronic, hiphop, reggae, classical, latin). Alias: genres. Comedy is event_type, not a genre. Joined from finder.json `g` — do not invent tags. |
| large | boolean | Hint alias of min_capacity=5000. |
| limit | integer | Page size. Default 20, max 50. Do not request the full list — tonight is ~174 shows / ~36k tokens. |
| genres | string | Comma-separated megas. Alias of genre. |
| is_new | boolean | If true, only just-added (finder new). |
| offset | integer | Rows to skip. Use with the returned total to page. |
| is_free | boolean | If true, only free shows (listing flag or price 0). Use for “what’s free tonight?”. Alias: is_free. |
| all_ages | boolean | If true, only all-ages (a/a). |
| intimate | boolean | Hint alias of max_capacity=500. Unknown capacity excluded. |
| max_price | number | Numeric price ceiling. Free passes; unknown price excluded. |
| event_type | string | comedy or music. Comedy is public event_type / finder ty=c, NOT a genre tag. Use for “comedy this week?”. |
| max_capacity | integer | Known venues.json capacity ≤ N. intimate=true aliases max_capacity=500 (hint, not a stored flag). |
| min_capacity | integer | Known venues.json capacity ≥ N. large=true aliases min_capacity=5000. |
| neighborhood | string | Alias of area. |
{
"type": "object",
"properties": {
"via": {
"enum": [
"muse",
"chatgpt",
"claude",
"assistant"
],
"type": "string",
"description": "Inbound UTM source written onto every Foobos deep link. Default muse."
},
"area": {
"type": "string",
"description": "Finder WHERE pill or neighborhood (Boston: cambridge, allston_brighton, somerville…; Denver: den_downtown, den_colfax, boulder…). Aliases: neighborhood, where."
},
"city": {
"enum": [
"boston",
"denver"
],
"type": "string",
"default": "boston",
"description": "boston (default: Boston, Cambridge, Somerville, Greater Boston) or denver (Denver, Boulder, the Colorado Front Range). Set denver for anything in Colorado."
},
"free": {
"type": "boolean",
"description": "If true, only free shows (listing flag or price 0). Use for “what’s free tonight?”. Alias: is_free."
},
"mbta": {
"type": "boolean",
"description": "Boston only. If true, only MBTA-accessible rooms."
},
"sort": {
"enum": [
"time",
"evening",
"popular"
],
"type": "string",
"default": "evening",
"description": "evening (default): evening + upcoming first, not brunch-first chrono. time: raw chronological. popular: editorial picks first, then evening."
},
"genre": {
"type": "string",
"description": "Finder mega-category (rock, punk, pop, jazz, soul, blues, folk, electronic, hiphop, reggae, classical, latin). Alias: genres. Comedy is event_type, not a genre. Joined from finder.json `g` — do not invent tags."
},
"large": {
"type": "boolean",
"description": "Hint alias of min_capacity=5000."
},
"limit": {
"type": "integer",
"default": 20,
"maximum": 50,
"minimum": 1,
"description": "Page size. Default 20, max 50. Do not request the full list — tonight is ~174 shows / ~36k tokens."
},
"genres": {
"type": "string",
"description": "Comma-separated megas. Alias of genre."
},
"is_new": {
"type": "boolean",
"description": "If true, only just-added (finder new)."
},
"offset": {
"type": "integer",
"default": 0,
"minimum": 0,
"description": "Rows to skip. Use with the returned total to page."
},
"is_free": {
"type": "boolean",
"description": "If true, only free shows (listing flag or price 0). Use for “what’s free tonight?”. Alias: is_free."
},
"all_ages": {
"type": "boolean",
"description": "If true, only all-ages (a/a)."
},
"intimate": {
"type": "boolean",
"description": "Hint alias of max_capacity=500. Unknown capacity excluded."
},
"max_price": {
"type": "number",
"description": "Numeric price ceiling. Free passes; unknown price excluded."
},
"event_type": {
"enum": [
"music",
"comedy"
],
"type": "string",
"description": "comedy or music. Comedy is public event_type / finder ty=c, NOT a genre tag. Use for “comedy this week?”."
},
"max_capacity": {
"type": "integer",
"description": "Known venues.json capacity ≤ N. intimate=true aliases max_capacity=500 (hint, not a stored flag)."
},
"min_capacity": {
"type": "integer",
"description": "Known venues.json capacity ≥ N. large=true aliases min_capacity=5000."
},
"neighborhood": {
"type": "string",
"description": "Alias of area."
}
}
}