air_quality

Pack: open-meteo · Endpoint: https://gateway.pipeworx.io/open-meteo/mcp

“Air quality / AQI in [city]” / “is the air safe to breathe in [location]” / “pollution levels for [place]” / “smoke / smog / wildfire-smoke forecast” / “pollen forecast” — global air quality and pollen forecast at any lat/lng. Returns PM2.5, PM10, ozone (O3), NO2, SO2, CO, dust, and pollen (alder/birch/grass/mugwort/olive/ragweed) up to 5 days ahead, plus European AQI / US AQI. Free, keyless.

Parameters

NameTypeRequiredDescription
latitudenumberyes
longitudenumberyes
hourlystringnoComma-separated variables. Default pm2_5,pm10,o3,no2,european_aqi
forecast_daysnumberno1-5 (default 5)

Example call

Arguments

{
  "latitude": 40.7128,
  "longitude": -74.006
}

curl

curl -X POST https://gateway.pipeworx.io/open-meteo/mcp \
  -H 'Content-Type: application/json' \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"air_quality","arguments":{"latitude":40.7128,"longitude":-74.006}}}'

TypeScript (@pipeworx/sdk)

import { Pipeworx } from '@pipeworx/sdk';
const pipeworx = new Pipeworx();

const result = await pipeworx.call('air_quality', {
  "latitude": 40.7128,
  "longitude": -74.006
});

More examples

{
  "latitude": 52.52,
  "longitude": 13.405,
  "hourly": "pm2_5,pm10,o3,no2",
  "forecast_days": 3
}

Response shape

FieldTypeDescription
latitudenumberQuery latitude
longitudenumberQuery longitude
generationtime_msnumberAPI response generation time in milliseconds
utc_offset_secondsintegerUTC offset in seconds
timezonestringIANA timezone string
elevationnumberElevation of the location in meters
hourly_unitsobjectUnits for hourly air quality variables
hourlyobjectHourly air quality data
Full JSON Schema
{
  "type": "object",
  "properties": {
    "latitude": {
      "type": "number",
      "description": "Query latitude"
    },
    "longitude": {
      "type": "number",
      "description": "Query longitude"
    },
    "generationtime_ms": {
      "type": "number",
      "description": "API response generation time in milliseconds"
    },
    "utc_offset_seconds": {
      "type": "integer",
      "description": "UTC offset in seconds"
    },
    "timezone": {
      "type": "string",
      "description": "IANA timezone string"
    },
    "elevation": {
      "type": "number",
      "description": "Elevation of the location in meters"
    },
    "hourly_units": {
      "type": "object",
      "description": "Units for hourly air quality variables",
      "additionalProperties": {
        "type": "string"
      }
    },
    "hourly": {
      "type": "object",
      "description": "Hourly air quality data",
      "properties": {
        "time": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "ISO 8601 timestamps"
        }
      },
      "additionalProperties": {
        "type": "array",
        "items": {
          "type": [
            "number",
            "null"
          ]
        }
      }
    }
  }
}

Connect

Add this to your MCP client config, or use one-click install buttons:

{
  "mcpServers": {
    "open-meteo": {
      "url": "https://gateway.pipeworx.io/open-meteo/mcp"
    }
  }
}

See Getting Started for client-specific install steps.

Regenerated from source · build July 6, 2026