@pipeworx/worldpop

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

WorldPop (University of Southampton) 100 m gridded population estimates, 2000-2020, summed over any polygon you supply. Answers “how many people live inside this boundary” for arbitrary geometry — a catchment, a flood extent, a service area — where census tables only answer for official administrative units.

Tools

  • worldpop_stats_polygon(geojson, year?, dataset?, runasync?) — total population inside a GeoJSON Polygon/MultiPolygon.
  • worldpop_datasets() — the population surfaces the stats service exposes.
  • worldpop_task_status(taskid) — state and result of one async job.

Auth

Keyless. WorldPop asks for fair use (roughly 1,000 calls/day) and no registration.

Data sources

Two traps this pack absorbs:

The stats call is ASYNCHRONOUS and answers 200 either way. Submitting returns {"status":"created","taskid":...} with no population in it — a caller that reads that as the answer gets a silent zero. worldpop_stats_polygon polls /tasks/{id} until status is finished (12 attempts, ~1.5 s apart; a city-sized polygon finishes in about 3 s) and returns the taskid regardless, so nothing is lost if the polling window expires.

A GeoJSON Feature is rejected. WorldPop’s validator accepts only a bare geometry and answers "Invalid GeoJSON: ... is not valid under any of the given schemas" — as a 200 on the task, with error: true, not as an HTTP error. Every mapping tool hands you a Feature, so normaliseGeometry unwraps Feature and FeatureCollection before the call.

Tools

  • worldpop_stats_polygon — Total population inside any polygon you draw, from WorldPop 100 m gridded population estimates (University of Southampton), for any year 2000-2020. Pass a GeoJSON Polygon or MultiPolygon in WGS84 and
  • worldpop_datasets — List the WorldPop datasets and services the stats API exposes — which population surfaces (total counts, age/sex structures) can be summed over a polygon, with the description of what each covers. Key
  • worldpop_task_status — Check or collect a WorldPop stats job by its task id. WorldPop runs polygon statistics asynchronously; pass the taskid returned by worldpop_stats_polygon (with runasync) to get the state and, once fin

Tools

  • worldpop_datasets — List the WorldPop datasets and services the stats API exposes — which population surfaces (total counts, age/sex structures) can be summed over a polygon, with the description of what each covers. Key
  • worldpop_stats_polygon — Total population inside any polygon you draw, from WorldPop 100 m gridded population estimates (University of Southampton), for any year 2000-2020. Pass a GeoJSON Polygon or MultiPolygon in WGS84 and
  • worldpop_task_status — Check or collect a WorldPop stats job by its task id. WorldPop runs polygon statistics asynchronously; pass the taskid returned by worldpop_stats_polygon (with runasync) to get the state and, once fin

Regenerated from source · build September 18, 2026