Skip to content
Eden Engine

Monthly Hourly Weather Observations (by Airport Station)

omnial/get-monthly-observations

Given an airport ICAO station code and a calendar month and year, returns every recorded hourly weather observation for that month (temperature, humidity, wind, pressure, visibility, and cloud cover) plus a per-day summary of the day's maximum temperature and notes on how complete the data is.

activeper callv2

Price

Up to $0.0137 per call; you pay what the call used

You pay the price shown. If a call turns out to cost more than its quote, you pay the actual price, capped at twice the quote. No monthly minimum. Top-ups start at $5.00.

Data source

Weather Underground

Data from Weather Underground.

Use it

Your AI assistant does the work: it finds this tool, shows you the price first, runs it, and you are charged when the run finishes. There is nothing to set up for this tool in particular.

Connect once and your AI can find and run this tool, and any other it needs.

For developers: the calls your assistant makes
agent
// 1. search: find the tool
omnial_search({ query: "what you need" })

// 2. inspect: price and input schema
omnial_inspect({ tool: "omnial/get-monthly-observations" })

// 3. learn: read the usage guide at runtime
omnial_learn({ tool: "omnial/get-monthly-observations" })

// 4. run: price the exact call first, then run it
omnial_execute({ tool: "omnial/get-monthly-observations", input: { /* see input_schema */ }, dry_run: true })
omnial_execute({ tool: "omnial/get-monthly-observations", input: { /* ... */ } })

// 5. settle: the call is charged when it finishes, nothing to do

Not connected yet? Point your MCP client at https://mcp.eden-engine.com/mcp, then copy a config for your client.

Pricing

Every charge this tool can incur.

ChargePrice
Per call
$0.0137
Updated
Oct 27, 2026

Input and output schemas

