Discover events from Luma — search by category, city, distance, and keywords with calendar export
Config is the same across clients — only the file and path differ.
{
"mcpServers": {
"luma-events": {
"env": {
"PYTHONPATH": "/path/to/Luma Cal MCP/src"
},
"args": [
"run",
"--directory",
"/path/to/Luma Cal MCP",
"fastmcp",
"run",
"src/luma_mcp/server.py"
],
"command": "uv"
}
}
}Are you the author?
Add this badge to your README to show your security score and help users find safe servers.
A FastMCP server that discovers events from Luma — combining the Discover feed and subscribed calendars — with distance filtering and ICS export. No API key required for basic discovery.
No automated test available for this server. Check the GitHub README for setup instructions.
Five weighted categories — click any category to see the underlying evidence.
No known CVEs.
No package registry to scan.
Click any tool to inspect its schema.
Be the first to review
Have you used this server?
Share your experience — it helps other developers decide.
Sign in to write a review.
Others in productivity / search
Web and local search using Brave Search API
Production ready MCP server with real-time search, extract, map & crawl.
The official MCP server implementation for the Perplexity API Platform
Dynamic problem-solving through sequential thought chains
MCP Security Weekly
Get CVE alerts and security updates for Luma MCP Server and similar servers.
Start a conversation
Ask a question, share a tip, or report an issue.
Sign in to join the discussion.
A FastMCP server that discovers events from Luma — combining the Discover feed and subscribed calendars — with distance filtering and ICS export. No API key required for basic discovery.
Luma's Discover API has two endpoints that behave very differently:
This MCP uses both via two search modes:
city param) — searches your preferred categories via the Category API. Deep, rich results filtered by address and distance.city) — fetches the curated top events for that city via the Place API.On first run, the server returns popular events near you (geo-biased by IP), then walks you through setting up categories, address, and login for progressively richer results.
| Tool | What it does |
|---|---|
search_events | Home mode: search by category with address/distance filtering. Travel mode: curated events for a specific city. |
set_preferences | Save default categories (list), address, and max distance. Persists in SQLite across restarts. |
get_event | Fetch full details for a single event by API id or lu.ma URL. |
export_event_ics | Generate an ICS string for any event — paste into Apple Calendar, Google Calendar, Outlook, etc. |
git clone <this-repo>
cd "Luma Cal MCP"
uv venv .venv --python 3.12
source .venv/bin/activate
uv pip install -e .
To access events from calendars you follow on Luma, install the optional auth dependencies:
uv pip install -e ".[auth]"
playwright install chromium
On first use, the raw Discover feed returns hundreds of popular events near you (geo-biased by IP). The server then walks you through setup one prompt at a time to narrow results:
Each prompt appears after returning results, so you see events immediately. After you configure a preference, the search reruns automatically and the next prompt appears. You can respond "not now" (prompt reappears next time) or "never" (permanently dismissed).
Use set_preferences to save defaults that persist across restarts:
set_preferences(address="3180 18th St, San Francisco", max_distance_miles=15)
set_preferences(categories=["ai", "tech"])
# stdio transport (for Cursor, Claude Desktop, etc.)
fastmcp run src/luma_mcp/server.py
# or directly
python -m luma_mcp.server
Subscribed calendars require a Luma session cookie. The server handles this automatically via an inline login flow.
How it works:
search_events with login=true. A Chromium browser opens to lu.ma/signin; log in normally. The session cookie is stored in the local SQLite DB.search_events with skip_login_days=N to defer (0 = ask next time, -1 = never).