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 Ryazan 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 (Russia/Ukraine, Arabian Gulf, Europe), 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. "Ryazan", "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. First observed

TDQS

A4.8/5.0
Behavior5/5

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

Annotations already declare readOnlyHint=true, openWorldHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds substantial behavioral context beyond annotations: the ~3h latency, the regional (non-global) ingest coverage, the shallow archive caveat, the meaning of a detection as a hot pixel rather than a confirmed fire, and the explicit warning that absence of detection does not mean absence of fire. It also discloses that every response carries a coverage block and instructs the agent to read it before characterizing zero results.

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 but every sentence earns its place: it covers mode selection, interpretation rules, coverage caveats, and parameter semantics. The critical interpretation rules are clearly marked with 'CRITICAL INTERPRETATION RULES' and the coverage warning is front-loaded enough to be noticed. It could be slightly tighter, but the density of essential guidance justifies the length.

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 12-parameter tool with no output schema, the description is remarkably complete. It explains both modes, the return fields for facilities mode, the coverage block semantics, the interpretation pitfalls, and the regional limitation. The only minor gap is that it doesn't describe the exact return shape for raw mode, but the schema and the mode descriptions make this inferable, and the interpretation rules are more important for correct use.

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 description coverage is 100%, so the baseline is 3. The description adds value by grouping parameters by mode (facilities vs raw), explaining the default behavior of min_detections (default 1, pass 0 to include quiet facilities), and clarifying that country names are full English not ISO codes. It also explains the meaning of FRP in context. However, it doesn't add much beyond the schema for lat/lon bounds or limit, which the schema already documents adequately.

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 ('Query') and a precise resource ('NASA FIRMS satellite thermal anomalies'), names the two data products (VIIRS 375m + MODIS 1km), and immediately distinguishes the two modes. It clearly differentiates itself from siblings like query_refineries and query_power_plants by focusing on thermal anomaly detections rather than static infrastructure.

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 gives explicit when-to-use guidance for both modes: mode='facilities' for facility-centric questions with concrete example queries, and mode='raw' for geographic questions not anchored to a monitored facility. It also provides critical interpretation rules that tell the agent when NOT to attribute detections to strikes or fires, and how to handle zero results via the coverage block.

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