@pipeworx/nasa-firms

Connect: https://gateway.pipeworx.io/nasa-firms/mcp · Install: one-click buttons

No MCP client? Skip the connection: POST https://gateway.pipeworx.io/v1/tools/search_packs {"query":"..."} to find a tool below, GET /v1/tools/<name> for its schema, POST the same URL with arguments for the data — see For AI agents.

Tools: 3

Satellite active-fire detections from NASA FIRMS — every pixel MODIS or VIIRS measured as actively burning, published within ~3 hours of satellite overpass.

Tools

  • firms_hotspots_area(bbox, source?, day_range?, date?, limit?) — detections inside a bounding box. bbox is west,south,east,north in degrees, or "world".
  • firms_hotspots_near(latitude, longitude, radius_km?, source?, day_range?, date?) — detections around a point, sorted nearest first with distance_km.
  • firms_data_availability(source?) — first and last date each sensor product covers. Call it before a historical query so an empty result can be read as “outside the archive” rather than “no fires”.

Auth

BYO only. FIRMS requires a MAP_KEY and publishes no keyless or demo path — verified 2026-09-17: every route answers Invalid MAP_KEY. (HTTP 400/401) without one. Pass it as _apiKey; the platform fallback env var is PLATFORM_NASA_FIRMS_KEY.

The key is free and self-service at https://firms.modaps.eosdis.nasa.gov/api/map_key/ — an email address, no approval step. Limit is 5,000 transactions per 10 minutes, and a multi-day query counts as several transactions.

Data sources

Things the next person would otherwise rediscover

  • acq_time is HHMM with leading zeros dropped. "52" means 00:52Z. A naive two-character slice reports it as 52:00 and gets the hour wrong for every pre-10:00 overpass.
  • Brightness column names differ by sensor. VIIRS reports bright_ti4 / bright_ti5; MODIS reports brightness / bright_t31. Both are mapped to brightness_k / bright_t31_k.
  • The /api/country/ and /api/countries/ routes are dead. FIRMS’ own API index lists them as “Feature currently not available” and they answer Invalid API call. (HTTP 400). firms_hotspots_country was therefore NOT built. Do not emulate it with a country bounding box — a box around Chile contains Argentina, and the caller would get neighbouring fires labelled as the country they asked for. firms_hotspots_near is the honest shape.
  • day_range is capped at 5 by the upstream, and is counted FORWARD from date when one is given, backward from today when it is not.
  • Errors arrive as a bare English sentence, not JSON, at HTTP 400/401/403 — so the response body is the diagnosis and is surfaced verbatim.

Tools

  • firms_hotspots_area — “Where are the wildfires in California right now” / “active fire detections over Greece this week” — satellite thermal-anomaly (active fire) detections inside a bounding box, from NASA FIRMS. AUTHORIT
  • firms_hotspots_near — “Are there any fires near Boulder, Colorado?” / “active fire detections within 50 km of this point” — NASA FIRMS satellite hotspot detections around a latitude/longitude, sorted nearest first with the
  • firms_data_availability — Which dates each NASA FIRMS satellite product actually covers — the first and last date available per sensor, for near-real-time and standard-processing streams. Call this before querying a historical

Tools

  • firms_data_availability — Which dates each NASA FIRMS satellite product actually covers — the first and last date available per sensor, for near-real-time and standard-processing streams. Call this before querying a historical
  • firms_hotspots_area — Where are the wildfires in California right now / active fire detections over Greece this week — satellite thermal-anomaly (active fire) detections inside a bounding box, from NASA FIRMS. AUTHORITATIV
  • firms_hotspots_near — Are there any fires near Boulder, Colorado? / active fire detections within 50 km of this point — NASA FIRMS satellite hotspot detections around a latitude/longitude, sorted nearest first with the dis

Regenerated from source · build September 18, 2026