Skip to main content

For AI assistants

The Recs MCP server

Recs is where local curators (DJs, music journalists, nightlife personalities and event creators) pick the events worth going to in their city and say why. This server lets your AI assistant ask Recs "what's worth going to" and get named, attributed recommendations instead of a list of listings.

Server URL
https://recscompany.com/mcp
Protocol
Model Context Protocol, Streamable HTTP
Sign-in
None. No account, no API key.
Access
Read-only, public data only, free

What it is

A public, read-only Model Context Protocol (MCP) server at https://recscompany.com/mcp. There is no sign-in, and it exposes only what the public website at recscompany.com already shows: upcoming events, the curators who picked them and their notes, curator profiles, and the cities that have picks. Nothing about Recs accounts, organizers' private data or the curator dashboard is reachable, and the server never changes anything.

Results are upcoming events by default; past events come back only when asked for. Dates are local to the venue. Opening the server URL in a browser returns a JSON description of the server and its tools.

Recs is early, so coverage is still thin: right now 12 cities have upcoming picks, and the most are in Brooklyn, Phoenix and Amsterdam. Elsewhere, expect few or no results. list_cities always says where picks are.

The five tools

search_events

Find upcoming events by free text (an artist, show, venue, genre or a curator's name), city or neighborhood, a time like tonight or this weekend, curator, category or price. Each result says who recommended it and why.

ArgumentTypeNotes
querystringFree text, up to 200 characters. Every word has to match something public about the event; "tonight", "this weekend" and "free" are read as filters.
citystringA city, borough or neighborhood: "NYC", "Brooklyn, NY", "Bushwick". New York covers all five boroughs.
nearbybooleanAlso include the surrounding metro area. Default false.
curatorstringOnly events picked by this curator: username, @handle or display name.
categorystringA Recs category name or slug, e.g. "music" or "nightlife" (which includes DJ sets and club nights).
whenstringtoday, tonight, tomorrow, this_weekend, next_weekend, this_week, next_week, next_7_days, this_month, next_30_days, or a weekday name. Read in each venue's own time zone.
fromstringEarliest date, YYYY-MM-DD (a date-time is read as its date).
tostringLatest date, YYYY-MM-DD.
freebooleanOnly events with a known price of zero.
max_pricenumberOnly events whose lowest known price is at or under this. Events with no known price are left out.
include_pastbooleanAlso return events that already happened. Default false.
limitintegerHow many results, 1 to 50. Default 20.
cursorstringThe next_cursor from the previous call, for the next page of results. Pass the same other arguments.

get_event

One event in full: description, venue, dates, price, the curators who picked it with their notes, and a ticket link.

ArgumentTypeNotes
idrequiredstringA Recs event URL, an event id or the slug from the URL.

get_curator

A curator's public profile (bio, location, social links) and their upcoming picks with notes.

ArgumentTypeNotes
usernamerequiredstringA username, @handle, profile URL or display name. A miss suggests close matches.
limitintegerHow many upcoming picks, 1 to 50. Default 25.
cursorstringThe next_cursor from the previous call, for the next page of upcoming picks. Pass the same other arguments.

list_curators

Curators worth following: with a city, those with upcoming picks there first, then those based there.

ArgumentTypeNotes
citystringA city, borough or neighborhood, read the same way as in search_events.
nearbybooleanAlso include the surrounding metro area. Default false.
limitintegerHow many results, 1 to 50. Default 20.
cursorstringThe next_cursor from the previous call, for the next page of results. Pass the same other arguments.

list_cities

Cities with upcoming events on Recs, with how many events, how many of them curators picked, and how many curators. Curator picks first.

ArgumentTypeNotes
limitintegerHow many results, 1 to 50. Default 50.

What a result looks like

One event from search_events, trimmed to the fields an assistant uses most:

{
  "url": "https://recscompany.com/event/dice-HHTdTG",
  "title": "DICE",
  "start": "2026-11-07T19:30-07:00",
  "venue": {
    "name": "Last Exit Live",
    "address": "717 S. Central Ave, Phoenix, AZ 85004",
    "city": "Phoenix",
    "state": "AZ",
    "country": "US"
  },
  "price": { "low": 20, "high": 24, "currency": "USD" },
  "ticket_url": "https://www.eventbrite.com/e/dice-tickets-1989444504066?aff=odwdwdspacecraft&utm_source=recs&utm_medium=agent&utm_campaign=mcp&utm_content=benalire&utm_id=ag62e43b34d0",
  "recommended_by": [
    {
      "username": "benalire",
      "name": "Ben Alire",
      "note": "Dice just knows how to rock. Somewhere between beach rock and alt rock, lies Dice, and I'm here for it.",
      "url": "https://recscompany.com/benalire"
    }
  ]
}

Every event also carries id, description, end, time_zone, category, tags, availability, image_url, organizer and is_past. url is the Recs event page; ticket_url goes to the organizer's ticketing provider; recommended_by lists every curator who picked the event, with their public note, their own tag for it, their relationship to it ("Promoting", "Hosting" or "DJing", null for a plain recommendation) and profile URL. Results come back both as structuredContent and as a JSON text block, and every tool declares an outputSchema describing that shape.

An empty search is not a dead end. When search_events finds nothing, or list_curators finds no one in a city, the result carries a hint: the cities that do have picks, busiest first; for a city with none, the closest cities with picks in the same state or country, in hint.nearby; and a one-line hint.message an assistant can offer instead of "nothing found".

Ask the way a fan talks. city takes a borough or neighborhood (a neighborhood is searched as its borough), when takes "tonight" or "this_weekend", and words like "tonight" or "free" in query become those filters. When the server reads a city or query that way, the result says so in notes.

Add it to your assistant

Claude (claude.ai and the Claude apps)

  1. Open Customize > Connectors, click + Add and choose Add custom connector.
  2. Name it Recs, paste https://recscompany.com/mcp as the URL and choose No sign in.
  3. In a chat, open the + menu, choose Connectors and turn Recs on.

On Team and Enterprise plans an owner adds it first, under Organization settings > Connectors > Add > Custom > Web; members then find it under Customize > Connectors.

Claude Code

claude mcp add --transport http recs https://recscompany.com/mcp

Cursor

Or add an entry to ~/.cursor/mcp.json (or the project's .cursor/mcp.json):

{
  "mcpServers": {
    "recs": {
      "url": "https://recscompany.com/mcp"
    }
  }
}

VS Code

Or add an entry to .vscode/mcp.json (or run MCP: Add Server and pick HTTP):

{
  "servers": {
    "recs": {
      "type": "http",
      "url": "https://recscompany.com/mcp"
    }
  }
}

ChatGPT (developer mode)

Under Settings > Connectors > Advanced, turn on Developer mode. Then create a connector with the server URL above and no authentication, and enable it in a chat from the + menu.

Any other MCP client, or a shell

Use the Streamable HTTP transport with the server URL and no auth. To try it without a client, the MCP Inspector CLI works:

npx @modelcontextprotocol/inspector --cli https://recscompany.com/mcp \
  --transport http --method tools/call --tool-name search_events \
  --tool-arg city="Brooklyn" --tool-arg limit=5

Or call it directly. The Accept header must name both types:

curl -s https://recscompany.com/mcp \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json, text/event-stream' \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'

Things to ask

Cities with picks right now: Brooklyn, Phoenix, Amsterdam, Gilbert, Montreal, Nashville, New York, San Antonio and 4 more.

  • "What's worth going to in Brooklyn, according to Recs curators?"
  • "Who should I follow on Recs for events in Phoenix?"
  • "What are Recs curators picking in Amsterdam? Who picked each one and why?"
  • "Which cities have Recs picks right now?"
  • "Tell me about this Recs event: https://recscompany.com/event/..."

Attribution and ticket links

Curators are the point of Recs, so the server asks assistants to credit them by name and link the Recs event page as the source. Every ticket_url leads to the organizer's own ticketing provider and carries attribution that credits the recommending curator; Recs may earn an affiliate commission on tickets bought through it. Assistants should pass the link on exactly as returned, since rewriting its query string removes the curator's credit. Curator picks are editorial, not paid placements.

For curators

When someone asks an AI assistant connected to Recs what's worth going to, your public picks are what it can recommend, credited to you by name with your note and a link to your profile. Every ticket link it hands out for your pick carries your attribution, so a sale through it credits you the same way a sale through your Recs page does. There is nothing to set up: only what is already public on your profile is included. Become a Recs curator.

For organizers

Your events appear when curators pick them, and your own house listings appear too, with your organizer name. The ticket link handed out is your primary active ticket link, ahead of any curator's link, as on the event page. Recs adds its own attribution to that link but never overwrites your own utm_* tags. Recs for organizers.

Rate limits and result size

Up to 240 calls per IP address per minute. Over that, the server answers HTTP 429; wait a minute and try again.

Results come a page at a time. limit sets the page size (1 to 50; the default is in each tool's table). When a result has a next_cursor, call the same tool again with the same arguments plus cursor set to it for the next page; next_cursor is null on the last page. search_events, get_curator (its picks) and list_curators page this way; list_cities returns every city in one call. Cursors are opaque: pass them back exactly as returned.

Stability and changes

Current version: 0.3.0 (the serverInfo.version the server reports). Tool names, argument names and result fields will not be renamed or removed without notice here first. New optional arguments and new fields can appear at any time, so clients should ignore fields they don't know.

  • 2026-10-160.3.0: fan-shaped questions. city takes boroughs, neighborhoods and spellings like NYC (New York covers all five boroughs), with nearby for the metro; when (tonight, this weekend, a weekday and more, in the venue's own time zone); free and max_price; query words match categories, tags, organizers and curators' names and public notes; curator and get_curator take a display name; results carry notes on how a city or query was read; list_cities counts organizer listings and adds curator_picks; list_curators adds curators based in the city.
  • 2026-10-160.2.0: cursor paging (cursor argument, next_cursor in results) on search_events, get_curator and list_curators; an empty result carries a hint naming the cities that do have picks; every tool declares an outputSchema; each recommended_by entry adds tag and relationship.
  • 2026-10-15Production launch: five read-only tools, no sign-in.

Data and privacy

The server has no accounts and asks nothing about you. Each tool call is logged with the tool name, its arguments, the client IP address and user agent, for abuse prevention and usage measurement. Nothing else from your conversation reaches Recs. See the Recs privacy policy and terms of service.

Support

Questions, a tool that misbehaves, or a listing you would like fixed: [email protected]. A machine-readable overview of the whole site, including this server, is at recscompany.com/llms.txt.