Skip to main content
Glama

Forecast By Zip

forecast_by_zip
Read-onlyIdempotent

AQI forecast for a US ZIP code on a given date (defaults to today). Useful for "is tomorrow ok for outdoor activity" decisions.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
dateNoYYYY-MM-DD (default today)
zip_codeYesUS 5-digit ZIP code
distance_milesNoSearch radius (default 25)

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
countYesNumber of forecast records returned
forecastYesAQI forecasts for pollutants
zip_codeYesUS 5-digit ZIP code queried
requested_dateYesForecast date requested (YYYY-MM-DD or 'today')

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • addedInput schema / examples
      Added value: +[
      +  {
      +    "zip_code": "10001"
      +  },
      +  {
      +    "date": "2025-01-15",
      +    "zip_code": "60601"
      +  }
      +]
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "properties": {
      +    "count": {
      +      "description": "Number of forecast records returned",
      +      "type": "integer"
      +    },
      +    "forecast": {
      +      "description": "AQI forecasts for pollutants",
      +      "items": {
      +        "properties": {
      +          "action_day": {
      +            "description": "Action day flag for air quality alert",
      +            "type": "boolean"
      +          },
      +          "aqi": {
      +            "description": "Forecasted Air Quality Index value",
      +            "type": [
      +              "integer",
      +              "null"
      +            ]
      +          },
      +          "category": {
      +            "description": "Forecasted AQI category",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "discussion": {
      +            "description": "Forecast discussion/explanation text",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "forecast_date": {
      +            "description": "Forecast date (YYYY-MM-DD)",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "latitude": {
      +            "description": "Site latitude",
      +            "type": [
      +              "number",
      +              "null"
      +            ]
      +          },
      +          "longitude": {
      +            "description": "Site longitude",
      +            "type": [
      +              "number",
      +              "null"
      +            ]
      +          },
      +          "pollutant": {
      +            "description": "Pollutant name (e.g., O3, PM2.5)",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "reporting_area": {
      +            "description": "Geographic area name",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "state": {
      +            "description": "State code",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          }
      +        },
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "requested_date": {
      +      "description": "Forecast date requested (YYYY-MM-DD or 'today')",
      +      "type": "string"
      +    },
      +    "zip_code": {
      +      "description": "US 5-digit ZIP code queried",
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "zip_code",
      +    "requested_date",
      +    "count",
      +    "forecast"
      +  ],
      +  "type": "object"
      +}
  2. First observed

TDQS

A4/5.0
Behavior3/5

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

Annotations already provide comprehensive behavioral hints (readOnly, openWorld, idempotent, non-destructive). The description adds no additional behavioral context beyond what is in the annotations. This is adequate but not extra.

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, front-loaded with the primary action, and contains no unnecessary words. It efficiently conveys the tool's purpose and a typical use case.

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 that an output schema exists, the description does not need to explain return values. It covers the main purpose and date default but does not mention the distance_miles parameter. Still, the tool is relatively simple and the schema handles remaining details.

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

Parameters3/5

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

Schema description coverage is 100%, so the input schema already documents all parameters. The description only restates the date default, adding no new semantic meaning beyond the schema. Baseline 3 is appropriate.

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 defines the tool as providing an AQI forecast for a US ZIP code on a given date, with a default to today. It uses a specific verb (forecast) and resource (AQI), and distinguishes from sibling tools like current_by_zip by focusing on future predictions.

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 states a use case ('is tomorrow ok for outdoor activity'), implying when this forecast tool is appropriate. While it does not explicitly contrast with current conditions tools, the context is clear enough for the agent to differentiate from siblings.

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.