@pipeworx/waqi
Connect: https://pipeworx.io/mcp — every tool in the catalog, including @pipeworx/waqi’s. Install: one-click buttons
Connect to just the @pipeworx/waqi pack
https://gateway.pipeworx.io/waqi/mcp — only @pipeworx/waqi’s own tools, nothing else in the catalog.
No MCP client? Skip the connection: POST https://gateway.pipeworx.io/v1/tools/search_packs {"query":"..."} to find a tool below, GET /v1/tools/<name> for its schema, POST the same URL with arguments for the data — see For AI agents.
Tools: 4
World Air Quality Index MCP — 12k+ real-time AQI stations worldwide.
Tools
get_aqi_by_city(city)get_aqi_by_location(latitude, longitude)get_aqi_by_station(station_id)search_stations(keyword)
Auth
- Platform key: gateway env
PLATFORM_WAQI_KEY. - BYO:
?_apiKey=<token>after registering at https://aqicn.org/data-platform/token/ (free).
Data source
https://api.waqi.info/ — ?token= query param.
Freshness (fleet #3741)
A monitoring station that stops reporting keeps serving its last value, so an
upstream feed can answer with a plausible AQI that is months old. Every reading
from this pack therefore carries measured_at, the station identity,
data_age_hours, freshness (fresh | stale | unknown) and
freshness_bound_hours (24).
get_aqi_by_cityandget_aqi_by_locationnever present a reading older than 24h as current. If the matched station is stale they use the nearest station within 100 km that is reporting (station_selection: "fallback_fresher_station", withskipped_stale_stationnaming what was passed over), or they error naming the station, itsmeasured_atand its age.get_aqi_by_stationreturns the station that was asked for, labelled with its age, because the caller chose it.- City matching: see “Place resolution” below.
Place resolution (fleet #3751)
The publisher’s city resolver can map a name to the wrong place (“Venice” to a
station in Dayton, Ohio). get_aqi_by_city therefore accepts "city" or
"city, country" (also "Roma Italia"), and verifies that the matched
station’s own name is the requested city (exact, a listed exonym such as
Venice/Venezia, or one letter off such as Rome/Roma) and, when a qualifier is
given, that its country or region agrees. A station that fails is never served:
if stations whose own name is the city report in one place, that one is used
(station_selection: "resolved_by_search", rejected_upstream_match names what
was refused); if several places share the name they are listed; otherwise the
call errors naming the station it matched. Every city response carries a
place block with the requested and matched place.
Source: World Air Quality Index Project, station network.
Tools
- get_aqi_by_city — Latest AQI for a city from the World Air Quality Index Project station network. Accepts “city” or “city, country” (e.g. “Rome, Italy”). The matched station is checked against the requested place: a st
- get_aqi_by_location — Latest AQI for the WAQI station nearest a lat/lon. Carries measured_at, data_age_hours and freshness; a station silent for over 24h is replaced by a reporting one within 100 km or the call errors.
- get_aqi_by_station — Latest AQI for a specific WAQI station by UID (numeric). Returned as asked even if the station has gone quiet, so check freshness and data_age_hours (stale = over 24h).
- search_stations — Search stations by keyword (city/region name). Returns station UID, name, current AQI, and location.
Tools
get_aqi_by_city— Latest AQI for a city from the World Air Quality Index Project station network. Accepts city or city, country (e.g. Rome, Italy ). The matched station is checked against the requested place: a stationget_aqi_by_location— Latest AQI for the WAQI station nearest a lat/lon. Carries measured_at, data_age_hours and freshness; a station silent for over 24h is replaced by a reporting one within 100 km or the call errors.get_aqi_by_station— Latest AQI for a specific WAQI station by UID (numeric). Returned as asked even if the station has gone quiet, so check freshness and data_age_hours (stale = over 24h).search_stations— Search stations by keyword (city/region name). Returns station UID, name, current AQI, and location.