luma-discovery
This server does not currently have a deployable release on Glama. Follow the repository's setup instructions to install and configure it for your MCP client, including any required credentials and local dependencies.
Why luma-discovery
Luma hosts a large share of the tech, startup and community events in many cities, but there is no simple way to ask it "what's on near here this week?" from your own backend. Luma's documented API is for organizers managing their own calendars and needs Luma Plus. Assistant-side Luma connectors can't be called from your server.
luma-discovery does the same public discovery the lu.ma website does for signed-out visitors, then hands you tidy records: title, time and timezone, venue and coordinates, organizer, price, registration status and an aggregate guest count. People's identities never leave the library.
Discover here. Register on Luma. Every result carries the official event URL, so a person signs up there themselves.
Related MCP server: Luma Events MCP Server
Quick start
Requires Node 22.13+ (or any bundler that compiles TypeScript, such as Wrangler, Vite or esbuild). The package ships TypeScript source.
Try it in 30 seconds (no account, no key):
git clone https://github.com/mihirkavi/luma-discovery && cd luma-discovery
npm install
npx tsx scripts/nearby.ts 37.7749 -122.4194 3 # latitude, longitude, days aheadUse it as a library:
npm install github:mihirkavi/luma-discoveryimport { LumaDiscoveryClient } from 'luma-discovery';
const luma = new LumaDiscoveryClient();
const { events } = await luma.searchNearby({
latitude: 37.3382,
longitude: -121.8863,
startsAfter: new Date(),
startsBefore: new Date(Date.now() + 7 * 86_400_000),
});
const detail = await luma.getEvent(events[0].url); // plain-text description and categoriesUse it from an AI agent (MCP)
npm run mcp # stdio transportAdd it to Claude Code:
claude mcp add luma-discovery -- npx tsx /path/to/luma-discovery/src/mcp.tsTool | What it does |
| Public events near a latitude/longitude, optionally between |
| Public details for one event by |
Both tools are annotated read-only. The server tells the model that event text is untrusted data and that it cannot register anyone.
The open event record
Every result uses the same small, provider-neutral shape as structured-event-feeds (ICS feeds, Meetup, Eventbrite), so you can mix sources or swap adapters without changing your code.
Field | Example |
|
|
| ISO 8601 instants plus the event's IANA zone |
| name, address, city, region, country, latitude, longitude |
| the hosting calendar's name and URL, or the listed host names for personal calendars |
|
|
|
|
| an aggregate number only, never identities |
| series info; categories and description come from |
The full TypeScript types are in src/types.ts.
What it deliberately does not do
No registration, sign-in or account actions. Results link to the official event page.
No attendee data. Only the aggregate guest count survives normalization.
No keyword search. Luma's public discovery is geographic; filter results yourself.
Honest status
v0.1. Verified live on 26 October 2026 with a San Francisco search (the run in the screenshot above), and earlier on 13 October 2026 with Bay Area searches.
This is not an official Luma API. It reads the undocumented
api.lu.maJSON endpoints that power Luma's public website. They can change or disappear without notice. Luma's robots.txt does not disallow them.Keep request volume modest and cache results. The client sends an identifying user agent and has a 10-second timeout.
Not published to npm yet; install from GitHub.
npm test # unit tests with recorded-shape fixtures (no network)
npm run typecheck
npm run smoke # live check against Luma (prints counts and titles only)
npx tsx scripts/nearby.ts [lat] [lng] [days] # the demo shown abovePath | What it is |
| |
The stdio MCP server | |
The open event record types | |
Live smoke check and the | |
Offline tests with recorded response shapes |
CI runs the typecheck and tests on every push and pull request.
Part of Open Media Events
luma-discovery is one of the event sources behind Open Media Events, and it works perfectly well on its own.
License
Released under the MIT License.
This server cannot be deployed
Maintenance
Related MCP Connectors
Luma (lu.ma) events as JSON by city, category or calendar: date, venue, hosts, tickets. $1.50/1k
Routing, geocoding, places, matrix and map tools for location-aware AI workflows.
Read-only search of upcoming local events worldwide: music, comedy, AI/tech, arts, food, sports.
Related MCP Servers
- FlicenseBqualityDmaintenanceProvides access to event data from the Eventfinda API, allowing AI agents to search for events by location and retrieve detailed information including descriptions, dates, addresses, and ticket details.14 npm-
- AlicenseAqualityDmaintenanceDiscovers events from Luma's public feed and subscribed calendars, with distance filtering, category search, and ICS export. No API key required for basic discovery.422 PyPIMIT
- AlicenseAqualityCmaintenanceProvides read-only tools for discovering, searching, and browsing events from Luma, Posh, and Partiful platforms, including event details and guest lists, with optional authenticated access to a user's Luma events.10MIT
- AlicenseNot gradedqualityBmaintenanceEnables AI agents to search event calendars by keyword and list upcoming or date-filtered events from a chosen calendar, returning titles, dates, venues, coordinates, and keywords.349 npmMIT