{
  "name": "get_weather_forecast",
  "description": "Fetch a multi-day weather forecast for Chicago, Illinois (or specified coordinates) using the Open-Meteo API. Returns daily high/low temperatures, precipitation, wind, sunrise/sunset, and WMO weather codes. Hourly data includes temperature, dew point, apparent temperature, humidity, precipitation probability, wind speed, and weather code — suitable for condition-window queries such as 'find the next 24h where temp > 2C and temp is 3C above dew point'.",
  "input_schema": {
    "type": "object",
    "properties": {
      "latitude": {
        "type": "number",
        "description": "Latitude of the location. Defaults to 41.8781 (Chicago, IL)."
      },
      "longitude": {
        "type": "number",
        "description": "Longitude of the location. Defaults to -87.6298 (Chicago, IL)."
      },
      "timezone": {
        "type": "string",
        "description": "Timezone string. Defaults to 'America/Chicago'."
      },
      "forecast_days": {
        "type": "integer",
        "minimum": 1,
        "maximum": 16,
        "description": "Number of forecast days to return (1–16). Defaults to 7."
      },
      "temperature_unit": {
        "type": "string",
        "enum": ["celsius", "fahrenheit"],
        "description": "Temperature unit. Defaults to celsius."
      }
    },
    "required": []
  },
  "execution": {
    "type": "javascript",
    "code": "const args = JSON.parse(data); const lat = args.latitude ?? 41.8781; const lon = args.longitude ?? -87.6298; const tz = encodeURIComponent(args.timezone || 'America/Chicago'); const days = args.forecast_days || 7; const unit = args.temperature_unit || 'celsius'; const url = `https://api.open-meteo.com/v1/forecast?latitude=${lat}&longitude=${lon}&hourly=temperature_2m,dew_point_2m,apparent_temperature,relative_humidity_2m,precipitation_probability,precipitation,snowfall,weather_code,wind_speed_10m,wind_gusts_10m,cloud_cover,visibility,is_day&daily=weather_code,temperature_2m_max,temperature_2m_min,apparent_temperature_max,apparent_temperature_min,sunrise,sunset,precipitation_sum,rain_sum,snowfall_sum,precipitation_hours,wind_speed_10m_max,wind_gusts_10m_max&temperature_unit=${unit}&wind_speed_unit=kmh&precipitation_unit=mm&timezone=${tz}&forecast_days=${days}`; const res = await fetch(url); const json = await res.json(); return JSON.stringify(json, null, 2);"
  }
}
