# What's Up In: local events

> Read-only search of upcoming local events worldwide: music, comedy, AI/tech, arts, food, sports.

- name: ai.whatsupin/events
- version: 0.3.0
- connection class: R0 (autonomous)
- trust: 83/100 flags: no-repository
- quality: 89/100 (new)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/ai.whatsupin%2Fevents
- tools: https://api.protogrid.dev/v1/servers/ai.whatsupin%2Fevents/tools

**An agent can connect right now, no human step.** Remote endpoint, no authentication, reachable on the last probe.

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "events": {
      "type": "http",
      "url": "https://whatsupin.ai/mcp"
    }
  }
}
```


## Trust

- hygiene: 80
- liveness: 100
- freshness: 100
- provenance: 55
- drivers: +dns-namespace +website +reachable +uptime-100% +updated-1d-ago -no-repository
- Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed.

## Quality 89/100 (new)

### protocol: 75 (weight 25)

- warn `protocol.modern`: newest supported version is 2025-11-25; 2026-07-28 not supported, older versions are deprecated until 2027-07-28
- n/a `protocol.stateless`: only applies to 2026-07-28 servers
- pass `protocol.transport`: streamable HTTP
- n/a `protocol.list_ttl`: only applies to 2026-07-28 servers

### authorization: n/a (weight 15)

- n/a `auth.prm`, `auth.as_metadata`, `auth.cimd`: no remote uses OAuth
- n/a `auth.secret_in_url`: no templated URL

### tool hygiene: 100 (weight 30)

- pass `tools.descriptions`: every tool has a description
- pass `tools.description_length`: descriptions are concise
- pass `tools.schemas`: every tool has an object input schema
- pass `tools.annotations`: 6 of 6 tools declare readOnlyHint or destructiveHint
- pass `tools.directory_hints`: every tool declares readOnlyHint, destructiveHint, idempotentHint and openWorldHint
- pass `tools.token_cost`: about 3,344 tokens to load every tool
- pass `tools.api_dump`: tools are not a one-to-one API dump

### stability: n/a (weight 15)

- n/a `stability.changes`, `stability.rug_pull`: tool history recorded for 5 of the 7 days needed

### dependencies: n/a (weight 15)

- n/a `deps.known_vulns`, `deps.mcp_sdk_version`, `deps.resolvable`: no npm or PyPI package

- tools: 6, about 3,344 tokens to load them all
- tool set hash: c29d08ddb53f1e2fe54b05e3b89d8ebe
- tools last changed: 2026-10-20T21:47:42.830Z
- badge: [![protogrid quality](https://protogrid.dev/badge/ai.whatsupin/events.svg)](https://protogrid.dev/servers/ai.whatsupin/events)
- Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed.

### Tool changes

- 2026-10-20 `list_upcoming` changed (inputSchema)
- 2026-10-20 `search_events` changed (inputSchema)
- 2026-10-19 `get_city` added
  - Get what one What's Up In city covers: how many upcoming events it lists and for which dates, when its data was last published, how many sources feed it, and upcoming events per category, topic, neighborhood and town. Call it before searching a city to pick valid category, topic, neighborhood and town values, or to tell a user what that city covers; it returns counts only, no events (use search_events or list_upcoming for those, list_cities for every city at once). No sign-in; each client gets 30 calls a minute and 2,500 event rows an hour.
- 2026-10-19 `list_cities` changed (description, outputSchema) **meaning changed**
  - before: The cities What's Up In covers, each with its site, its own MCP endpoint, and how many travel-worthy events it currently indexes.
  - after: List every city What's Up In covers, with its site, its own MCP endpoint, its status (live or beta) and how many travel-worthy events it indexes now. Call it to find valid `city` values for search_events, list_upcoming, get_event and get_city, or names for search_across_cities' `cities`; for one city's neighborhoods, topics and event counts use get_city. Takes no arguments; the list changes only when a city launches. No sign-in; each client gets 30 calls a minute and 2,500 event rows an hour.
- 2026-10-19 `search_across_cities` changed (description, inputSchema, outputSchema) **meaning changed**
  - before: Search upcoming travel-worthy events across every What's Up In city at once (Boston, Chicago, Los Angeles, Orange County, Sacramento, San Diego, San Francisco, Seattle, Albuquerque, Almaty, Anchorage, Atlanta, Baltimore, Bangkok, Beijing, Berlin, Buffalo, Cairo, Cancún, Cape Town, Cincinnati, Cleveland, Dallas-Fort Worth, DC, Denver, Detroit, Guangzhou, Havana, Honolulu, Houston, Inland Empire, Las Vegas, London, Mexico City, Miami, Minneapolis-St. Paul, Montreal, Nashville, New Orleans, New York, Paris, Philadelphia, Phoenix, Pittsburgh, Portland, Richmond, Rome, Salt Lake City, San Juan, Savannah, Seoul, Shanghai, St. Louis, Sydney, Tokyo, Toronto, Vancouver): where an artist, band, comedian or team is playing, which cities have a festival, conference or expo, big arena shows, races. Only events worth a trip are indexed (named performers, festivals, conferences/expos, arena shows, games, races), not every local listing; for everything in one city, use search_events with its city. Each result names its city and links to the original listing (`link`) and the event on that city's site (`on_site`). `searched` says which cities were included and how fresh each is.
  - after: Search upcoming travel-worthy events in every What's Up In city at once: where an artist, band, comedian or team is playing, which cities have a festival, conference or expo, big arena shows, games and races. Only events worth a trip are indexed (named performers, festivals, conferences/expos, arena shows, games, races), not every local listing: for everything in one city (small gigs, classes, meetups) use search_events with its city. Give a `query`, at least one of `kinds`, or a place. Each result names its city and links to the original listing (`link`) and the event on that city's site (`on_site`); `searched` says which cities were included and how fresh each is. No sign-in; each client gets 30 calls a minute and 2,500 event rows an hour.
- 2026-10-19 `get_event` changed (description, inputSchema, outputSchema) **meaning changed**
  - before: Look up one upcoming event by the `id` search_events or list_upcoming returned, with its source link and first_seen / last_seen / last_fetched dates.
  - after: Get the full listing for one upcoming event by the `id` that search_events or list_upcoming returned, passing the same `city` it came from: title, dates, venue, price (all-in, or "See tickets"), the original listing (`link`), every source that lists it and first_seen / last_seen / last_fetched dates. Ids stay the same while an event is listed; a past or removed event returns an error, so search again. (search_across_cities results carry `on_site` links instead.) No sign-in; each client gets 30 calls a minute and 2,500 event rows an hour.
- 2026-10-19 `list_upcoming` changed (description, inputSchema, outputSchema) **meaning changed**
  - before: The next N days of events in one What's Up In city, optionally one category, topic or place. `by_day` counts every match per date; over `limit`, the rows shown are spread across the days.
  - after: Browse the next N days of events in one What's Up In city, day by day, with no search words. `by_day` counts every match per date, and when more events match than `limit` the rows are spread evenly across the days, so each day is represented. Use it for overviews like "what's happening in <city> this week"; for search words, free-only, a town or exact from/to dates use search_events, and for one event's details get_event. Optional filters: one category or topic, and a place: `neighborhood` keeps events inside a named area (radius_km widens it past the boundary), `near` ranks events by distance from a place or "lat,lon" within radius_km. get_city lists valid neighborhood names. No sign-in; each client gets 30 calls a minute and 2,500 event rows an hour.
- 2026-10-19 `search_events` changed (description, inputSchema, outputSchema) **meaning changed**
  - before: Search every upcoming event in one What's Up In city (Boston, Chicago, Los Angeles, Orange County, Sacramento, San Diego, San Francisco, Seattle, Albuquerque, Almaty, Anchorage, Atlanta, Baltimore, Bangkok, Beijing, Berlin, Buffalo, Cairo, Cancún, Cape Town, Cincinnati, Cleveland, Dallas-Fort Worth, DC, Denver, Detroit, Guangzhou, Havana, Honolulu, Houston, Inland Empire, Las Vegas, London, Mexico City, Miami, Minneapolis-St. Paul, Montreal, Nashville, New Orleans, New York, Paris, Philadelphia, Phoenix, Pittsburgh, Portland, Richmond, Rome, Salt Lake City, San Juan, Savannah, Seoul, Shanghai, St. Louis, Sydney, Tokyo, Toronto, Vancouver): music, dance, AI/tech, arts, comedy, food, sports, classes, volunteering, street fairs. Use it for "what's on in <city> this weekend", "free comedy near <neighborhood>" and the like. All words in `query` must match title/location/performers/organizer/tags. Dates are the city's local dates, YYYY-MM-DD. Each event links to its original listing (`link`) and carries an `id` for get_event.
  - after: Search every upcoming event in one What's Up In city by words, dates, price, topic or place: music, dance, AI/tech, arts, comedy, food, sports, classes, volunteering, street fairs. Use it whenever the question has search words, a date range ("this weekend": from/to), free-only, a town or an area; for a day-by-day overview of the next few days with no search words use list_upcoming, and for an artist, festival or conference in several cities use search_across_cities. All words in `query` must appear in the title, venue, performers, organizer or tags; dates are the city's local dates. Results come earliest first, at most `limit`; `count` says how many matched in total, so narrow the search rather than paging. Each event has its original listing (`link`) and an `id` for get_event. No sign-in; each client gets 30 calls a minute and 2,500 event rows an hour.
- 2026-10-18 `search_across_cities` changed (description, inputSchema)
  - before: Search upcoming travel-worthy events across every What's Up In city at once (Boston, Chicago, Los Angeles, Orange County, Sacramento, San Diego, San Francisco, Seattle, Almaty, Anchorage, Atlanta, Baltimore, Bangkok, Beijing, Berlin, Cairo, Cancún, Cape Town, Cincinnati, Cleveland, Dallas-Fort Worth, DC, Denver, Detroit, Guangzhou, Havana, Honolulu, Houston, Inland Empire, Las Vegas, London, Mexico City, Miami, Minneapolis-St. Paul, Montreal, Nashville, New Orleans, New York, Paris, Philadelphia, Phoenix, Pittsburgh, Portland, Richmond, Rome, Salt Lake City, San Juan, Savannah, Seoul, Sydney, Tokyo, Toronto, Vancouver): where an artist, band, comedian or team is playing, which cities have a festival, conference or expo, big arena shows, races. Only events worth a trip are indexed (named performers, festivals, conferences/expos, arena shows, games, races), not every local listing; for everything in one city, use search_events with its city. Each result names its city and links to the original listing (`link`) and the event on that city's site (`on_site`). `searched` says which cities were included and how fresh each is.
  - after: Search upcoming travel-worthy events across every What's Up In city at once (Boston, Chicago, Los Angeles, Orange County, Sacramento, San Diego, San Francisco, Seattle, Albuquerque, Almaty, Anchorage, Atlanta, Baltimore, Bangkok, Beijing, Berlin, Buffalo, Cairo, Cancún, Cape Town, Cincinnati, Cleveland, Dallas-Fort Worth, DC, Denver, Detroit, Guangzhou, Havana, Honolulu, Houston, Inland Empire, Las Vegas, London, Mexico City, Miami, Minneapolis-St. Paul, Montreal, Nashville, New Orleans, New York, Paris, Philadelphia, Phoenix, Pittsburgh, Portland, Richmond, Rome, Salt Lake City, San Juan, Savannah, Seoul, Shanghai, St. Louis, Sydney, Tokyo, Toronto, Vancouver): where an artist, band, comedian or team is playing, which cities have a festival, conference or expo, big arena shows, races. Only events worth a trip are indexed (named performers, festivals, conferences/expos, arena shows, games, races), not every local listing; for everything in one city, use search_events with its city. Each result names its city and links to the original listing (`link`) and the event on that city's site (`on_site`). `searched` says which cities were included and how fresh each is.
- 2026-10-18 `get_event` changed (inputSchema)

Full history: https://api.protogrid.dev/v1/servers/ai.whatsupin%2Fevents/changes

## Remotes

- https://whatsupin.ai/mcp (streamable-http, auth none, reachable true, uptime30d 1)

## Packages

_none_

## Tools (6)

- `get_city`: Get what one What's Up In city covers: how many upcoming events it lists and for which dates, when its data was last published, how many sources feed it, and upcoming events per category, topic, neighborhood and town. Call it before searching a city to pick valid category, topic, neighborhood and town values, or to tell a user what that city covers; it returns counts only, no events (use search_events or list_upcoming for those, list_cities for every city at once). No sign-in; each client gets 30 calls a minute and 2,500 event rows an hour.
- `get_event`: Get the full listing for one upcoming event by the `id` that search_events or list_upcoming returned, passing the same `city` it came from: title, dates, venue, price (all-in, or "See tickets"), the original listing (`link`), every source that lists it and first_seen / last_seen / last_fetched dates. Ids stay the same while an event is listed; a past or removed event returns an error, so search again. (search_across_cities results carry `on_site` links instead.) No sign-in; each client gets 30 calls a minute and 2,500 event rows an hour.
- `list_cities`: List every city What's Up In covers, with its site, its own MCP endpoint, its status (live or beta) and how many travel-worthy events it indexes now. Call it to find valid `city` values for search_events, list_upcoming, get_event and get_city, or names for search_across_cities' `cities`; for one city's neighborhoods, topics and event counts use get_city. Takes no arguments; the list changes only when a city launches. No sign-in; each client gets 30 calls a minute and 2,500 event rows an hour.
- `list_upcoming`: Browse the next N days of events in one What's Up In city, day by day, with no search words. `by_day` counts every match per date, and when more events match than `limit` the rows are spread evenly across the days, so each day is represented. Use it for overviews like "what's happening in <city> this week"; for search words, free-only, a town or exact from/to dates use search_events, and for one event's details get_event. Optional filters: one category or topic, and a place: `neighborhood` keeps events inside a named area (radius_km widens it past the boundary), `near` ranks events by distance from a place or "lat,lon" within radius_km. get_city lists valid neighborhood names. No sign-in; each client gets 30 calls a minute and 2,500 event rows an hour.
- `search_across_cities`: Search upcoming travel-worthy events in every What's Up In city at once: where an artist, band, comedian or team is playing, which cities have a festival, conference or expo, big arena shows, games and races. Only events worth a trip are indexed (named performers, festivals, conferences/expos, arena shows, games, races), not every local listing: for everything in one city (small gigs, classes, meetups) use search_events with its city. Give a `query`, at least one of `kinds`, or a place. Each result names its city and links to the original listing (`link`) and the event on that city's site (`on_site`); `searched` says which cities were included and how fresh each is. No sign-in; each client gets 30 calls a minute and 2,500 event rows an hour.
- `search_events`: Search every upcoming event in one What's Up In city by words, dates, price, topic or place: music, dance, AI/tech, arts, comedy, food, sports, classes, volunteering, street fairs. Use it whenever the question has search words, a date range ("this weekend": from/to), free-only, a town or an area; for a day-by-day overview of the next few days with no search words use list_upcoming, and for an artist, festival or conference in several cities use search_across_cities. All words in `query` must appear in the title, venue, performers, organizer or tags; dates are the city's local dates. Results come earliest first, at most `limit`; `count` says how many matched in total, so narrow the search rather than paging. Each event has its original listing (`link`) and an `id` for get_event. No sign-in; each client gets 30 calls a minute and 2,500 event rows an hour.
