Skip to main content
Glama

query_thermal_anomalies

Read-onlyIdempotent

Query NASA FIRMS satellite thermal anomalies (VIIRS 375m + MODIS 1km, near-real-time, ~3h latency). Two modes. mode="facilities" (default) reads the pre-aggregated per-facility-per-day rollup — use it for facility-centric questions ("thermal anomalies at Russian refineries this week", "which Gulf refineries lit up", "anything at the Kirishi refinery"). Filter by country, facility_type (refinery | power_plant), facility_name, days. Returns per facility: total detections, max FRP (fire radiative power, MW), nearest detection distance in km, and the monitoring radius used. mode="raw" reads individual detections inside a lat/lon box — use it for geographic questions not anchored to a monitored facility. CRITICAL INTERPRETATION RULES — a FIRMS detection is a SATELLITE HOT PIXEL, nothing more. It is NOT a confirmed fire, NOT a strike, NOT an outage. Most detections at oil and gas infrastructure are ROUTINE GAS FLARES that burn every single day. Attributing a detection to a strike, an attack, an explosion or a production halt is INFERENCE and must be labelled as inference, corroborated with other sources (conflict events, agent reports, news), and never stated as fact. Equally, ABSENCE OF DETECTION DOES NOT MEAN ABSENCE OF FIRE — cloud cover, smoke, and satellite overpass timing routinely hide real fires. Every response carries a coverage block: ingest is REGIONAL — 8 boxes (Russia / Ukraine, Arabian Gulf, Europe, East Asia, South Asia, Southeast Asia, North America (east), North America (west)), not global — so facilities outside those boxes report zero detections because they are NOT WATCHED, not because nothing burned. Always read coverage before characterising a zero result, and tell the user which of the two it is.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
daysNoLook-back window in days ending today (default 7, max 30). Note the archive is shallow — check coverage.days_with_data.
modeNo"facilities" (default, pre-aggregated per monitored facility) | "raw" (individual detections in a bounding box).
limitNoDefault 50, max 500.
countryNofacilities mode: country-name substring (e.g. "Russia", "Saudi", "Ukraine"). Names are full English, NOT ISO codes. Filter optional.
lat_maxNoraw mode: required.
lat_minNoraw mode: required.
lon_maxNoraw mode: required.
lon_minNoraw mode: required.
min_frpNoraw mode: minimum fire radiative power in MW. Higher FRP = more energetic hot pixel, but still not a fire type.
facility_nameNofacilities mode: facility-name substring (e.g. "Kirishi", "Ras Tanura"). Filter optional.
facility_typeNofacilities mode: refinery | power_plant. Filter optional.
min_detectionsNofacilities mode: minimum total detections over the window (default 1, i.e. only facilities that registered something). Pass 0 to include quiet facilities and see what was watched-but-silent.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / facility_name / description
      Previous value: -"facilities mode: facility-name substring (e.g. \"Ryazan\", \"Ras Tanura\"). Filter optional."New value: +"facilities mode: facility-name substring (e.g. \"Kirishi\", \"Ras Tanura\"). Filter optional."
  2. First observed

TDQS

A4.9/5.0
Behavior5/5

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

The description goes far beyond the annotations by disclosing latency (~3h), regional coverage (8 boxes), and the crucial caveat that a detection is a satellite hot pixel—not a confirmed fire or strike. It also warns that absence of detection does not mean absence of fire, and instructs the agent to always read the coverage block before interpreting zeros. These are behavioral insights the annotations do not provide.

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 long (~300 words) but well-organized: it front-loads the purpose and modes, then the critical interpretation rules. Every sentence carries necessary information, and the structure makes the dense content navigable. However, it could be slightly tightened—some interpretive guidance could be summarized further without losing value.

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?

For a tool with 12 parameters and no output schema, the description is remarkably complete. It describes return fields (per-facility aggregates, coverage block), warns about shallow archive, and tells the reader to check coverage.days_with_data. It also explains the regional limitation and how to distinguish 'not watched' from 'nothing burned.' The only minor omission is explicit pagination/limit behavior, but the schema covers limit, so the agent has enough to call and interpret correctly.

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

Parameters5/5

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

Even though the schema already describes all 12 parameters with 100% coverage, the description adds significant meaning: it explains what facilities mode returns (total detections, max FRP, nearest distance, monitoring radius), what raw mode returns, and how min_detections=0 reveals 'watched-but-silent' facilities. It also ties each parameter group to its mode, which helps the agent select and set parameters correctly.

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: 'Query NASA FIRMS satellite thermal anomalies' and explicitly names the two modes (facilities vs raw) with distinct purposes. This clearly distinguishes it from sibling tools (e.g., query_refineries, query_power_plants) which are about static infrastructure data, not thermal anomaly detections.

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

Usage Guidelines5/5

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

The description provides explicit when-to-use guidance for each mode, with concrete examples: facilities mode for 'facility-centric questions' and raw mode for 'geographic questions not anchored to a monitored facility.' It also gives critical interpretation rules that govern how results should be characterized, which is essential for correct use of the tool.

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.

Resources