ColorfulClouds · Capability

Caiyun Weather API — Air Quality

Air Quality — Caiyun realtime pollutant readings (PM2.5, PM10, O3, SO2, NO2, CO) and dual-standard AQI surface. 1 operation. Lead operation: Caiyun Weather Get Realtime Air Quality. Self-contained Naftiko capability covering one ColorfulClouds business surface.

Run with Naftiko Caiyun WeatherAir QualityAQI

What You Can Do

GET
Getrealtimeairquality — Get realtime AQI and pollutant readings.
/v1/air-quality/{lnglat}

MCP Tools

get-realtime-air-quality

Get realtime PM2.5/PM10/O3/SO2/NO2/CO and AQI (CHN + USA standards) at a location.

read-only idempotent

Capability Spec

caiyun-weather-air-quality.yaml Raw ↑
naftiko: "1.0.0-alpha2"

info:
  label: "Caiyun Weather API — Air Quality"
  description: >-
    Air Quality — Caiyun realtime pollutant readings (PM2.5, PM10, O3, SO2,
    NO2, CO) and dual-standard AQI surface. 1 operation. Lead operation:
    Caiyun Weather Get Realtime Air Quality. Self-contained Naftiko
    capability covering one ColorfulClouds business surface.
  tags:
    - Caiyun Weather
    - Air Quality
    - AQI
  created: "2026-05-30"
  modified: "2026-05-30"

binds:
  - namespace: env
    keys:
      CAIYUN_WEATHER_API_TOKEN: CAIYUN_WEATHER_API_TOKEN

capability:

  consumes:
    - type: http
      namespace: "caiyun-weather-air-quality"
      baseUri: "https://api.caiyunapp.com/v2.6"
      description: "Caiyun Weather realtime air quality endpoint. Self-contained."
      authentication:
        type: apikey
        key: token
        value: "{{env.CAIYUN_WEATHER_API_TOKEN}}"
        placement: path
      resources:
        - name: "air-quality"
          path: "/{token}/{lnglat}/air-quality"
          operations:
            - name: "getRealtimeAirQuality"
              method: GET
              description: "Returns realtime pollutant concentrations plus AQI under Chinese (HJ 633-2012) and US EPA standards."
              inputParameters:
                - name: "lnglat"
                  in: path
                  type: string
                  required: true
                  description: "Longitude,latitude tuple (lng,lat)."
                - name: "lang"
                  in: query
                  type: string
                  required: false
                  description: "Response language."
              outputRawFormat: json
              outputParameters:
                - name: result
                  type: object
                  value: "$."

  exposes:
    - type: rest
      namespace: "caiyun-weather-air-quality-rest"
      port: 8080
      description: "REST adapter for Caiyun Weather Air Quality."
      resources:
        - path: "/v1/air-quality/{lnglat}"
          name: "air-quality"
          description: "REST surface for realtime air quality."
          operations:
            - method: GET
              name: "getRealtimeAirQuality"
              description: "Get realtime AQI and pollutant readings."
              call: "caiyun-weather-air-quality.getRealtimeAirQuality"
              with:
                "lnglat": "rest.lnglat"
                "lang": "rest.lang"
              outputParameters:
                - type: object
                  mapping: "$."

    - type: mcp
      namespace: "caiyun-weather-air-quality-mcp"
      port: 9090
      transport: http
      description: "MCP adapter for Caiyun Weather Air Quality."
      tools:
        - name: "get-realtime-air-quality"
          description: "Get realtime PM2.5/PM10/O3/SO2/NO2/CO and AQI (CHN + USA standards) at a location."
          hints:
            readOnly: true
            destructive: false
            idempotent: true
          call: "caiyun-weather-air-quality.getRealtimeAirQuality"
          with:
            "lnglat": "tools.lnglat"
            "lang": "tools.lang"
          outputParameters:
            - type: object
              mapping: "$."