@pipeworx/nasa-gibs

Connect: https://gateway.pipeworx.io/nasa-gibs/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

NASA GIBS — the ~1,300-layer global satellite imagery catalogue behind NASA Worldview, with daily true-colour mosaics, thermal anomalies, sea-surface temperature, aerosols, snow and ice cover and night lights, most of them with a multi-decade daily time series.

Tools

  • gibs_list_layers(query?, projection?, limit?) — search the catalogue by subject or identifier; returns each layer’s id, title, grid and available date range.
  • gibs_layer_info(layer, projection?) — one layer’s full time coverage, native resolution, format, extent, colour map and legend URLs, and tile template.
  • gibs_tile_url(layer, date?, latitude?, longitude?, zoom?, tile_row?, tile_col?, projection?) — a ready-to-fetch image tile URL, with the tile’s own geographic bounds.

Auth

Keyless. No registration, no rate-limit headers.

Data sources

Things the next person would otherwise rediscover

  • There is no JSON layer index. The WMTS capabilities XML is the only machine-readable catalogue and it is ~5 MB per projection. It is parsed once per isolate and the (much smaller) result cached in module scope for 6 hours; a per-call re-parse would spend seconds of CPU on a document that changes about once a day. The cache is populated only inside a request — never at module load, where the Workers runtime reports Date.now() as 1970 and every entry would read as infinitely stale.
  • Each layer has several <ResourceURL resourceType="tile"> templates. Only one carries {Time}; that is the one worth handing a caller. The others drop the date silently and serve whatever GIBS considers current.
  • MatrixWidth is not a power of two (levels go 2, 3, 5, …), so tile row/column cannot be derived from the zoom level alone. They are computed from ScaleDenominator the way WMTS specifies: tileSpan = ScaleDenominator × 0.00028 m × TileWidth ÷ metresPerUnit, with metresPerUnit = 111319.49 for epsg4326 (degrees) and 1 for the metre-based projections.
  • TopLeftCorner is written x-then-y (-180 90), not the lat-then-lon axis order EPSG:4326 formally prescribes.
  • Lat/lon → tile conversion is offered for epsg4326 and epsg3857 only. The two polar stereographic grids need tile_row/tile_col directly, and the tool says so rather than returning a wrong tile.

Tools

  • gibs_list_layers — “What NASA satellite imagery layers are there for wildfires / sea ice / aerosols?” — search NASA GIBS, the ~1,300-layer imagery catalogue behind NASA Worldview. AUTHORITATIVE for which global satellit
  • gibs_layer_info — Everything NASA GIBS publishes about one imagery layer: its full title, the dates it actually covers (as ISO 8601 start/end/period ranges), the most recent date available, native tile grid and zoom de
  • gibs_tile_url — “Give me the satellite image of Los Angeles on 2026-09-10” — build a ready-to-fetch NASA GIBS image tile URL for a layer, a date and a place. Give a latitude/longitude and a zoom level and it computes

Tools

  • gibs_layer_info — Everything NASA GIBS publishes about one imagery layer: its full title, the dates it actually covers (as ISO 8601 start/end/period ranges), the most recent date available, native tile grid and zoom de
  • gibs_list_layers — What NASA satellite imagery layers are there for wildfires / sea ice / aerosols? — search NASA GIBS, the ~1,300-layer imagery catalogue behind NASA Worldview. AUTHORITATIVE for which global satellite
  • gibs_tile_url — Give me the satellite image of Los Angeles on 2026-09-10 — build a ready-to-fetch NASA GIBS image tile URL for a layer, a date and a place. Give a latitude/longitude and a zoom level and it computes t

Regenerated from source · build September 18, 2026