Search local events in plain words: shows, pop-ups, markets, classes, with times, venues, prices.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Optional. "Bearer <key>" with a free key from thingstodoapi.com/signup; without one, 50 calls a day.
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.
Everything known about one event by its id (from search_events): all its tags, venue, links and times.
Everything known about one event by its id (from search_events): all its tags, venue, links and times.
| Argument | Type | Description |
|---|---|---|
| id* | string |
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string"
}
}
}The metros and cities covered, and the categories. Call it when unsure whether a city is covered.
No arguments.
{
"type": "object",
"properties": {}
}Find events happening in a city: concerts, DJ and club nights, comedy and theater, pop-ups and supper clubs, night markets and flea markets, festivals and street fairs, parties, classes, exhibitions. Pass what the user asked for in plain words as `query` ("techno this weekend in Oakland", "spooky things to do friday", "farmers market sunday morning"); time and place in the words are understood. Say who it is for in the same words ("comedy this weekend for my parents, they hate crowds", "things to do with my kids saturday"): what suits them comes first. Use `from`/`to`, `place` or `near` when you already know them exactly. Returns events with start times in the local timezone, the venue, a summary, tags, ticket and source links, and why each matched. Covers the San Francisco Bay Area today; a place outside it comes back as not covered, with no events. For more, call again with the `offset` a search returns as next_offset.
| Argument | Type | Description |
|---|---|---|
| to | string | ISO 8601 end of the window. |
| from | string | ISO 8601 start of the window. Overrides any time in the query. |
| near | object | A point to search around. |
| sort | string | |
| limit | number | How many events, 1 to 50, default 10. |
| place | string | A city or neighborhood by name, e.g. "Oakland", "the Mission". |
| query | string | What to find, in plain words. May include when, where, and who it is for. |
| offset | number | Skip this many, for the next page: pass the next_offset a search returned. |
| categories | array | Only these categories. |
{
"type": "object",
"properties": {
"to": {
"type": "string",
"description": "ISO 8601 end of the window."
},
"from": {
"type": "string",
"description": "ISO 8601 start of the window. Overrides any time in the query."
},
"near": {
"type": "object",
"required": [
"lat",
"lng"
],
"properties": {
"km": {
"type": "number",
"description": "Radius in km, default 5."
},
"lat": {
"type": "number"
},
"lng": {
"type": "number"
}
},
"description": "A point to search around."
},
"sort": {
"enum": [
"relevance",
"time"
],
"type": "string"
},
"limit": {
"type": "number",
"description": "How many events, 1 to 50, default 10."
},
"place": {
"type": "string",
"description": "A city or neighborhood by name, e.g. \"Oakland\", \"the Mission\"."
},
"query": {
"type": "string",
"description": "What to find, in plain words. May include when, where, and who it is for."
},
"offset": {
"type": "number",
"description": "Skip this many, for the next page: pass the next_offset a search returned."
},
"categories": {
"type": "array",
"items": {
"enum": [
"music",
"arts",
"social",
"festival",
"market",
"popup",
"supper_club",
"exhibition",
"class",
"sports"
],
"type": "string"
},
"description": "Only these categories."
}
}
}