MCP server

FindLocal runs a remote Model Context Protocol server so an AI assistant can answer "what's on near me?" from live venue calendars, with links back to every event.

Endpoint

https://mcp.findlocal.community/mcp

Connect a client

Claude.ai (web and desktop)

  1. Open Settings → Connectors → Add custom connector.
  2. Paste https://mcp.findlocal.community/mcp and save, then Connect.
  3. Enter your API key on the FindLocal page that opens. In a chat, keep the FindLocal connector toggled on.

Claude Code

claude mcp add --transport http findlocal https://mcp.findlocal.community/mcp

Cursor

Add to ~/.cursor/mcp.json (or the project's .cursor/mcp.json) and restart Cursor:

{
  "mcpServers": {
    "findlocal": { "url": "https://mcp.findlocal.community/mcp" }
  }
}

Any other client

Anything that speaks Streamable HTTP with OAuth works. To poke at the tools without a chat client:

npx @modelcontextprotocol/inspector
# transport: Streamable HTTP · URL: https://mcp.findlocal.community/mcp

API keys and quotas

Usage is metered against your account's monthly quota (shared by all its keys) so the service stays healthy. On the consent page, paste an API key from your dashboard (free account) — the same key works for both the MCP server and the JSON API. Plans:

PlanQuotaPrice
Free1,000 calls / monthFree
Hobby10,000 calls / month$9 / month
Pro75,000 calls / month$49 / month
EnterpriseCustomelliot@findlocal.community

Create a free account and make a key in the dashboard. Once authorized you won't be asked again for that client. Ask the assistant to run get_usage to see calls used and remaining. When a quota is exhausted, tools return a clear "Monthly quota reached" message instead of partial data. The server stores the API key and a per-month counter — nothing about your conversations.

Tools

ToolWhat it doesInputs
search_eventsThe primary tool. Upcoming local events in a city — concerts, comedy, theater, readings, film screenings, talks, classes, community nights — filtered every way the site can filter. Returns { city, total_matched, returned, events }.city (required; name or slug) · region · when (anytime | today | tomorrow | weekend | this_weekend | week) · date_from / date_to (YYYY-MM-DD) · category (slug or a genre word like "jazz") · free_only · price_max (city local currency) · time_of_day (morning | afternoon | evening) · query · performer · authors_only · sort (date | featured) · limit (1–200, default 50)
get_eventFull detail for one event, including its description. Past and delisted events still come back, flagged expired / delisted.id
list_venuesActive venues in a city or region with address, coordinates, type, size / capacity and upcoming counts.city (required) · region · limit (≤ 500)
get_venueOne venue by id, or a fuzzy name search returning up to 5 matches.id, or name (+ optional city)
list_categoriesThe category slugs search_events accepts, with the number of upcoming events in each for a city.city (required)
get_events_at_venueUpcoming events at one venue.venue_id · limit (≤ 100, default 20)
get_usage
free
Your plan, the account's monthly quota (shared by all its keys), calls used and remaining, reset date and per-minute limit. Free — check it before bulk work.—
get_api_docs
free
Developer documentation for the FindLocal REST API by topic, generated from the live OpenAPI document. Free. Use it to help a developer integrate the API.topic (quickstart | authentication | endpoints | filters | errors | rate_limits | plans | mcp_setup | widgets)
get_setup_guide
free
A ready-to-run snippet for calling the REST API, connecting this MCP server, or the Free-plan attribution link. Free.target (curl | javascript | python | claude_code | cursor | claude_desktop | attribution)

Categories: music, comedy, theater, dance, literary, film, talks, art, food_drink, family, market, workshop, fitness, nightlife, community, festival, parks. Cities can be given by name ("New York") or slug ("new-york"); all 84 (US and UK) are listed in the full reference.

What an event looks like in a result

{
  "id": "8f9b9068-4e11-466b-a1cc-d36230d28fdd",
  "title": "Hooley Hour",
  "date": "2026-09-04",
  "start_time": "17:00:00",
  "city": "Boston",
  "region": "Cambridge",
  "venue": { "id": "b7716a13-…", "name": "The Lilypad", "address": "1353 Cambridge St, Cambridge, MA 02139" },
  "category": "music",
  "category_tags": ["Theater", "Music"],
  "performers": [{ "name": "The Hooley Band", "role": "headliner" }],
  "price_label": "Free",
  "price_usd": 0,
  "price_amount": 0,
  "currency": "USD",
  "is_free": true,
  "recurring": true,
  "upcoming_dates_in_series": 4,
  "details_url": "https://www.lilypadinman.com/home/2026/hooley-hour-bs5y2-pl4db9",
  "image": "https://images.squarespace-cdn.com/…/1000016764.jpg",
  "website": "https://www.lilypadinman.com/",
  "url": "https://findlocal.community/event/8f9b9068-4e11-466b-a1cc-d36230d28fdd",
  "source": "scraper_local"
}

Empty fields are omitted. date is the venue's local calendar day; price_label is the venue's wording and price_amount our parsed number in the metro's currency (price_usd repeats it for US metros); is_free is set when we can tell either way.

What a venue looks like

list_venues and get_venue return the venue's type (one of 21 fixed types, e.g. "Music Venue", "Bookstore", "Arena & Stadium"), venue_size (Small <100, Medium 100–499, Large 500+, Unknown) and capacity when a source states one. When image_attribution is present, show it next to the image — the license requires it.

Prompts that work well

Step-by-step walkthrough: How to connect FindLocal to Claude, Cursor and other AI assistants.