mcp server
openaq-mcp-server
Find air-quality stations and read pollutant observations from government monitors via OpenAQ v3.
Description as published by the maintainer. Source
- version 0.1.7
- active
active — Most recent push to the repository was 2026-07-27.
What this server can do
7 functions, named and described by the server itself. Parameter names are shown because they say more about what a function does than its name usually does.
openaq_dataframe_describe(canvas_id)- List the tables and columns staged on a DataCanvas so you can write valid SQL for openaq_dataframe_query without guessing column names. Returns each measurement table (measurements_<sensorId>) with its row count and column names. Requires DataCanvas to be enabled. Required: canvas_id.
openaq_dataframe_query(sql, canvas_id)- Run a read-only SQL SELECT against the measurement tables openaq_get_measurements staged on a DataCanvas. Reference tables by the name the measurements call returned (measurements_<sensorId>). For aggregation (monthly means, exceedance counts) and cross-sensor comparison over series too large to inline. Only SELECT is allowed — writes, DDL, and file/network table functions are rejected. Required: canvas_id, sql.
openaq_find_locations(iso, bbox, page, limit, radius, coordinates, parametersId)- Find air-quality monitoring stations (measured by physical sensors, not modeled) near a point, within a bounding box, or by country. Returns each station's id, name, coordinates, distance from the query point (when searching by coordinates), country, provider, the parameters its sensors measure, and the timestamp of its most recent data (datetimeLast). Required first step: openaq_get_readings and openaq_get_measurements key on the location id this returns. Coverage is uneven and real — a station only reports the parameters it measures, and the absence of a nearby station means no monitoring there, not clean air. For dense modeled coverage anywhere on Earth, use open-meteo-mcp-server's air-quality tool instead.
openaq_get_measurements(limit, canvas_id, datetimeTo, locationId, aggregation, datetimeFrom, parametersId)- Historical measurement series for one pollutant at one station over a date range — for trend analysis and "was last week worse than the monthly average?". Pass a locationId and a parametersId and work in stations — you get the series for that pollutant at that station. Choose aggregation: raw (every reported value), hourly, or daily — daily and hourly add a per-bucket statistical summary (min, median, max, mean, sd). Large ranges produce thousands of rows and spill to a DataCanvas: the response returns a preview plus a canvasId and table name you query with openaq_dataframe_query. Values carry their unit; the server never converts between µg/m³, ppm, and ppb. Required: locationId, parametersId.
openaq_get_readings(locationId, coordinates, parametersId)- Latest measured value for every sensor at a monitoring station — the current-conditions tool. Returns one record per parameter, each with the value, its unit, the UTC and local timestamp, and the sensor id, joined so every value carries its pollutant and unit (the raw latest feed is keyed only by sensor id). Pass a locationId from openaq_find_locations, or pass coordinates to auto-resolve to the nearest station that measures the requested parametersId. Data recency varies by station reporting cadence — read each value's timestamp to know whether "latest" is minutes or hours old. These are measured observations with coverage gaps, not a modeled grid.
openaq_list_countries(query, parametersId)- Catalog of country-level coverage: id, ISO code, name, the date span of available station data (datetimeFirst/datetimeLast), and which parameters are measured anywhere in that country. The availability check before a regional sweep — answers "which countries have NO2 monitoring?" and tells you whether a country has recent data before you call openaq_find_locations. Coverage is uneven worldwide; this surfaces where measured data exists.
openaq_list_parameters(query, pollutantsOnly)- Catalog of every measurable pollutant and its canonical unit: id, code, display name, unit, and a one-line description (pm25, pm10, o3, no2, so2, co, bc, and ~38 more). This is the unit-disambiguation reference — the same pollutant exists under several ids with different units (CO is id 4 in µg/m³, id 8 in ppm, id 102 in ppb), so use this to pick the exact parametersId for openaq_find_locations / openaq_get_readings / openaq_get_measurements and to interpret a reading's unit. A small bounded catalog fetched live from OpenAQ.
Last successful function declaration observed on . Source: https://openaq.caseyjhand.com/mcp. We list what the server declared; we do not call any of these functions.
Endpoint status observed on . Source: https://openaq.caseyjhand.com/mcp.
Signals
These are separate measurements of different things. They are deliberately not combined into one score, because a popularity number that mixes website traffic with saves and stars cannot be checked or acted on.
| Signal | Value | What it measures | Window | Observed | Source |
|---|---|---|---|---|---|
| GitHub stars | 2 | Number of GitHub accounts that bookmarked this repository since it was created. It is a bookmark count, not installs, not active users and not quality. | cumulative, all time | GitHub | |
| Last commit | 2026-07-27 | Date of the most recent push to any branch. This is the strongest cheap indicator of whether the project is still maintained. | point in time | GitHub | |
| Open issues | 0 | Open issues plus open pull requests, as GitHub counts them together. A high number can mean an active project or an abandoned one. | as of fetch | GitHub | |
| Latest published version | 0.1.7 | Latest version string the maintainer published to the registry. | as of fetch | Model Context Protocol | |
| Registry record last updated | 2026-07-27 | When the registry record was last updated by its maintainer. | point in time | Model Context Protocol | |
| License | Apache-2.0 | Licence GitHub detected in the repository. Detection can be wrong; the LICENSE file is authoritative. | as of fetch | GitHub | |
| First listed in the MCP Registry | 2026-07-27 | Date this server was first published to the official MCP Registry. Not a usage or quality measure. | point in time | Model Context Protocol | |
| repository status | active | The repository exists on GitHub and is not archived. This says nothing about how recently it was worked on. | as of fetch | GitHub | |
| mcp tools declared | 7 tools | Number of functions the server itself declared when asked to list them. This is what the server offers an agent, not a measure of how well any of them work. | as of probe | openaq.caseyjhand.com | |
| mcp endpoint status | ok | The server listed 7 functions when asked. | as of probe | openaq.caseyjhand.com |
Where to get it
Related, by what their authors tagged them
-
io.github.davidmosiah/wellness-air
— last commit 2026-08-01, shares air-quality, environment
Local-first air-quality MCP for AI agents — AirGradient, AirThings, PurpleAir, IQAir, Awair.
-
io.github.gabrielmahia/mazingira-mcp
— last commit 2026-08-06, shares environment
MCP server for environment and climate coordination in East Africa (mazingira = environment)
-
io.github.cyanheads/epa-mcp-server
— last commit 2026-07-30, shares air-quality, cyanheads
EPA data: ECHO facility compliance, TRI releases, Superfund, drinking water, and AirNow air quality.
-
io.github.CHANGCHINFU/mcp-gauge
— last commit 2026-07-31, shares air-quality
US government data (USGS/NOAA/SEC/FDA) with cryptographic proof; x402 pay-per-call, no API key
-
io.github.cyanheads/anime-mcp-server
— last commit 2026-07-30, shares cyanheads
Search anime/manga, franchise watch order, schedule, characters, rankings, studio filmography.
-
io.github.cyanheads/arxiv-mcp-server
— last commit 2026-07-27, shares cyanheads
Search arXiv, fetch paper metadata, and read full-text content.
-
io.github.cyanheads/astronomy-mcp-server
— last commit 2026-07-31, shares cyanheads
Offline observational astronomy: positions, rise/set, moon phases, eclipses, and seasons.
-
io.github.cyanheads/attack-surface-mcp-server
— last commit 2026-07-30, shares cyanheads
Passive external attack-surface mapping: CT subdomains, DNS, TLS, HTTP posture, RDAP/WHOIS, Shodan.
-
io.github.cyanheads/aviation-weather-mcp-server
— last commit 2026-07-30, shares cyanheads
Fetch METARs, TAFs, PIREPs, and SIGMETs/AIRMETs from the NWS Aviation Weather Center.
-
io.github.cyanheads/biorxiv-mcp-server
— last commit 2026-07-11, shares cyanheads
Search and retrieve bioRxiv and medRxiv preprints — by DOI, date interval, or keyword — via MCP.
These share tags the maintainers applied themselves, such as air-quality, environment, cyanheads. Common tags like "mcp" or "ai" are ignored for this: agreeing with six hundred other projects is not a similarity.
This is not a recommendation and not a test result. It is a map of what the authors said their work is about.
Also from cyanheads
-
io.github.cyanheads/bls-labor-mcp-server
— last commit 2026-07-17
Fetch US Bureau of Labor Statistics data — CPI, unemployment, wages, JOLTS, and more via MCP.
-
io.github.cyanheads/bls-mcp-server
— last commit 2026-07-17
Fetch US Bureau of Labor Statistics data — CPI, unemployment, wages, JOLTS, and more via MCP.
-
io.github.cyanheads/bluesky-mcp-server
— last commit 2026-07-31
Search posts, profiles, feeds, threads, and trending topics on Bluesky.
-
io.github.cyanheads/brapi-mcp-server
— last commit 2026-07-16
Collaborative BrAPI v2.1 MCP workspace — studies, germplasm, genotypes across Breedbase, T3, more.
-
io.github.cyanheads/calculator-mcp-server
— last commit 2026-07-02
Evaluate, simplify, and differentiate mathematical expressions.
-
io.github.cyanheads/cdc-health-mcp-server
— last commit 2026-07-11
Search and query CDC public health data — mortality, vaccinations, surveillance, behavioral risk.
-
io.github.cyanheads/census-mcp-server
— last commit 2026-07-31
Query U.S. Census Bureau data, variables, and geography via MCP.
-
io.github.cyanheads/chembl-mcp-server
— last commit 2026-07-30
Link compounds to protein targets, rank bioactivity, and look up drug mechanisms and indications.
-
io.github.cyanheads/clinicaltrialsgov-mcp-server
— last commit 2026-07-26
Search ClinicalTrials.gov — find studies, retrieve results, match patients to eligible trials.
-
io.github.cyanheads/clipboard-mcp-server
— last commit 2026-07-30
Read, write, and inspect the system clipboard on macOS, Linux (X11/Wayland), and Windows via MCP.
How the author describes it
Topics the maintainer set on GitHub: ai-agents, air-quality, cyanheads, environment, mcp, mcp-server, model-context-protocol, openaq, pollution, typescript.
This record as data
Every field on this page, with its source and observation date, is in the catalog JSON. Fetch the whole kind at once instead of parsing this HTML.
GET /api/v1/entries/mcp_server.json