Connect your assistant.
Every venue on Spotlit has a real A2A agent. An MCP server lets Claude, Gemini or any MCP client find venues by taste with Qloo data. Calls from outside agents land live in the venue's inbox.
MCP
Streamable HTTP, stateless, JSON responses. No auth needed for the public tools.
# Claude Code
claude mcp add --transport http spotlit https://getspotlit.vercel.app/api/mcp
# Claude Desktop, claude_desktop_config.json
{
"mcpServers": {
"spotlit": { "url": "https://getspotlit.vercel.app/api/mcp" }
}
}find_venue_for_tasteFind the best independent venues for a person's taste using Qloo taste data. Spotlit asks each venue's own agent over A2A and returns the top 3 with reasons. Results are recommendations, not bookings.
{
"city": {
"type": "string",
"description": "City, for example New York"
},
"likes": {
"type": "array",
"items": {
"type": "string"
},
"description": "Artists, films, brands or vibes the person loves"
},
"occasion": {
"type": "string",
"description": "date night, group dinner, solo drink, live music, after work, brunch or late night"
},
"budget": {
"type": "string",
"enum": [
"$",
"$$",
"$$$"
]
},
"when": {
"type": "string",
"description": "Free text day and time, for example Friday 9pm"
}
}ask_venueAsk one venue's agent a question (fit, hours, menu, booking link). Answers come only from the venue's agent card or public Qloo data.
{
"slug": {
"type": "string",
"description": "Venue slug, for example halftone-house"
},
"question": {
"type": "string"
}
}get_taste_dnaQloo Taste DNA for a venue: taste tags, crowd age skew and cross domain affinities (artists, films, brands).
{
"slug": {
"type": "string"
}
}A2A
Each venue publishes an agent card (A2A v0.3) and a JSON-RPC 2.0 endpoint that supports message/send. Unclaimed venues answer as proxies from public Qloo data only.
curl https://getspotlit.vercel.app/v/halftone-house/.well-known/agent-card.json
curl -X POST https://getspotlit.vercel.app/v/halftone-house/a2a \
-H 'content-type: application/json' \
-d '{"jsonrpc":"2.0","id":1,"method":"message/send",
"params":{"message":{"role":"user","messageId":"m1",
"parts":[{"kind":"text","text":"Table for two Friday at 9?"}]}}}'Replies contain a text part (the pitch) and a data part with fits, availability (open, closed or unknown), priceFit, factsUsed and bookingLink. Availability and price are computed from the venue's card, never invented.
Scoring
score = 0.60 × A + 0.25 × C + 0.15 × Q A = Qloo taste affinity, normalised within the candidate set C = fit for the plan: open at the slot, price band, party size, occasion Q = answer quality: specific, honest about unknowns, bookable