# Openaq [Health: Active]

**Category:** 🌳 Environment & Nature  
**Repository:** https://github.com/pipeworx-io/mcp-openaq  
**GitHub Stars:** 0  
**Views:** 2  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/openaq

## Description
OpenAQ MCP — wraps OpenAQ v2 API (free, no auth required)

## Tools
Capabilities this server exposes over MCP:

- **air_quality_near** — Get the latest air-quality readings (PM2.5, PM10, O3, NO2, SO2, CO, etc.) at the monitoring station NEAREST to a latitude/longitude. PREFER for "air quality near me", "what is the air quality at <coordinates>", "is the air bad in <place> right now". Returns the nearest station with its most recent pollutant values, plus other nearby stations.
- **find_stations** — Find OpenAQ air-quality monitoring stations by location: a city or place name, coordinates+radius (nearest first), a country (ISO 3166-1 alpha-2 code), or a bounding box. Returns station id, name, country, coordinates, and the pollutants each measures (with sensor ids), plus resolved_place echoing the coordinates a city name resolved to. This is the first step for a historical series: find the station here, then pass its sensor_id to get_measurements. At least one location argument is required — the tool will not return an unfiltered global list.
- **get_latest** — Get the latest reading for every pollutant at a specific OpenAQ station (by location id from find_stations). Returns each parameter (PM2.5, O3, NO2, etc.) with its value, units, and measurement time.
- **get_measurements** — Get the most recent time series (hourly or daily aggregates) for a single OpenAQ sensor (sensor id from find_stations), newest first. Use for pollutant trends over time at one station/parameter. Returns the sensor's LAST `limit` readings — note that many OpenAQ sensors are archived and stopped reporting years ago, so "most recent" can legitimately be several years old: always read the returned timestamps rather than assuming the data is current. Use find_stations or get_latest to pick a sensor that is still reporting.

## Claude Desktop Quick Installation
Install path detected from listing signals. Uses `npx` (confidence: high):

```json
"mcpServers": {
  "openaq": {
    "command": "npx",
    "args": ["-y","@pipeworx/mcp-openaq"]
  }
}
```

## Documentation

## What Openaq MCP server does

Openaq MCP server exposes OpenAQ air-quality data through four MCP tools. It covers monitoring stations, pollutant readings, and historical sensor measurements. Supported pollutants can include PM2.5, PM10, ozone, nitrogen dioxide, sulfur dioxide, carbon monoxide, and other parameters returned by the selected station or sensor.

The server is suited to agents that need factual air-quality data tied to a place or coordinate. It does not calculate an air-quality index or interpret measurements against health standards in the provided interface; it returns the data supplied by OpenAQ.

## How it works

The Openaq MCP server can be connected to the hosted Pipeworx endpoint or run locally over standard input and output. The hosted pack endpoint is available at `https://gateway.pipeworx.io/openaq/mcp`. It includes the OpenAQ tools and shared Pipeworx gateway tools. A full gateway connection is also available at `https://gateway.pipeworx.io/mcp`.

For a local connection, the package can be started with `npx -y @pipeworx/mcp-openaq`. The local process exposes only this pack's four tools and communicates using MCP over stdin/stdout. The same package can be added to an MCP client's server configuration with the `command` and `args` values shown below.

Requests can also be made through the gateway's HTTP tool endpoint. For example, `air_quality_near` accepts latitude and longitude in a JSON POST request.

## Setup and configuration

A hosted MCP configuration can use:

```json
{
  "mcpServers": {
    "openaq": {
      "url": "https://gateway.pipeworx.io/openaq/mcp"
    }
  }
}
```

The standalone configuration is:

```json
{
  "mcpServers": {
    "openaq": {
      "command": "npx",
      "args": ["-y", "@pipeworx/mcp-openaq"]
    }
  }
}
```

The provided setup does not require an OpenAQ API key. The local mode does not require a Pipeworx account or gateway round trip. No required environment variables are documented.

## Tools and capabilities

- `air_quality_near` selects the monitoring station nearest to latitude and longitude and returns its newest pollutant readings, along with other nearby stations.
- `find_stations` searches by city or place, coordinates and radius, ISO alpha-2 country code, or bounding box. Results include station identifiers, coordinates, measured pollutants, and sensor IDs. At least one location filter is required.
- `get_latest` returns the newest reading for each pollutant at a station identified by its OpenAQ location ID.
- `get_measurements` returns the newest readings for one sensor, using hourly or daily aggregation and a requested result limit. Use the sensor ID returned by `find_stations`.

A historical workflow generally starts with `find_stations`, then uses a returned sensor ID with `get_measurements`. For a nearby current reading, `air_quality_near` is the direct choice.

## Limitations and notes

The Openaq MCP server reports timestamps from OpenAQ, so “latest” does not always mean recently collected. Some sensors are archived and may have stopped reporting years ago. Check the timestamps in `get_measurements` rather than assuming that the newest returned record is current. `find_stations` and `get_latest` can help identify stations and sensors that are still reporting.

The hosted pack endpoint lists shared Pipeworx meta-tools in addition to the four OpenAQ tools. The local stdio mode lists only the pack tools. The gateway's exact tool scope can change, so its `initialize` response is authoritative for a particular connection.

_Full upstream README: https://allmcps.com/mcp/openaq/readme_

