@pipeworx/china-air-quality

Connect: https://gateway.pipeworx.io/china-air-quality/mcp · Install: one-click buttons

Tools: 3

Real-time nationwide air quality (空气质量) for China — AQI, pollutant levels and concentrations (PM2.5, PM10, O3, NO2, SO2, CO), quality rating and monitoring-station detail. Keyless.

Of the 20 China-government sources probed 2026-09-07 (docs/china-vertical-plan.md §2), this was the only one that answered clean JSON with no session cookie, Referer trick or undocumented catalog id. No external demand asked for it in the prior 30 days; it is built because it is distinctive (nobody else serves CNEMC over MCP), not because a question was waiting on it.

Tools

  • china_air_quality(city) — a city’s current AQI, quality rating, primary pollutant, per-pollutant index level, and averaged station concentrations. Accepts an English city name (“Beijing”), a province (“Guangdong” resolves to its capital, Guangzhou), or the Chinese name directly (“北京市”).
  • china_air_quality_ranking(direction?, n?, pollutant?) — nationwide ranking of all 338 CNEMC-monitored cities by AQI or by one pollutant’s index level. direction: "bottom" (default) surfaces the most polluted; "top" the cleanest.
  • china_air_quality_stations(city) — every individual monitoring station within one city, with its own AQI, concentrations and coordinates — the neighborhood-level view the city-wide summary averages over.

Source

China National Environmental Monitoring Centre (中国环境监测总站), the government body that operates China’s official air-quality monitoring network:

  • https://air.cnemc.cn:18007/CityData/GetAllCityRealTimeAQIModels — all 338 cities, refreshed hourly. Carries AQI and a 1-6 index level per pollutant, but no raw concentration.
  • https://air.cnemc.cn:18007/CityData/GetAQIDataPublishLive?cityName=<市名> — station-level rows for one city, with actual pollutant concentrations (µg/m³, CO in mg/m³). GetAQIDataPublishLives (plural) is a dead path — it 404s.

china_air_quality merges both calls: city-level AQI/level/quality from the cached all-cities feed, and averaged concentrations computed from that city’s stations, because the all-cities endpoint alone never carries a concentration value.

The all-cities payload (144 KB, hourly) is cached in-isolate for 10 minutes.

City names — Chinese only on the upstream

CNEMC identifies every city by its Chinese administrative name; “Beijing” resolves nowhere on the wire. src/index.ts bundles a generated table:

  • CITY_EN_TO_ZH — Hanyu Pinyin romanization of all 338 published city names (administrative suffix 市/州/盟/地区/自治州 stripped), with a hand override for the handful whose common English spelling diverges from straight pinyin: Xi’an, Harbin, Urumqi, Lhasa, Hohhot, Ordos, Qiqihar, Hulunbuir.
  • PROVINCE_TO_ZH — the 31 provinces/autonomous regions/municipalities (English and Chinese name) mapped to their capital city, so “air quality in Guangdong” resolves to Guangzhou.
  • Chinese input is always accepted as-is against the 338 published names, with or without the trailing 市/州.

An unresolvable city name returns found: false with a hint rather than an upstream error — CNEMC’s own unknown-city response is a silent empty array, which would otherwise read as “no pollution data” instead of “city not recognized”.

Known limits

  • Concentrations are a station average, not a single official number. CNEMC publishes concentrations only at station grain; the city-level summary is this pack’s average across that city’s reporting stations for the current hour, stated in pollutant_note on every response.
  • A concentration below the sensor floor is excluded, not guessed. CNEMC reports some readings as <3 (below detection limit); those are dropped from the average rather than parsed as a wrong number.
  • MEE monthly city reports are HTML and out of scope for this pack — see docs/china-vertical-plan.md §2 (filed separately as a research task).

Auth

None.

Tools

  • china_air_quality — Real-time air quality (空气质量) for a Chinese city — AQI, pollutant levels and concentrations (PM2.5, PM10, O3, NO2, SO2, CO), quality rating, primary pollutant and station count. Accepts an English city
  • china_air_quality_ranking — Nationwide ranking of Chinese cities by air quality (空气质量排名) — the cleanest or most polluted cities right now, optionally ranked by a specific pollutant instead of overall AQI. Answers “which Chinese
  • china_air_quality_stations — Individual monitoring-station readings (监测站点数据) within one Chinese city — every station’s AQI, pollutant concentrations and quality rating, with station name and coordinates. Use this for neighborhood

Tools

  • china_air_quality — Real-time air quality (空气质量) for a Chinese city — AQI, pollutant levels and concentrations (PM2.5, PM10, O3, NO2, SO2, CO), quality rating, primary pollutant and station count. Accepts an English city
  • china_air_quality_ranking — Nationwide ranking of Chinese cities by air quality (空气质量排名) — the cleanest or most polluted cities right now, optionally ranked by a specific pollutant instead of overall AQI. Answers which Chinese c
  • china_air_quality_stations — Individual monitoring-station readings (监测站点数据) within one Chinese city — every station's AQI, pollutant concentrations and quality rating, with station name and coordinates. Use this for neighborhood

Regenerated from source · build September 7, 2026