Openaq MCP Server

Find air-quality stations and read pollutant observations from government monitors via OpenAQ v3.

Remote serverstreamable-httpPython

What is the Openaq MCP server?

If you already use Openaq, the openaq mcp server is the piece that lets your assistant work with it directly. Find air-quality stations and read pollutant observations from government monitors via OpenAQ v3.

What the server does

  • Declarative tool and resource definitions — single file per primitive, framework handles registration and validation
  • Unified error handling — handlers throw, framework catches, classifies, and formats
  • Typed error contracts per tool — each network tool declares reason/code/when/recovery, so failures carry a concrete next move
  • Pluggable auth (none, jwt, oauth) and structured, request-scoped logging with optional OpenTelemetry tracing
  • STDIO and Streamable HTTP transports from one codebase
  • Hides the v3 location → sensor → measurement hierarchy — openaq_get_measurements resolves a station + parameter to the underlying sensor; openaq_get_readings joins the latest feed against the sensor map so every value is labeled

Installation

Because this one is hosted, setup is mostly authentication — you point your client at the endpoint and approve access. Nothing runs on your machine, so there is no runtime to keep patched.

Available tools

The toolset is worth reading before you wire it up, because it tells you what the integration is really for:

  • openaq_find_locations — Find monitoring stations near a point, in a bounding box, or by country. The required first step — readings and measurements key on the location id
  • openaq_get_readings — Latest measured value for every sensor at a station, each joined with its pollutant and unit. The current-conditions tool
  • openaq_get_measurements — Historical series for one pollutant at one station over a date range, with raw/hourly/daily aggregation. Large ranges spill to a DataCanvas
  • openaq_list_parameters — Catalog of measurable pollutants and their canonical units. The unit-disambiguation reference
  • openaq_list_countries — Catalog of country-level coverage — data span and parameters measured, filterable by parametersId to answer "which countries measure this
  • openaq_dataframe_describe — List the tables and columns staged on a DataCanvas so you can write valid SQL
  • openaq_dataframe_query — Run a read-only SELECT over staged measurement series
  • Prerequisites — The Prerequisites tool exposed by this server
  • Installation — The Installation tool exposed by this server

Credentials and setup notes

Configuration is passed through the environment: MCP_TRANSPORT_TYPE, OPENAQ_API_KEY, CANVAS_PROVIDER_TYPE, OPENAQ_API_BASE_URL. Treat anything key-shaped as a real credential — scope it to the minimum the server needs, and rotate it if it ever lands in a shared config.

Worth knowing first

  • Your data travels to the provider's service, so the usual questions apply about what you send and what they retain.
  • With 9 tools registered it takes up a noticeable share of the context window; turn it off in projects that never touch Openaq.
  • Missing credentials fail quietly in some clients — if no tools show up, check the environment block first.
  • Keep per-call confirmation enabled while you learn its behaviour; it is the cheapest safeguard you have.

Where it fits

This sits in the database access group, where several servers overlap in what they claim to do but differ sharply once you actually set them up. Openaq's toolset — openaq_find_locations, openaq_get_readings, openaq_get_measurements and 6 more — is a fair guide to whether it matches your workflow. It is maintained by cyanheads; worth a glance at recent repository activity before you build anything load-bearing on it.

This entry was verified against Openaq's own documentation before publication; SyncDev keeps the directory reviewed rather than auto-generated.

Available tools

ToolWhat it does
openaq_find_locationsFind monitoring stations near a point, in a bounding box, or by country. The required first step — readings and measurements key on the location id this returns.
openaq_get_readingsLatest measured value for every sensor at a station, each joined with its pollutant and unit. The current-conditions tool.
openaq_get_measurementsHistorical series for one pollutant at one station over a date range, with raw/hourly/daily aggregation. Large ranges spill to a DataCanvas.
openaq_list_parametersCatalog of measurable pollutants and their canonical units. The unit-disambiguation reference.
openaq_list_countriesCatalog of country-level coverage — data span and parameters measured, filterable by parametersId to answer "which countries measure this pollutant?". An availability check before a regional sweep.
openaq_dataframe_describeList the tables and columns staged on a DataCanvas so you can write valid SQL.
openaq_dataframe_queryRun a read-only SELECT over staged measurement series.
PrerequisitesThe Prerequisites tool exposed by this server.
InstallationThe Installation tool exposed by this server.

How to install the Openaq MCP server

{
  "mcpServers": {
    "openaq-mcp-server": {
      "type": "streamable-http",
      "url": "https://openaq.caseyjhand.com/mcp"
    }
  }
}

Configuration as documented by the project. Restart the client after saving.

Configuration

VariableDescriptionRequired
MCP_TRANSPORT_TYPEConfiguration value read at startup.Optional
OPENAQ_API_KEYCredential the server authenticates with.Yes
CANVAS_PROVIDER_TYPEConfiguration value read at startup.Optional
OPENAQ_API_BASE_URLEndpoint or connection string the server talks to.Yes

Example prompts to try

  • Use Openaq to openaq find locations.
  • Use Openaq to openaq get readings.
  • Use Openaq to openaq get measurements.

Frequently asked questions

It connects Openaq to MCP-compatible AI assistants such as Claude and Cursor, exposing 9 tools (openaq_find_locations, openaq_get_readings, openaq_get_measurements, and more) that the assistant can call on your behalf. Instead of copying data back and forth by hand, the assistant works with Openaq directly.