OpenWeather · Capability

OpenWeather One Call and Air Pollution API — Air Pollution

OpenWeather One Call and Air Pollution API — Air Pollution. 3 operations. Lead operation: Current air pollution data for a coordinate. Self-contained Naftiko capability covering one Openweather business surface.

Run with Naftiko OpenweatherAir Pollution

What You Can Do

GET
Getcurrentairpollution — Current air pollution data for a coordinate
/v1/air-pollution
GET
Getairpollutionforecast — Hourly air pollution forecast for a coordinate
/v1/air-pollution/forecast
GET
Getairpollutionhistory — Historical air pollution data for a coordinate
/v1/air-pollution/history

MCP Tools

current-air-pollution-data-coordinate

Current air pollution data for a coordinate

read-only idempotent
hourly-air-pollution-forecast-coordinate

Hourly air pollution forecast for a coordinate

read-only idempotent
historical-air-pollution-data-coordinate

Historical air pollution data for a coordinate

read-only idempotent

Capability Spec

openweather-air-pollution.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: OpenWeather One Call and Air Pollution API — Air Pollution
  description: 'OpenWeather One Call and Air Pollution API — Air Pollution. 3 operations. Lead operation: Current air pollution
    data for a coordinate. Self-contained Naftiko capability covering one Openweather business surface.'
  tags:
  - Openweather
  - Air Pollution
  created: '2026-05-19'
  modified: '2026-05-19'
binds:
- namespace: env
  keys:
    OPENWEATHER_API_KEY: OPENWEATHER_API_KEY
capability:
  consumes:
  - type: http
    namespace: openweather-air-pollution
    baseUri: https://api.openweathermap.org/data/3.0
    description: OpenWeather One Call and Air Pollution API — Air Pollution business capability. Self-contained, no shared
      references.
    resources:
    - name: air_pollution
      path: /air_pollution
      operations:
      - name: getcurrentairpollution
        method: GET
        description: Current air pollution data for a coordinate
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: lat
          in: query
          type: number
          required: true
        - name: lon
          in: query
          type: number
          required: true
        - name: appid
          in: query
          type: string
          required: true
    - name: air_pollution-forecast
      path: /air_pollution/forecast
      operations:
      - name: getairpollutionforecast
        method: GET
        description: Hourly air pollution forecast for a coordinate
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: lat
          in: query
          type: number
          required: true
        - name: lon
          in: query
          type: number
          required: true
        - name: appid
          in: query
          type: string
          required: true
    - name: air_pollution-history
      path: /air_pollution/history
      operations:
      - name: getairpollutionhistory
        method: GET
        description: Historical air pollution data for a coordinate
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: lat
          in: query
          type: number
          required: true
        - name: lon
          in: query
          type: number
          required: true
        - name: start
          in: query
          type: integer
          description: Unix UTC start timestamp.
          required: true
        - name: end
          in: query
          type: integer
          description: Unix UTC end timestamp.
          required: true
        - name: appid
          in: query
          type: string
          required: true
    authentication:
      type: apikey
      key: appid
      value: '{{env.OPENWEATHER_API_KEY}}'
      placement: query
  exposes:
  - type: rest
    namespace: openweather-air-pollution-rest
    port: 8080
    description: REST adapter for OpenWeather One Call and Air Pollution API — Air Pollution. One Spectral-compliant resource
      per consumed operation, prefixed with /v1.
    resources:
    - path: /v1/air-pollution
      name: air-pollution
      description: REST surface for air_pollution.
      operations:
      - method: GET
        name: getcurrentairpollution
        description: Current air pollution data for a coordinate
        call: openweather-air-pollution.getcurrentairpollution
        with:
          lat: rest.lat
          lon: rest.lon
          appid: rest.appid
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/air-pollution/forecast
      name: air-pollution-forecast
      description: REST surface for air_pollution-forecast.
      operations:
      - method: GET
        name: getairpollutionforecast
        description: Hourly air pollution forecast for a coordinate
        call: openweather-air-pollution.getairpollutionforecast
        with:
          lat: rest.lat
          lon: rest.lon
          appid: rest.appid
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/air-pollution/history
      name: air-pollution-history
      description: REST surface for air_pollution-history.
      operations:
      - method: GET
        name: getairpollutionhistory
        description: Historical air pollution data for a coordinate
        call: openweather-air-pollution.getairpollutionhistory
        with:
          lat: rest.lat
          lon: rest.lon
          start: rest.start
          end: rest.end
          appid: rest.appid
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    namespace: openweather-air-pollution-mcp
    port: 9090
    transport: http
    description: MCP adapter for OpenWeather One Call and Air Pollution API — Air Pollution. One tool per consumed operation,
      routed inline through this capability's consumes block.
    tools:
    - name: current-air-pollution-data-coordinate
      description: Current air pollution data for a coordinate
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: openweather-air-pollution.getcurrentairpollution
      with:
        lat: tools.lat
        lon: tools.lon
        appid: tools.appid
      outputParameters:
      - type: object
        mapping: $.
    - name: hourly-air-pollution-forecast-coordinate
      description: Hourly air pollution forecast for a coordinate
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: openweather-air-pollution.getairpollutionforecast
      with:
        lat: tools.lat
        lon: tools.lon
        appid: tools.appid
      outputParameters:
      - type: object
        mapping: $.
    - name: historical-air-pollution-data-coordinate
      description: Historical air pollution data for a coordinate
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: openweather-air-pollution.getairpollutionhistory
      with:
        lat: tools.lat
        lon: tools.lon
        start: tools.start
        end: tools.end
        appid: tools.appid
      outputParameters:
      - type: object
        mapping: $.