Live events in 50 cities: AI/tech meetups, hackathons, conferences, concerts. Free, read-only.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
A small curated set of events worth going to in a city over the next few days, chosen for variety rather than raw recency. Use when someone asks what is worth doing rather than for an exhaustive list. Read-only.
City slug or name.
How many picks to return. Capped at 10 on purpose — this is a curated shortlist chosen for variety, not a search. Use arclight_search_events when an exhaustive list is wanted.
Output format. 'markdown' to read back to a person, 'json' to compute over.
A small curated set of events worth going to in a city over the next few days, chosen for variety rather than raw recency. Use when someone asks what is worth doing rather than for an exhaustive list. Read-only.
| Argument | Type | Description |
|---|---|---|
| city* | string | City slug or name. |
| limit | integer | How many picks to return. Capped at 10 on purpose — this is a curated shortlist chosen for variety, not a search. Use arclight_search_events when an exhaustive list is wanted. |
| response_format | string | Output format. 'markdown' to read back to a person, 'json' to compute over. |
{
"type": "object",
"required": [
"city"
],
"properties": {
"city": {
"type": "string",
"description": "City slug or name."
},
"limit": {
"type": "integer",
"default": 3,
"maximum": 10,
"minimum": 1,
"description": "How many picks to return. Capped at 10 on purpose — this is a curated shortlist chosen for variety, not a search. Use arclight_search_events when an exhaustive list is wanted."
},
"response_format": {
"enum": [
"markdown",
"json"
],
"type": "string",
"default": "markdown",
"description": "Output format. 'markdown' to read back to a person, 'json' to compute over."
}
},
"additionalProperties": false
}Fetch the full detail of one event by its Arclight slug (or its arclight.events URL): title, start time in the venue's own timezone, price, tags, description and the source link. Read-only.
| Argument | Type | Description |
|---|---|---|
| slug* | string | Event slug, or the full arclight.events/event/<slug> URL. |
| response_format | string | Output format. 'markdown' to read back to a person, 'json' to compute over. |
{
"type": "object",
"required": [
"slug"
],
"properties": {
"slug": {
"type": "string",
"description": "Event slug, or the full arclight.events/event/<slug> URL."
},
"response_format": {
"enum": [
"markdown",
"json"
],
"type": "string",
"default": "markdown",
"description": "Output format. 'markdown' to read back to a person, 'json' to compute over."
}
},
"additionalProperties": false
}List every metro Arclight covers, with the slug to pass to the other tools, plus the available topic filters. Call this first when unsure whether a city is covered. Read-only, no arguments required.
| Argument | Type | Description |
|---|---|---|
| response_format | string | Output format. 'markdown' to read back to a person, 'json' to compute over. |
{
"type": "object",
"properties": {
"response_format": {
"enum": [
"markdown",
"json"
],
"type": "string",
"default": "markdown",
"description": "Output format. 'markdown' to read back to a person, 'json' to compute over."
}
},
"additionalProperties": false
}Search real, upcoming events in a city, optionally narrowed to a topic and timeframe. Every event is aggregated from a live source (Luma, Ticketmaster, SeatGeek, Skiddle, confs.tech and others) and links back to it — Arclight never invents listings and holds no tickets. Read-only. Returns paginated results with has_more/next_offset.
| Argument | Type | Description |
|---|---|---|
| city* | string | City slug or name, e.g. "san-francisco". See arclight_list_cities. |
| limit | integer | How many events to return in one call. Pair with offset to page. |
| topic | string | Optional topic filter. |
| offset | integer | How many events to skip, for paging. Pass the next_offset from the previous response rather than computing it; when has_more is false there is nothing left to fetch. Offset applies within the chosen timeframe, so changing timeframe invalidates an offset from an earlier call. |
| timeframe | string | How far ahead to look, measured from now. Past events are never returned. |
| response_format | string | Output format. 'markdown' to read back to a person, 'json' to compute over. |
{
"type": "object",
"required": [
"city"
],
"properties": {
"city": {
"type": "string",
"description": "City slug or name, e.g. \"san-francisco\". See arclight_list_cities."
},
"limit": {
"type": "integer",
"default": 20,
"maximum": 50,
"minimum": 1,
"description": "How many events to return in one call. Pair with offset to page."
},
"topic": {
"enum": [
"ai",
"tech",
"software",
"meetups",
"hackathons",
"conferences",
"networking",
"music",
"arts",
"nightlife"
],
"type": "string",
"description": "Optional topic filter."
},
"offset": {
"type": "integer",
"default": 0,
"maximum": 500,
"minimum": 0,
"description": "How many events to skip, for paging. Pass the next_offset from the previous response rather than computing it; when has_more is false there is nothing left to fetch. Offset applies within the chosen timeframe, so changing timeframe invalidates an offset from an earlier call."
},
"timeframe": {
"enum": [
"today",
"tomorrow",
"this_week",
"this_month",
"upcoming"
],
"type": "string",
"default": "this_week",
"description": "How far ahead to look, measured from now. Past events are never returned."
},
"response_format": {
"enum": [
"markdown",
"json"
],
"type": "string",
"default": "markdown",
"description": "Output format. 'markdown' to read back to a person, 'json' to compute over."
}
},
"additionalProperties": false
}