Openaq MCP Server
Find air-quality stations and read pollutant observations from government monitors via OpenAQ v3.
Connector by cyanheads · GitHub account verified by the MCP Registry
Install
Works with Claude Code, VS Code, Codex, Cursor, Windsurf, Claude Desktop. Read the repository before you give any tool access to your data.
npx agentmarket install connector/cyanheads-openaq-mcp-server
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Remote endpoint
https://openaq.caseyjhand.com/mcpRemote (HTTP)
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this server can do and what it asks for, from its tool list and install config. Checked Oct 25, 2026.
- Tools
- 7 read · 0 write · 1 delete
- Secrets
- 1 (API keys, tokens or passwords)
- Install scripts
- Not scanned yet
- Runs as
- Node.js package
Tools by what they do 8
Read from the source code; the running server may list different tools.
Read 7 · Look things up without changing anything.
openaq_dataframe_describeopenaq_dataframe_queryopenaq_find_locationsopenaq_get_measurementsopenaq_get_readingsopenaq_list_countriesopenaq_list_parameters
Delete 1 · Delete, drop, revoke or wipe things.
openaq_dataframe_drop
Secrets and settings it asks for
Secrets: values you paste in that let it act as you.
OPENAQ_API_KEY
Other settings (environment variables or headers).
CANVAS_PROVIDER_TYPEMCP_LOG_LEVELOPENAQ_API_BASE_URLOPENAQ_ENABLE_CANVAS_DROP
Network hosts it talks to 1
openaq.caseyjhand.com· found in remote endpoint, install command
Tools (8)
Read from the source code; the running server may differ. Descriptions are the server’s own words; hidden characters are shown as [U+…].
openaq_dataframe_describeopenaq-mcp-server: dataframe describeread-onlyList 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.
openaq_dataframe_dropopenaq-mcp-server: dataframe dropcan change or delete dataDelete a measurement canvas and every table staged on it, releasing its resources. Pass the canvasId returned by openaq_get_measurements only when its staged data is no longer needed; other agents sharing that id lose access too. This does not delete any OpenAQ data. Returns dropped=false when the canvas is unknown, expired, or already deleted. Available only when OPENAQ_ENABLE_CANVAS_DROP=true.
openaq_dataframe_queryopenaq-mcp-server: dataframe queryread-onlyDescription is built at runtime.
openaq_find_locationsopenaq-mcp-server: find locationsread-onlyFind air-quality monitoring stations (measured by physical sensors, not modeled) near a point, within a bounding box, or by country, optionally narrowed to one parameter, one station class (reference monitors or low-cost sensors, mobile or fixed), or one provider network. Returns each station's id, name, coordinates, distance from the query point (when searching by coordinates), country, provider name and id, 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 t…
openaq_get_measurementsopenaq-mcp-server: get measurementsread-onlyHistorical 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). A date-only bound means the station's local calendar day. Large ranges produce thousands of rows and stage on a DataCanvas: the response returns a preview plus a canvasId and tabl…
openaq_get_readingsopenaq-mcp-server: get readingsread-onlyLatest 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). The station block names its provider (for attribution) and timezone. 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 times…
openaq_list_countriesopenaq-mcp-server: list countriesread-onlyCatalog of country-level coverage: id, OpenAQ country 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. Results come a page at a time (20 countries by default); totalCount is the full filtered count.
openaq_list_parametersopenaq-mcp-server: list parametersread-onlyCatalog 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 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.
Signals
- Stars
- 2
- Forks
- 0
- Open issues
- 3
- Weekly downloads
- 87
- Last commit
- Sep 26, 2026 (1 month ago)
- Last release
- Sep 26, 2026 (1 month ago)
- Last package publish
- Sep 26, 2026 (1 month ago)
From GitHub (fetched Oct 24, 2026) and the package registry.
Details
- Registry name
io.github.cyanheads/openaq-mcp-server- Version
- 0.4.1
- Auth
- Auth not stated, API key
- Packages
- npm @cyanheads/openaq-mcp-servernpm @cyanheads/openaq-mcp-server
- License
- Apache-2.0
- Repository
- github.com/cyanheads/openaq-mcp-server
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
More from cyanheads
- 0.655score
MCP Ts Template
cyanheads
TypeScript template for building MCP servers with declarative tooling, observability, and auth.
ConnectorAFreshness: ARemoteLocalRead-only★ 152Claude Code +5 - 0.625score
Git MCP Server
cyanheads
Comprehensive Git MCP server enabling native git tools including clone, commit, worktree, & more.
ConnectorBFreshness: BRemoteLocal★ 242↓ 1.6K/wkClaude Code +5 - 0.618score
Obsidian MCP Server
cyanheads
Read, write, search, and surgically edit Obsidian notes, tags, and frontmatter.
ConnectorAFreshness: ARemoteLocal★ 701Claude Code +5 - 0.597score
PubMed MCP Server
cyanheads
Search PubMed/Europe PMC, fetch articles and full text (PMC/EPMC/Unpaywall), citations, MeSH terms.
ConnectorAFreshness: ARemoteLocalRead-only★ 162↓ 1.6K/wkClaude Code +5 - 0.545score
Ntfy MCP Server
cyanheads
Send, manage, and replay ntfy push notifications.
ConnectorAFreshness: ARemoteLocal★ 23Claude Code +5 - 0.542score
Brapi MCP Server
cyanheads
Collaborative BrAPI v2.1 MCP workspace: studies, germplasm, genotypes across Breedbase, T3, more.
ConnectorAFreshness: ARemoteLocal★ 4↓ 660/wkClaude Code +5
Cite this page
Openaq MCP Server. Agent Mart. https://agentmart.dev/connectors/cyanheads-openaq-mcp-server (last updated 2026-10-24)