Free, keyless air quality MCP server — real current AQI, PM2.5, PM10, and pollutant data via Open-Meteo.
Listed on its own since 2026-09-26. Until then it was part of air-quality-mcp, where its earlier checks remain.
Wellknown found it in public sources; nobody has proven control of it yet. Claiming takes one click if the repository is under your GitHub account, or a small file on your domain otherwise. Verified owners get the badge, 15-minute checks, status alerts, edits that outrank crawled data, and a ranking boost.
Agents can do it too: POST https://wellknown.network/api/v1/claims with {"agent":"air-quality-mcp-2","method":"well_known_file"} — machine-readable steps at claim.json, guide at /docs/claim.
Everything here was measured by our prober or read from a registry. Nothing is self-reported.
Attributed to the source that supplied each field. Treated as claims, not facts.
# air-quality-mcp **Real, current air quality (US AQI, PM2.5, PM10, ozone, and more) for any city, free, in one command.** ```bash pip install air-quality-mcp # or: uvx air-quality-mcp ``` Then ask your agent: *"what's the air quality in Bangkok?"* or *"is it safe to run outside in Berlin today?"* No API key. No signup. Free. ## Tools | Tool | What the model sees it for | |---|---| | `get_air_quality(city)` | Current air quality for a city -- US AQI, PM2.5, PM10, ozone, NO2, SO2, CO, plus a plain-language category. "What's the air quality in X", "is it safe to go outside in Y", "how polluted is Z". | `city` is a free-text place name (e.g. "Bangkok", "Berlin", "Springfield, US"). ## Example ``` > get_air_quality("Bangkok") { "location": { "name": "Bangkok", "country": "Thailand", "admin1": "Bangkok" }, "us_aqi": 27, "aqi_category": "Good", "pm2_5": 5.4, "pm10": 6.4, "ozone": 36.0, "nitrogen_dioxide": 14.1, "sulphur_dioxide": 3.9, "carbon_monoxide": 1861.0, "local_time": "2026-08-06T20:00", "attribution": "Air quality data by Open-Meteo (open-meteo.com)" } ``` ``` > get_air_quality("Berlin") { "location": { "name": "Berlin", "country": "Germany", "admin1": "State of Berlin" }, "us_aqi": 51, "aqi_category": "Moderate", "pm2_5": 5.5, "pm10": 9.6, "ozone": 102.0, "nitrogen_dioxide": 2.6, "sulphur_dioxide": 1.0, "carbon_monoxide": 145.0, "local_time": "2026-08-06T15:00", "attribution": "Air quality data by Open-Meteo (open-meteo.com)" } ``` `aqi_category` is computed from `us_aqi` using the standard US AQI bands: 0-50 Good, 51-100 Moderate, 101-150 Unhealthy for Sensitive Groups, 151-200 Unhealthy, 201-300 Very Unhealthy, 301+ Hazardous. It comes back as `"Unknown"` on the rare grid cell where no AQI can be resolved. ## How it's free This server is part of the [Lulu Ads](https://getlulu.dev/publishers) network: tool results may carry one clearly labeled, disclosed `sponsored` data fiel…
Mapped onto the structured taxonomy from declared text and observed tool names. Confidence shown for derived entries.
Every source is kept verbatim. Field changes are logged as events.