Skip to main content
Glama

Climate anomalies and disasters

get_climate_data
Read-onlyIdempotent

Return the seeded climate bundle: temperature and precipitation anomalies against 30-year WMO normals, climate-relevant disaster alerts (ReliefWeb, GDACS, FIRMS), the NOAA Mauna Loa CO2 trend, OpenAQ/WAQI PM2.5 station readings, NSIDC/NOAA Arctic sea-ice extent and ocean-heat indicators, active weather alerts and climate news. Freshness follows each source seed time and budget (anomalies 9 h, CO2 3 days, sea ice 2 days), plus producer content-age limits for anomalies and news. Seeded-cache read with no live fetch: weight 1 on API plans, included in the signed-in free allowance. dataset selects sub-datasets, country narrows the disaster and air-quality lists, limit caps each list (default 30, 0 for no cap).

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "get_climate_data"
  }
}

Input Schema

NameRequiredDescriptionDefault
limitNoCap each list dataset (anomalies, disasters, stations, news, alerts) to at most this many items (default 30, pass 0 for no cap).
countryNoFilter the country-tagged datasets (climate disasters, air-quality stations) to one ISO 3166-1 alpha-2 code. Country names and alpha-3 codes are accepted; unresolved inputs return Invalid params.
datasetNoRestrict the response to one or more climate sub-datasets. Omit for the full bundle.
summaryNoReturn counts + 3-item samples instead of full lists. Useful when you only need shape/size or want to budget context before drilling in.
jmespathNoOptional JMESPath projection applied to the response. See initialize.instructions for grammar and examples.

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changed
    • addedOutput schema / anyOf
      Added value: +[
      +  {
      +    "properties": {
      +      "activationUnknown": {
      +        "description": "Optional. True when an activation marker this tool consults could not be read, so `stale` was computed without knowing whether the producer has ever published. Distinguishes an unreadable marker from a producer that genuinely never ran — the same signal /api/health and /api/seed-health publish under this name.",
      +        "type": "boolean"
      +      },
      +      "cached_at": {
      +        "description": "ISO-8601 timestamp of the OLDEST contributing cache key, or null when no valid seed-meta is present.",
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "contentFreshnessPendingUntil": {
      +        "description": "Optional ISO-8601 deadline while a cleanly absent content-freshness block is temporarily covered by deployment-order grace.",
      +        "format": "date-time",
      +        "type": "string"
      +      },
      +      "data": {
      +        "properties": {
      +          "air-quality": {
      +            "properties": {
      +              "stations": {
      +                "items": {
      +                  "properties": {
      +                    "aqi": {
      +                      "type": [
      +                        "number",
      +                        "null"
      +                      ]
      +                    },
      +                    "city": {
      +                      "type": "string"
      +                    },
      +                    "country_code": {
      +                      "type": "string"
      +                    }
      +                  },
      +                  "type": "object"
      +                },
      +                "type": "array"
      +              }
      +            },
      +            "type": [
      +              "object",
      +              "null"
      +            ]
      +          },
      +          "alerts": {
      +            "properties": {
      +              "alerts": {
      +                "items": {
      +                  "type": "object"
      +                },
      +                "type": "array"
      +              }
      +            },
      +            "type": [
      +              "object",
      +              "null"
      +            ]
      +          },
      +          "anomalies": {
      +            "properties": {
      +              "anomalies": {
      +                "items": {
      +                  "type": "object"
      +                },
      +                "type": "array"
      +              }
      +            },
      +            "type": [
      +              "object",
      +              "null"
      +            ]
      +          },
      +          "co2-monitoring": {
      +            "type": [
      +              "object",
      +              "null"
      +            ]
      +          },
      +          "disasters": {
      +            "properties": {
      +              "disasters": {
      +                "items": {
      +                  "properties": {
      +                    "countryCode": {
      +                      "type": "string"
      +                    },
      +                    "severity": {
      +                      "type": "string"
      +                    },
      +                    "type": {
      +                      "type": "string"
      +                    }
      +                  },
      +                  "type": "object"
      +                },
      +                "type": "array"
      +              }
      +            },
      +            "type": [
      +              "object",
      +              "null"
      +            ]
      +          },
      +          "news-intelligence": {
      +            "properties": {
      +              "items": {
      +                "items": {
      +                  "type": "object"
      +                },
      +                "type": "array"
      +              }
      +            },
      +            "type": [
      +              "object",
      +              "null"
      +            ]
      +          },
      +          "ocean-ice": {
      +            "type": [
      +              "object",
      +              "null"
      +            ]
      +          }
      +        },
      +        "type": "object"
      +      },
      +      "freshnessUnknown": {
      +        "description": "Optional. True when a freshness record could not be read (a cache timeout), so `stale` is true because freshness is unknown, not because the data was shown to be old. Retrying shortly will usually clear it.",
      +        "type": "boolean"
      +      },
      +      "stale": {
      +        "description": "True when any contributing cache key fails its freshness contract: fetched longer ago than its per-key maxStaleMin budget, below a declared minRecordCount, or — for keys that declare a content-age contract — carrying upstream observations older than maxContentAgeMin even though the fetch itself is recent. A recent cached_at with stale:true means the fetch is current but the underlying data has stopped advancing, so refetching will not help.",
      +        "type": "boolean"
      +      },
      +      "unreadable": {
      +        "description": "Optional. Labels of `data` sections whose cache read failed. Those sections are null because they could not be read, not because the dataset is empty. Retrying shortly will usually fill them.",
      +        "items": {
      +          "type": "string"
      +        },
      +        "type": "array"
      +      }
      +    },
      +    "required": [
      +      "cached_at",
      +      "stale",
      +      "data"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "required": [
      +      "projection"
      +    ]
      +  },
      +  {
      +    "required": [
      +      "data",
      +      "_attribution"
      +    ]
      +  },
      +  {
      +    "required": [
      +      "_budget_exceeded"
      +    ]
      +  },
      +  {
      +    "required": [
      +      "_jmespath_error"
      +    ]
      +  }
      +]
    • removedOutput schema / properties
      Removed value: -{
      -  "activationUnknown": {
      -    "description": "Optional. True when an activation marker this tool consults could not be read, so `stale` was computed without knowing whether the producer has ever published. Distinguishes an unreadable marker from a producer that genuinely never ran — the same signal /api/health and /api/seed-health publish under this name.",
      -    "type": "boolean"
      -  },
      -  "cached_at": {
      -    "description": "ISO-8601 timestamp of the OLDEST contributing cache key, or null when no valid seed-meta is present.",
      -    "type": [
      -      "string",
      -      "null"
      -    ]
      -  },
      -  "contentFreshnessPendingUntil": {
      -    "description": "Optional ISO-8601 deadline while a cleanly absent content-freshness block is temporarily covered by deployment-order grace.",
      -    "format": "date-time",
      -    "type": "string"
      -  },
      -  "data": {
      -    "properties": {
      -      "air-quality": {
      -        "properties": {
      -          "stations": {
      -            "items": {
      -              "properties": {
      -                "aqi": {
      -                  "type": [
      -                    "number",
      -                    "null"
      -                  ]
      -                },
      -                "city": {
      -                  "type": "string"
      -                },
      -                "country_code": {
      -                  "type": "string"
      -                }
      -              },
      -              "type": "object"
      -            },
      -            "type": "array"
      -          }
      -        },
      -        "type": [
      -          "object",
      -          "null"
      -        ]
      -      },
      -      "alerts": {
      -        "properties": {
      -          "alerts": {
      -            "items": {
      -              "type": "object"
      -            },
      -            "type": "array"
      -          }
      -        },
      -        "type": [
      -          "object",
      -          "null"
      -        ]
      -      },
      -      "anomalies": {
      -        "properties": {
      -          "anomalies": {
      -            "items": {
      -              "type": "object"
      -            },
      -            "type": "array"
      -          }
      -        },
      -        "type": [
      -          "object",
      -          "null"
      -        ]
      -      },
      -      "co2-monitoring": {
      -        "type": [
      -          "object",
      -          "null"
      -        ]
      -      },
      -      "disasters": {
      -        "properties": {
      -          "disasters": {
      -            "items": {
      -              "properties": {
      -                "countryCode": {
      -                  "type": "string"
      -                },
      -                "severity": {
      -                  "type": "string"
      -                },
      -                "type": {
      -                  "type": "string"
      -                }
      -              },
      -              "type": "object"
      -            },
      -            "type": "array"
      -          }
      -        },
      -        "type": [
      -          "object",
      -          "null"
      -        ]
      -      },
      -      "news-intelligence": {
      -        "properties": {
      -          "items": {
      -            "items": {
      -              "type": "object"
      -            },
      -            "type": "array"
      -          }
      -        },
      -        "type": [
      -          "object",
      -          "null"
      -        ]
      -      },
      -      "ocean-ice": {
      -        "type": [
      -          "object",
      -          "null"
      -        ]
      -      }
      -    },
      -    "type": "object"
      -  },
      -  "stale": {
      -    "description": "True when any contributing cache key fails its freshness contract: fetched longer ago than its per-key maxStaleMin budget, below a declared minRecordCount, or — for keys that declare a content-age contract — carrying upstream observations older than maxContentAgeMin even though the fetch itself is recent. A recent cached_at with stale:true means the fetch is current but the underlying data has stopped advancing, so refetching will not help.",
      -    "type": "boolean"
      -  }
      -}
    • removedOutput schema / required
      Removed value: -[
      -  "cached_at",
      -  "stale",
      -  "data"
      -]
  2. Changed1 schema field changed
    • changedInput schema / properties / country / description
      Previous value: -"Filter the country-tagged datasets (climate disasters, air-quality stations) to one ISO 3166-1 alpha-2 code."New value: +"Filter the country-tagged datasets (climate disasters, air-quality stations) to one ISO 3166-1 alpha-2 code. Country names and alpha-3 codes are accepted; unresolved inputs return Invalid params."
  3. Changed1 schema field changed
    • changedOutput schema / properties / stale / description
      Previous value: -"True when any contributing cache key is older than its per-key maxStaleMin freshness budget."New value: +"True when any contributing cache key fails its freshness contract: fetched longer ago than its per-key maxStaleMin budget, below a declared minRecordCount, or — for keys that declare a content-age contract — carrying upstream observations older than maxContentAgeMin even though the fetch itself is recent. A recent cached_at with stale:true means the fetch is current but the underlying data has stopped advancing, so refetching will not help."
  4. Changed1 schema field changed
    • addedOutput schema / properties / activationUnknown
      Added value: +{
      +  "description": "Optional. True when an activation marker this tool consults could not be read, so `stale` was computed without knowing whether the producer has ever published. Distinguishes an unreadable marker from a producer that genuinely never ran — the same signal /api/health and /api/seed-health publish under this name.",
      +  "type": "boolean"
      +}
  5. Changed1 schema field changed
    • addedOutput schema / properties / contentFreshnessPendingUntil
      Added value: +{
      +  "description": "Optional ISO-8601 deadline while a cleanly absent content-freshness block is temporarily covered by deployment-order grace.",
      +  "format": "date-time",
      +  "type": "string"
      +}
  6. First observed

TDQS

A4/5.0
Behavior4/5

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

Annotations already establish readOnly, idempotent, non-destructive and closed-world, so the safety profile is covered. The description adds genuinely non-structured behavior: per-source freshness budgets (anomalies 9 h, CO2 3 days, sea ice 2 days), producer content-age limits, that no live fetch occurs, and the cost weighting on API plans plus free-allowance inclusion.

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?

Three dense sentences organized as contents -> freshness/cost behavior -> parameter roles, with the most important information front-loaded and no filler or marketing language. The density is high but every clause carries distinct operational facts.

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?

With an output schema present, return-value explanation is unnecessary, and the description still covers breadth, freshness, cost and parameter roles well. The main remaining gap is routing guidance against the overlapping sibling tools, which an agent would need to choose correctly between this bundle and the narrower climate/disaster endpoints.

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 baseline is 3. The description's parameter sentences (dataset selects sub-datasets, country narrows disaster/air-quality lists, limit caps each list with default 30 and 0 for no cap) largely restate what the schema already documents, adding little new syntax or edge-case meaning.

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 opens with a specific verb and resource ("Return the seeded climate bundle") and then enumerates the exact contents: temperature/precipitation anomalies, ReliefWeb/GDACS/FIRMS disaster alerts, Mauna Loa CO2, OpenAQ/WAQI PM2.5, NSIDC/NOAA sea ice, weather alerts, climate news. An agent can distinguish this aggregated bundle from single-domain siblings like get_natural_disasters, get_radiation_data or get_temporal_anomalies without opening the schema.

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

Usage Guidelines3/5

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

Operational conditions are given (seeded-cache read, no live fetch, weight 1 on API plans, free allowance), and the summary parameter is framed as a context-budgeting step before drilling in. However, there is no explicit when-to-use-this-vs-alternatives guidance, which matters given strong sibling overlap with get_natural_disasters, get_temporal_anomalies and get_airspace-adjacent climate tools; usage is only implied.

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.