@pipeworx/global-forest-watch
Connect: https://gateway.pipeworx.io/global-forest-watch/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
The Global Forest Watch Data API (WRI / UMD) — the catalogue and query surface behind GFW: annual tree cover loss and gain, primary forest extent, GLAD and RADD deforestation alerts, VIIRS/MODIS fire alerts, carbon flux, protected areas, concessions and Aqueduct water risk.
Tools
gfw_datasets(query?, limit?, page?)— list or keyword-search the catalogue (382 datasets as of 2026-09). With aquerythe whole catalogue is walked, capped at 5 upstream pages. Keyless.gfw_dataset(dataset, version?)— one dataset’s metadata (source, citation, resolution, coverage, update frequency, cautions, licence) and version list; with a version, also that version’s status, assets and field/band list. Keyless.gfw_query(dataset, sql, version?, limit?, _apiKey)— read-only SELECT over one dataset version. Needs a caller key.
Auth
Catalogue browsing is keyless and verified so (2026-09-17). The /query
endpoint requires an x-api-key and answers
403 "Request is missing valid API key" without one.
No platform key is provisioned. The intended env var when one lands is
PLATFORM_GFW_KEY; sign up at https://globalforestwatch.org and mint a key
with POST /auth/token then POST /auth/apikey on the data API.
platformKeyEnv is deliberately NOT declared while the key is unset, for the
same reason as copernicus-cds — see that README’s Auth section. Add it in the
same change that lands the secret.
Data sources
- https://data-api.globalforestwatch.org/datasets — catalogue. Paging is
page[number]/page[size](JSON:API style, square brackets); the response carriesmeta.total_itemsandmeta.total_pages. - https://data-api.globalforestwatch.org/dataset/{d} — dataset metadata.
- https://data-api.globalforestwatch.org/dataset/{d}/{version} — version
metadata.
latestis a valid version alias, but it 307-redirects to the concrete version, so the fetch must follow redirects. A barecurlwithout-Lsees a 307 with an empty body, which reads as an outage. - https://data-api.globalforestwatch.org/dataset/{d}/{version}/fields —
columns/bands. Raster datasets report the column name under
pixel_meaningrather thanname. - https://data-api.globalforestwatch.org/dataset/{d}/{version}/query — SQL.
The table is always called
data.
Tools
- gfw_datasets — List or keyword-search the Global Forest Watch Data API catalogue — the WRI/UMD datasets behind GFW: annual tree cover loss and gain, primary forest extent, GLAD/RADD deforestation alerts, fire alerts
- gfw_dataset — Full detail for ONE Global Forest Watch dataset — metadata (source, citation, spatial resolution, geographic coverage, update frequency, cautions, licence) plus its version list. Pass a version (or “l
- gfw_query — Run a read-only SQL SELECT against one Global Forest Watch dataset version — e.g. tree cover loss hectares by country and year, or deforestation alerts inside a bounding box. The table is always calle
Tools
gfw_dataset— Full detail for ONE Global Forest Watch dataset — metadata (source, citation, spatial resolution, geographic coverage, update frequency, cautions, licence) plus its version list. Pass a version (or lagfw_datasets— List or keyword-search the Global Forest Watch Data API catalogue — the WRI/UMD datasets behind GFW: annual tree cover loss and gain, primary forest extent, GLAD/RADD deforestation alerts, fire alertsgfw_query— Run a read-only SQL SELECT against one Global Forest Watch dataset version — e.g. tree cover loss hectares by country and year, or deforestation alerts inside a bounding box. The table is always calle