Skip to main content
Glama

Forecast

forecast
Read-onlyIdempotent

"What's the weather in [city]" / "weather forecast for [location]" / "will it rain tomorrow", "rain chance / probability this week" / "temperature in [place] this week" / "wind / precipitation / humidity forecast" — global weather forecast up to 16 days ahead, hourly or daily, at any lat/lng. Returns temperature, precipitation, wind, humidity, cloud cover, weather codes by default; pass hourly/daily arg for custom variables. Free, keyless, no signup (Open-Meteo / ECMWF + national weather services). Pair with geocode to convert "Paris" → lat/lng first.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
dailyNoComma-separated daily variables. Default sensible set.
hourlyNoComma-separated hourly variables. Default sensible set.
latitudeYes
timezoneNoIANA timezone or "auto"
longitudeYes
past_daysNo0-92 (default 0)
forecast_daysNo1-16 (default 7)
wind_speed_unitNokmh | ms | mph | kn
temperature_unitNocelsius (default) | fahrenheit

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
dailyNoDaily forecast data
hourlyNoHourly forecast 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: +[
      +  {
      +    "forecast_days": 10,
      +    "latitude": 40.7128,
      +    "longitude": -74.006,
      +    "temperature_unit": "fahrenheit"
      +  },
      +  {
      +    "daily": "weather_code,temperature_2m_max,temperature_2m_min",
      +    "hourly": "temperature_2m,precipitation,wind_speed_10m",
      +    "latitude": 51.5074,
      +    "longitude": -0.1278,
      +    "timezone": "Europe/London"
      +  }
      +]
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "properties": {
      +    "daily": {
      +      "additionalProperties": {
      +        "items": {
      +          "type": [
      +            "number",
      +            "null"
      +          ]
      +        },
      +        "type": "array"
      +      },
      +      "description": "Daily forecast 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 forecast 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.4/5.0
Behavior4/5

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

Annotations already indicate readOnlyHint, idempotentHint, destructiveHint false, and openWorldHint. The description adds value by revealing the data sources (Open-Meteo/ECMWF + national weather services), the free and keyless nature, and the default return variables (temperature, precipitation, wind, humidity, cloud cover, weather codes). No contradiction with annotations.

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

Conciseness4/5

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

The description is front-loaded with example queries, which is effective. It conveys necessary information in a compact form, though slightly dense. Every sentence adds value: examples, capability, customization, source, and pairing advice.

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

Completeness5/5

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

Given the tool's complexity (9 parameters, output schema exists), the description covers all essential aspects: purpose, usage pattern, default behavior, customization options, and external dependencies. It pairs well with the output schema to provide a complete understanding.

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

Parameters4/5

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

Schema coverage is high (78%). The description adds meaning by explaining that hourly/daily args allow custom variable selection, and implies that daily and hourly can be 'comma-separated' variables. It also highlights the required latitude/longitude. This enriches the schema information.

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 it provides global weather forecasts up to 16 days ahead with specific example queries (e.g., 'What's the weather in [city]'). It distinguishes from siblings like geocode (which is the prerequisite to convert place names) and other weather-related tools like air_quality or marine.

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 advises pairing with geocode to convert city names to lat/lng, which is a clear usage guideline. It mentions free and keyless availability but does not explicitly state when not to use this tool versus alternatives like air_quality or marine, though the context implies it for general weather forecasting.

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.