local-events-mcp
A small MCP server with semantic event tools:
list_sources()— show configured sources and whether each source-specific scraper is functionalscraper_is_valid(source)— health-check a source-specific scraper and return the extracted semantic payloadget_events_for_time_period(source, days, as_of=None)— return semantic events for a source over a time windowlist_events_by_source_and_date(source, date)— legacy compatibility wrapper for one source on one day
Source config
Edit sources/<source type>/<source>.json to add or update sources. Each source lives in its own file.
Current categories:
theatermusiccomedyfairsmisc
The server also still understands the legacy sources.json file, but the categorized folder is the preferred layout.
Each source now points at a source-specific Python module under src/local_events_mcp/source_plugins/. The module path is stored in each source JSON and is loaded from disk, so slugs like the-hideout-theatre remain valid.
modulepoints at the source-specific plugin module- the module exposes
scraper_is_valid()andget_events_for_time_period() - tools return semantic objects only: title, event type, description, date, location, event URL, price, and metadata
Run
python -m local_events_mcp
Or use the installed console script:
local-events-mcp