Input schema
input_schema.json
{
  "type": "object",
  "required": [
    "month",
    "year",
    "station_id"
  ],
  "properties": {
    "year": {
      "type": "integer",
      "description": "Year (e.g. 2024)."
    },
    "month": {
      "type": "integer",
      "description": "Month number, 1 through 12."
    },
    "station_id": {
      "type": "string",
      "description": "Airport station ICAO code (e.g. KJFK, EGLL)."
    },
    "country_code": {
      "type": "string",
      "description": "Two-letter ISO country code for the station (e.g. US, GB)."
    }
  },
  "additionalProperties": false
}
Output schema
output_schema.json
{
  "type": "object",
  "properties": {
    "data": {
      "type": "object",
      "properties": {
        "metadata": {
          "type": "object",
          "properties": {
            "units": {
              "type": "string",
              "description": "Unit system code for the response, e.g. 'm' for metric."
            },
            "language": {
              "type": "string",
              "description": "e.g. 'en-US'."
            }
          },
          "description": "Response-level locale/units metadata.",
          "additionalProperties": true
        },
        "observations": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "rh": {
                "type": [
                  "number",
                  "null"
                ],
                "description": "Relative humidity, percent."
              },
              "wc": {
                "type": [
                  "number",
                  "null"
                ],
                "description": "Wind chill."
              },
              "key": {
                "type": "string"
              },
              "vis": {
                "type": [
                  "number",
                  "null"
                ],
                "description": "Visibility."
              },
              "clds": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "Cloud cover code, e.g. 'SCT', 'BKN'; observed null on at least one row of the one populated call."
              },
              "gust": {
                "type": [
                  "number",
                  "null"
                ]
              },
              "temp": {
                "type": [
                  "number",
                  "null"
                ]
              },
              "wdir": {
                "type": [
                  "number",
                  "null"
                ]
              },
              "wspd": {
                "type": [
                  "number",
                  "null"
                ]
              },
              "class": {
                "type": "string",
                "description": "e.g. 'observation'."
              },
              "dewPt": {
                "type": [
                  "number",
                  "null"
                ]
              },
              "obs_id": {
                "type": "string"
              },
              "day_ind": {
                "type": "string",
                "description": "e.g. 'N' for night, 'D' for day."
              },
              "uv_desc": {
                "type": "string",
                "description": "e.g. 'Low'."
              },
              "wx_icon": {
                "type": [
                  "number",
                  "null"
                ]
              },
              "max_temp": {
                "type": [
                  "number",
                  "null"
                ],
                "description": "Present on most but not every row of the one populated call."
              },
              "min_temp": {
                "type": [
                  "number",
                  "null"
                ],
                "description": "Present on most but not every row of the one populated call."
              },
              "obs_name": {
                "type": "string",
                "description": "The station's public display name."
              },
              "pressure": {
                "type": [
                  "number",
                  "null"
                ]
              },
              "row_type": {
                "type": "string",
                "description": "e.g. 'original_station_report'."
              },
              "uv_index": {
                "type": [
                  "number",
                  "null"
                ]
              },
              "qc_status": {
                "type": [
                  "string",
                  "number",
                  "null"
                ],
                "description": "Observed null on EVERY row of the one populated call -- its populated shape is unconfirmed."
              },
              "snow_hrly": {
                "type": [
                  "number",
                  "null"
                ]
              },
              "temp_unit": {
                "type": "string",
                "description": "e.g. 'C'."
              },
              "wx_phrase": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "feels_like": {
                "type": [
                  "number",
                  "null"
                ]
              },
              "heat_index": {
                "type": [
                  "number",
                  "null"
                ]
              },
              "utc_offset": {
                "type": [
                  "string",
                  "number",
                  "null"
                ],
                "description": "Observed null on every row of the one populated call."
              },
              "precip_hrly": {
                "type": [
                  "number",
                  "null"
                ]
              },
              "precip_total": {
                "type": [
                  "number",
                  "null"
                ]
              },
              "pressure_desc": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "e.g. 'Rising Rapidly'; null on most rows of the one populated call."
              },
              "pressure_tend": {
                "type": [
                  "number",
                  "null"
                ],
                "description": "Pressure trend code; null on most rows of the one populated call."
              },
              "timezone_name": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "Observed null on every row of the one populated call."
              },
              "wdir_cardinal": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "e.g. 'NW', 'CALM'."
              },
              "valid_time_gmt": {
                "type": "number",
                "description": "Unix epoch seconds."
              },
              "observed_at_utc": {
                "type": "string",
                "description": "ISO 8601 UTC timestamp."
              },
              "observed_at_local": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "Observed null on every row of the one populated call."
              },
              "revision_timestamp": {
                "type": [
                  "string",
                  "number",
                  "null"
                ],
                "description": "Observed null on EVERY row of the one populated call -- its populated shape is unconfirmed."
              },
              "source_availability_timestamp": {
                "type": [
                  "string",
                  "number",
                  "null"
                ],
                "description": "Observed null on EVERY row of the one populated call -- its populated shape is unconfirmed."
              }
            },
            "additionalProperties": true
          },
          "description": "One entry per recorded hourly observation in the requested month (823 rows on the one populated call observed, July 2024 at KJFK -- roughly one per hour with a handful of gaps, see response_metadata.missing_hour_count)."
        },
        "daily_summary": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "date": {
                "type": "string",
                "description": "e.g. '2024-07-01'."
              },
              "max_temp_provenance": {
                "type": "string",
                "description": "'SOURCE_PUBLISHED' or 'DERIVED_FROM_ROWS', observed on the one populated call -- other values are not confirmed."
              },
              "max_temp_row_timestamp": {
                "type": "string"
              },
              "source_published_daily_max": {
                "type": "number",
                "description": "Only present when max_temp_provenance is 'SOURCE_PUBLISHED' -- absent (not null) on a 'DERIVED_FROM_ROWS' day."
              },
              "max_temp_from_returned_rows": {
                "type": "number"
              }
            },
            "additionalProperties": true
          },
          "description": "One entry per calendar day in the requested month."
        },
        "data_source_note": {
          "type": "string",
          "description": "A caveat string about this data's provenance/reliability, e.g. 'UNVERIFIED_TWC_AIRPORT_HISTORY_PROXY' on the one populated call observed -- read this before treating the observations as an authoritative official record."
        },
        "station_metadata": {
          "type": "object",
          "properties": {
            "icao": {
              "type": "string"
            },
            "latitude": {
              "type": [
                "number",
                "null"
              ],
              "description": "Observed null on the one populated call -- may not always resolve."
            },
            "longitude": {
              "type": [
                "number",
                "null"
              ],
              "description": "Observed null on the one populated call -- may not always resolve."
            },
            "station_id": {
              "type": "string"
            },
            "source_product_name": {
              "type": "string",
              "description": "The upstream historical-data product name behind this station's rows."
            }
          },
          "additionalProperties": true
        },
        "response_metadata": {
          "type": "object",
          "properties": {
            "warnings": {
              "type": "array",
              "items": {},
              "description": "Observed as an empty array on the one populated call -- item shape unconfirmed."
            },
            "row_count": {
              "type": "number"
            },
            "retrieved_at": {
              "type": "string",
              "description": "ISO 8601 UTC timestamp of the call."
            },
            "missing_hour_count": {
              "type": "number",
              "description": "How many expected hourly rows are absent from `observations`."
            },
            "requested_end_date": {
              "type": "string",
              "description": "e.g. '20240731'."
            },
            "requested_start_date": {
              "type": "string",
              "description": "e.g. '20240701'."
            }
          },
          "additionalProperties": true
        }
      },
      "additionalProperties": true
    },
    "status": {
      "type": "string",
      "description": "'success' on the one populated call observed."
    }
  },
  "description": "The monthly observation record. A month with no data on file (e.g. EGLL, January 1990) returns an empty object -- no field below is guaranteed present.",
  "additionalProperties": true
}