Skip to main content
Glama

Historical

historical
Read-onlyIdempotent

"What was the weather on [date]" / "historical weather for [location]" / "temperature in [city] last summer" / "rainfall during [period]" / "past weather data" — ERA5 reanalysis covering 1940-present at any global lat/lng. Returns hourly or daily temperature, precipitation, wind, humidity etc. for any date range. Use for climate analysis, retrospective event weather, or training data.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
dailyNo
hourlyNo
end_dateYesYYYY-MM-DD
latitudeYes
timezoneNo
longitudeYes
start_dateYesYYYY-MM-DD

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
dailyNoDaily historical data
hourlyNoHourly historical data
latitudeNoQuery latitude
timezoneNoIANA timezone string
elevationNoElevation of the location in meters
longitudeNoQuery longitude
daily_unitsNoUnits for daily variables
hourly_unitsNoUnits for hourly variables
generationtime_msNoAPI response generation time in milliseconds
utc_offset_secondsNoUTC offset in seconds for the requested timezone

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • addedInput schema / examples
      Added value: +[
      +  {
      +    "end_date": "2023-12-31",
      +    "latitude": 48.8566,
      +    "longitude": 2.3522,
      +    "start_date": "2023-01-01"
      +  },
      +  {
      +    "daily": "temperature_2m_max,precipitation_sum",
      +    "end_date": "2020-08-31",
      +    "latitude": 35.6762,
      +    "longitude": 139.6503,
      +    "start_date": "2020-06-01"
      +  }
      +]
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "properties": {
      +    "daily": {
      +      "additionalProperties": {
      +        "items": {
      +          "type": [
      +            "number",
      +            "null"
      +          ]
      +        },
      +        "type": "array"
      +      },
      +      "description": "Daily historical data",
      +      "properties": {
      +        "time": {
      +          "description": "ISO 8601 date strings",
      +          "items": {
      +            "type": "string"
      +          },
      +          "type": "array"
      +        }
      +      },
      +      "type": "object"
      +    },
      +    "daily_units": {
      +      "additionalProperties": {
      +        "type": "string"
      +      },
      +      "description": "Units for daily variables",
      +      "type": "object"
      +    },
      +    "elevation": {
      +      "description": "Elevation of the location in meters",
      +      "type": "number"
      +    },
      +    "generationtime_ms": {
      +      "description": "API response generation time in milliseconds",
      +      "type": "number"
      +    },
      +    "hourly": {
      +      "additionalProperties": {
      +        "items": {
      +          "type": [
      +            "number",
      +            "null"
      +          ]
      +        },
      +        "type": "array"
      +      },
      +      "description": "Hourly historical data",
      +      "properties": {
      +        "time": {
      +          "description": "ISO 8601 timestamps",
      +          "items": {
      +            "type": "string"
      +          },
      +          "type": "array"
      +        }
      +      },
      +      "type": "object"
      +    },
      +    "hourly_units": {
      +      "additionalProperties": {
      +        "type": "string"
      +      },
      +      "description": "Units for hourly variables",
      +      "type": "object"
      +    },
      +    "latitude": {
      +      "description": "Query latitude",
      +      "type": "number"
      +    },
      +    "longitude": {
      +      "description": "Query longitude",
      +      "type": "number"
      +    },
      +    "timezone": {
      +      "description": "IANA timezone string",
      +      "type": "string"
      +    },
      +    "utc_offset_seconds": {
      +      "description": "UTC offset in seconds for the requested timezone",
      +      "type": "integer"
      +    }
      +  },
      +  "type": "object"
      +}
  2. First observed

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint, openWorldHint, idempotentHint, and no destruction. The description adds value by specifying the data source (ERA5), output types (hourly/daily, variables like temperature, precipitation), and global coverage. It does not contradict annotations and provides context beyond what annotations offer.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences with no fluff. The first sentence starts with example queries and key facts (ERA5, 1940-present, global). The second sentence covers return data and use cases. Every phrase earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (ERA5 reanalysis, multiple variables, global), the description covers the time range, location, data types, and use cases. An output schema exists (mentioned), so return structure is not needed. Missing details on parameter syntax for daily/hourly variables (e.g., what values are accepted) reduce completeness slightly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With only 29% schema description coverage, the description should detail parameters. It mentions latitude/longitude as 'any global lat/lng' and date range, but does not explain the 'daily' and 'hourly' parameters, which appear in examples but lack schema descriptions. The description says 'returns hourly or daily...' but does not tell how to specify variables. This gap reduces usefulness for the agent.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool returns historical weather data using ERA5 reanalysis, covering 1940-present at any global lat/lng. Example queries ('What was the weather on [date]') and the mention of specific data types (temperature, precipitation, etc.) make the purpose unambiguous. It distinguishes from siblings like 'forecast' by emphasizing past data.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says 'Use for climate analysis, retrospective event weather, or training data.' This gives clear use cases. It implies it is for past data by stating the time range (1940-present). It does not explicitly say when not to use it (e.g., for forecasts), but the context is clear given sibling tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.