BarMusicLive for AI and developers
Let an AI assistant or your own app answer "what live music is on" from BarMusicLive's listings. Read-only, free, no account and no key.
Connect in one step
Give your assistant this address. It is a remote Model Context Protocol server: nothing to install, no account, no key.
https://barmusiclive.com/api/mcp/v1.php- Claude (web, desktop and mobile): add a custom connector and paste the address.
- Claude Code:
claude mcp add --transport http barmusiclive https://barmusiclive.com/api/mcp/v1.php - Cursor: in
~/.cursor/mcp.json(or the project’s.cursor/mcp.json):{ "mcpServers": { "barmusiclive": { "url": "https://barmusiclive.com/api/mcp/v1.php" } } } - VS Code: in
.vscode/mcp.json:{ "servers": { "barmusiclive": { "type": "http", "url": "https://barmusiclive.com/api/mcp/v1.php" } } } - Any other app that supports remote MCP servers over Streamable HTTP: paste the address where it asks for a server URL.
- Claude Desktop, installed locally: the one-click bundle on BarMusicLive for AI assistants has the same tools.
Then ask: “What live music is on in Pensacola this weekend?”, “Where does Otis Walker Band play next?” or “Which venues near Huntsville have shows tonight?”
Tools
All six are read-only, and the same as the downloadable server, word for word.
| Tool | What | Arguments | Returns |
|---|---|---|---|
find_shows | Find live music | town, venue, artist, query, from, to (YYYY-MM-DD), limit | Upcoming shows, filtered. Default: the next 7 days from today (US Central). |
search_venues | Search venues | query, town, state, near_lat, near_lng, radius_miles, with_shows, limit | Venues by name, town or state, or within a radius of a point. |
get_venue | Venue details and shows | venue (slug or name) | Address, website, type and every upcoming date at one venue. |
search_artists | Search artists | query, with_shows, limit | Artists and bands by name, with their upcoming date counts. |
get_artist | Artist shows | artist (slug or name) | Every upcoming date for one artist or band. |
list_towns | Towns covered | state, limit | Towns with how many venues and upcoming dates each has. |
Every result carries the BarMusicLive link for the show, venue or artist. Please give people that link, and tell them to confirm times with the venue.
Resources, prompts and completion
- Resources:
bml://about(coverage, freshness, how to cite),bml://feeds(the JSON feeds and their fields), and the templatesbml://venue/{slug}andbml://artist/{slug}. - Prompts:
whats_on(town, when),plan_a_night_out(town, date, style) andartist_tour(artist). - Completion: suggests town and artist names for those prompts.
Protocol
- Versions:
2026-07-28,2025-11-25,2025-06-18,2025-03-26,2024-11-05. - 2026-07-28 is stateless: no
initialize. SendMCP-Protocol-Version,Mcp-Methodand, for a tool, prompt or resource,Mcp-Name; they must match the body (error-32020if not).server/discoverlists versions and capabilities. - Earlier versions:
initializefirst as usual. No session is kept, so noMcp-Session-Idis issued or needed; every request stands alone. - Transport: Streamable HTTP,
POSTonly, JSON responses. No event stream:GETanswers 405. Batches (protocol 2025-03-26 and earlier only) up to 5 messages; each message counts toward the limits. - Errors:
-32700parse,-32600invalid request,-32601unknown method,-32602bad params or unknown tool,-32002unknown resource,-32022unsupported version (HTTP 400, with the supported list),-32029rate limit (HTTP 429 withRetry-After). A bad tool argument comes back as a readable tool result withisError: true.
Try it from a terminal (current protocol):
curl -s https://barmusiclive.com/api/mcp/v1.php \
-H 'Content-Type: application/json' \
-H 'Accept: application/json, text/event-stream' \
-H 'MCP-Protocol-Version: 2026-07-28' \
-H 'Mcp-Method: tools/call' -H 'Mcp-Name: find_shows' \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call",
"params":{"name":"find_shows","arguments":{"town":"Huntsville, AL"}}}'Or with an earlier protocol, starting a conversation:
curl -s https://barmusiclive.com/api/mcp/v1.php \
-H 'Content-Type: application/json' \
-H 'Accept: application/json, text/event-stream' \
-d '{"jsonrpc":"2.0","id":1,"method":"initialize",
"params":{"protocolVersion":"2025-06-18","capabilities":{},
"clientInfo":{"name":"my-app","version":"1.0"}}}'Limits
- 60 requests a minute and 5,000 a day from one address (IPv6 counted per /64), and 600 a minute from one IPv6 network (/48). Beyond that: HTTP 429 with
Retry-After; please wait that long. - A search uses at most its first 8 words.
- Request body up to 64 KB. Up to 100 rows per result.
- Listings run about five weeks ahead and are rebuilt when the site is updated. Each result says when its data was built.
Without MCP: the JSON feeds
The same data as three plain files, for any app or script. Each lists its own column names; every row is an array in that order.
- /api/v1/upcoming.json: every upcoming show.
- /api/v1/venues.json: every published venue, with map coordinates where known.
- /api/v1/artists.json: every published artist.
curl -s https://barmusiclive.com/api/v1/upcoming.json
# {"built":"…","through":"…","fields":["date","start","title","url","venue",
# "venue_name","town_name","town","artists"],"shows":[["2026-11-14","19:00",…],…]}Calendars: every venue, artist and town page offers a subscription (/cal/{venue,artist,town}/{slug}.ics). Venues and bands can also show their dates on their own site with the widget offered on their page.
Discovery files
- MCP server card (the MCP registry’s server-card format).
- OpenAPI 3.1 description of the feeds and the MCP endpoint.
- llms.txt: a plain-text guide to the whole site for language models.
What it does not do
- It never changes anything. No posting, voting, accounts or member content, and nothing from the Community page.
- It holds no personal information: listings are public venue, artist and show details only.
- It does not fetch other websites or read files; resources are the four listed above.
- It does not remember you. No cookies, no sessions. The rate limit keeps a daily count against a keyed one-way hash of the address, and old days are cleared. This server stores nothing you ask; like every website, the web host’s own access log records the address, time and page requested, and keeps it for a month or two.
Using the data
Use it to help people find live music. Please link each show, venue or artist to its BarMusicLive page, and do not present the listings as your own. Listings come from venues, artists and fans and are checked before they are published, but plans change: times are the venue’s local time and should be confirmed with the venue.
Something wrong, or a security concern? Contact us.