opensensemap_area_average
ActiveTool of Opensensemap
Average one phenomenon across all citizen science sensors (openSenseMap / senseBox network) in an area — hyperlocal neighborhood-level temperature, PM2.5/PM10 air quality, humidity, pressure or noise from many independent community stations. Give either a bounding box or a center point + radius_km. Aggregates the latest reading per sensor over the recent window client-side (the network has no fast server-side aggregation). Phenomenon names on openSenseMap are mostly German (exact sensor titles): "Temperatur" (temperature °C), "rel. Luftfeuchte" (relative humidity %), "Luftdruck" (air pressure hPa), "PM2.5" and "PM10" (particulate matter µg/m³), "Beleuchtungsstärke" (illuminance lx), "UV-Intensität" (UV µW/cm²), "Lautstärke" (noise) — the name must match the sensor title exactly (e.g. "Temperatur", not "temperature"). Example: opensensemap_area_average({ phenomenon: "PM2.5", latitude: 52.52, longitude: 13.405, radius_km: 5 })
Parameters schema
{
"type": "object",
"required": [
"phenomenon"
],
"properties": {
"bbox": {
"type": "string",
"description": "Bounding box as \"west,south,east,north\" in degrees, e.g. \"13.3,52.45,13.5,52.55\" (overrides center+radius)"
},
"latitude": {
"type": "number",
"description": "Center latitude (use with longitude + radius_km, instead of bbox)"
},
"longitude": {
"type": "number",
"description": "Center longitude"
},
"radius_km": {
"type": "number",
"description": "Radius in km around the center, 0.1-25 (default 5)"
},
"phenomenon": {
"type": "string",
"description": "Exact phenomenon / sensor title, e.g. \"PM2.5\", \"PM10\", \"Temperatur\", \"rel. Luftfeuchte\", \"Luftdruck\", \"Lautstärke\""
},
"window_hours": {
"type": "number",
"description": "How far back to look for each sensor's latest reading, 1-24 hours (default 2)"
}
}
}No endpoints wrapped at confidence ≥ 0.70.
Parent server
Opensensemap
https://github.com/pipeworx-io/mcp-opensensemap
2/7 registries