Humanitarian Data Exchange
live DataHumanitarian Data Exchange (HDX) MCP — data.humdata.org, the open
Tools
search_datasets Search the Humanitarian Data Exchange catalogue (CKAN package_search) for datasets on displacement, refugees, food security, conflict, disasters, health, population, etc. Returns matching datasets wit
No parameters required.
Try it
dataset_details Full dataset record by id or slug (CKAN package_show), including its resources. Each resource has a "download_url"/"url" pointing at the actual data file (usually CSV/XLSX) — that is how you read the
No parameters required.
Try it
list_locations List the locations on HDX (CKAN group_list) — countries and crises, each keyed by a lowercase ISO3 code (e.g. {"name":"syr","display_name":"Syrian Arab Republic"}). Use a code as fq="groups:<name>" in
No parameters required.
Try it
list_organizations List the publishing organizations on HDX (CKAN organization_list) — UN agencies and NGOs such as OCHA, UNHCR, WFP, IDMC, ACAPS. Use an org "name" as fq="organization:<name>" in search_datasets.
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/hdx/mcp \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}' curl -X POST https://gateway.pipeworx.io/hdx/mcp \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"search_datasets","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("search_datasets", {}); // Or ask in plain English:
const answer = await px.ask("humanitarian data exchange (hdx) mcp — data");