Water Quality Portal
liveChemistryWater Quality Portal (WQP) MCP — US ambient water-chemistry monitoring
Tools
wqp_search_sitesFind US water-quality monitoring stations (streams, lakes, wells, estuaries) by state, county, HUC, bounding box or organization. AUTHORITATIVE for "where is water sampled near X" — returns the statio
No parameters required.
Try it
wqp_get_resultsIndividual water-quality sample results for one or more monitoring stations — the measured value, unit, analytical method, sample depth and collection date. AUTHORITATIVE for "what was the nitrate/lea
No parameters required.
Try it
wqp_results_near_pointWater-quality sample results within a radius of a latitude/longitude — the "is the water near me tested, and what did it say" tool. Returns measured values with their station, date and unit. Sourced f
No parameters required.
Try it
wqp_list_characteristicsLook up the exact controlled-vocabulary spelling the Water Quality Portal expects for an analyte, site type, organization, state or county code. Call this FIRST when a name might not match — "nitrate"
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/water-quality-portal/mcp \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'curl -X POST https://gateway.pipeworx.io/water-quality-portal/mcp \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"wqp_search_sites","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("wqp_search_sites", {});// Or ask in plain English:
const answer = await px.ask("water quality portal (wqp) mcp — us ambient water-chemistry monitoring");