OpenAQ

live EnvironmentHealth

Get current air quality readings from worldwide sensor stations. Filter by country code (e.g., "US", "IN").

3 tools
0ms auth
free tier 50 calls/day

Tools

get_latest

Get current air quality readings from worldwide sensor stations. Filter by country code (e.g., "US", "IN"). Returns PM2.5, PM10, ozone, NO2, SO2, CO levels with timestamps.

No parameters required.

Try it
get_locations

Find air quality monitoring stations by city and/or country (e.g., city="Delhi", country="IN"). Returns station coordinates, names, and available pollutant parameters.

No parameters required.

Try it
get_measurements

Get historical air quality data for a specific station. Filter by pollutant (e.g., "pm25", "o3", "no2"). Returns timestamped readings and values over time.

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.

List available tools
bash
curl -X POST https://gateway.pipeworx.io/openaq/mcp \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'
Call a tool
bash
curl -X POST https://gateway.pipeworx.io/openaq/mcp \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"get_latest","arguments":{}}}'

Use with the SDK

Install @pipeworx/sdk to call tools from any TypeScript/Node project.

TypeScript
import { Pipeworx } from '@pipeworx/sdk';
const px = new Pipeworx();
const result = await px.call("get_latest", {});
ask_pipeworx
// Or ask in plain English:
const answer = await px.ask("get current air quality readings from worldwide sensor stations");