Worldpop
liveDemographicsWorldPop 100 m gridded population estimates from the University of Southampton — total population inside any polygon you supply, for any year from 2000 to 2020, plus the age and sex structures behind it.
Tools
worldpop_stats_polygonTotal 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
No parameters required.
Try it
worldpop_datasetsList 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
No parameters required.
Try it
worldpop_task_statusCheck 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
No parameters required.
Try it
Test with curl
The gateway speaks JSON-RPC 2.0 over HTTP POST. You can test any pack directly from the terminal.
curl -X POST https://gateway.pipeworx.io/worldpop/mcp \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'curl -X POST https://gateway.pipeworx.io/worldpop/mcp \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"worldpop_stats_polygon","arguments":{}}}'Use with the SDK
Install @pipeworx/sdk to call tools from any TypeScript/Node project.
import { Pipeworx } from '@pipeworx/sdk';
const px = new Pipeworx();
const result = await px.call("worldpop_stats_polygon", {});// Or ask in plain English:
const answer = await px.ask("worldpop 100 m gridded population estimates from the university of southampton — total population inside any polygon you supply, for any year from 2000 to 2020, plus the age and sex structures behind it");