Prototyp · Vorschau: alle Server aus der offiziellen Registry, alle 30 Minuten synchronisiert. Bewertungen und Benutzerkonten folgen in einem späteren Schritt.
PopNx MCPMCP-Server für alle, die KI nutzen · in einfachen Worten erklärt

Openaq MCP Server

von cyanheadsVersion 0.4.1i★ –iComputer oder Cloud
Name in der Registryio.github.cyanheads/openaq-mcp-server

Installieren

Überblick

Beschreibung vom Entwickler (englisches Original)

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

Die drei Säulen von PopNx MCP

Diese drei werden nie zu einer Punktzahl zusammengefasst: Meinungen, Messungen und Beliebtheit sind verschiedene Dinge.

Was du damit machen kannst

Für diesen Server haben wir noch keine Zusammenfassung in einfacher Sprache geschrieben. Unten stehen die Fakten, die wir aus der Registry gelesen haben.

  • Verbindung: Computer oder Cloud
  • Transport: stdio, Streamable HTTP
  • Kategorie: Recht & Behördendaten
  • Das musst du eintragen: OPENAQ_API_KEY

Installation

Wähle die KI-App, die du nutzt, und kopiere die Einstellungen.

Bevor du installierst

  • Basischecks: 1 von 1 bestanden
  • Läuft auf dem Server des Entwicklers: Was du fragst, läuft über dessen Server.
  • Das trägst du selbst ein: OPENAQ_API_KEY, OPENAQ_API_BASE_URL, CANVAS_PROVIDER_TYPE, OPENAQ_ENABLE_CANVAS_DROP, MCP_LOG_LEVEL

Als geheim markierte Werte sind Schlüssel zu deinem Konto. Gib sie nie weiter und füge sie nie in einen Chat ein.

Du brauchst

  • Läuft in der CloudNichts zu installieren; die Verbindung läuft übers Internet
  • npmNode.js installiert (für den Befehl npx)

Welche App nutzt du?

Wähle oben deine App. Wir merken sie uns, damit der Button beim nächsten Mal „In … installieren“ anzeigt.

Funktioniert in Claude im Web, auf dem Desktop und auf dem Handy:

  1. Öffne Settings → Connectors
  2. Tippe auf Add custom connector
  3. Füge die Adresse unten ein und tippe auf Add
  4. Wenn eine Anmeldung verlangt wird, melde dich beim Dienst des Entwicklers an
SettingsConnectors1+ Add2https://…3
https://openaq.caseyjhand.com/mcp

Oder führ ihn auf deinem Computer aus

Öffne Claude Desktop → Settings → Developer → Edit Config und füge dies in claude_desktop_config.json ein

{
  "mcpServers": {
    "openaq": {
      "command": "npx",
      "args": [
        "-y",
        "@cyanheads/openaq-mcp-server",
        "run",
        "start:stdio"
      ],
      "env": {
        "OPENAQ_API_KEY": "your-value",
        "OPENAQ_API_BASE_URL": "your-value",
        "CANVAS_PROVIDER_TYPE": "your-value",
        "OPENAQ_ENABLE_CANVAS_DROP": "your-value",
        "MCP_LOG_LEVEL": "your-value"
      }
    }
  }
}

Führe das in deinem Terminal aus

claude mcp add --transport http openaq https://openaq.caseyjhand.com/mcp

Oder führ ihn auf deinem Computer aus

claude mcp add openaq --env OPENAQ_API_KEY=your-value --env OPENAQ_API_BASE_URL=your-value --env CANVAS_PROVIDER_TYPE=your-value --env OPENAQ_ENABLE_CANVAS_DROP=your-value --env MCP_LOG_LEVEL=your-value -- npx -y @cyanheads/openaq-mcp-server run start:stdio

Trag die leeren Werte ein, bevor du ihn startest.

In Cursor öffnen

Oder kopier die Einstellungen selbst

In .cursor/mcp.json in deinem Projekt oder in ~/.cursor/mcp.json einfügen

{
  "mcpServers": {
    "openaq": {
      "url": "https://openaq.caseyjhand.com/mcp"
    }
  }
}

Oder führ ihn auf deinem Computer aus

In Cursor öffnen

Oder kopier die Einstellungen selbst

In .cursor/mcp.json in deinem Projekt oder in ~/.cursor/mcp.json einfügen

{
  "mcpServers": {
    "openaq": {
      "command": "npx",
      "args": [
        "-y",
        "@cyanheads/openaq-mcp-server",
        "run",
        "start:stdio"
      ],
      "env": {
        "OPENAQ_API_KEY": "your-value",
        "OPENAQ_API_BASE_URL": "your-value",
        "CANVAS_PROVIDER_TYPE": "your-value",
        "OPENAQ_ENABLE_CANVAS_DROP": "your-value",
        "MCP_LOG_LEVEL": "your-value"
      }
    }
  }
}

Dein Browser fragt, ob er die App öffnen darf, dann zeigt die App die Einstellungen und bittet dich um Bestätigung. Schlüsselwerte bleiben leer, damit du sie selbst einträgst.

In VS Code öffnen

Oder kopier die Einstellungen selbst

In .vscode/mcp.json in deinem Projekt einfügen

{
  "servers": {
    "openaq": {
      "type": "http",
      "url": "https://openaq.caseyjhand.com/mcp"
    }
  }
}

Oder führ ihn auf deinem Computer aus

In VS Code öffnen

Oder kopier die Einstellungen selbst

In .vscode/mcp.json in deinem Projekt einfügen

{
  "servers": {
    "openaq": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "@cyanheads/openaq-mcp-server",
        "run",
        "start:stdio"
      ],
      "env": {
        "OPENAQ_API_KEY": "your-value",
        "OPENAQ_API_BASE_URL": "your-value",
        "CANVAS_PROVIDER_TYPE": "your-value",
        "OPENAQ_ENABLE_CANVAS_DROP": "your-value",
        "MCP_LOG_LEVEL": "your-value"
      }
    }
  }
}

Dein Browser fragt, ob er die App öffnen darf, dann zeigt die App die Einstellungen und bittet dich um Bestätigung. Schlüsselwerte bleiben leer, damit du sie selbst einträgst.

ChatGPT verbindet sich nur mit Servern im Internet:

  1. Öffne ChatGPT im Web → Settings → Connectors (Apps)
  2. Tippe auf Create oder Add (bei manchen Tarifen musst du zuerst Developer mode unter Advanced einschalten)
  3. Füge die Adresse unten ein, gib ihr einen Namen und speichere
  4. Wenn eine Anmeldung verlangt wird, melde dich beim Dienst des Entwicklers an
SettingsConnectors1+ Create2https://…3
https://openaq.caseyjhand.com/mcp

Menünamen können sich je nach Tarif und mit der Zeit leicht unterscheiden.

Deine Auswahl bleibt in einem Cookie auf diesem Gerät; kein Konto nötig.

Werte, die du selbst einträgst

  • OPENAQ_API_KEY geheim erforderlich env
    OpenAQ v3 API key, sent as the X-API-Key header. Free from openaq.org.
  • OPENAQ_API_BASE_URL env
    OpenAQ v3 API base URL override (testing / proxy).
  • CANVAS_PROVIDER_TYPE env
    Set to 'duckdb' to enable DataCanvas SQL over large measurement series.
  • OPENAQ_ENABLE_CANVAS_DROP env
    Enable deletion of complete staged canvases; requires CANVAS_PROVIDER_TYPE=duckdb.
  • MCP_LOG_LEVEL env
    Sets the minimum log level for output (e.g., 'debug', 'info', 'warn').

Diese Einstellungen werden aus dem Registry-Eintrag des Entwicklers erzeugt. Wenn in der README etwas anderes steht, folge der README.

Was er kann

Die Tool-Liste dieses Servers haben wir noch nicht gelesen; wir prüfen die Endpunkte reihum.

Basischecksi

Wir prüfen Informationen, die jeder sehen kann; den Code haben wir nicht gelesen. Checks, die nicht zutreffen, werden nicht mitgezählt. · Geprüft am 8. Nov. 2026

  • ✓ Bestanden

    Entwickler passt zum Repo

    Der Registry-Name wurde mit dem GitHub-Konto cyanheads bestätigt, dem das Repo gehört

  • … Noch nicht geprüft

    Wird noch gepflegt

    Dieses Repo haben wir noch nicht von GitHub gelesen

  • … Noch nicht geprüft

    Hat eine Lizenz

    Dieses Repo haben wir noch nicht von GitHub gelesen

  • … Noch nicht geprüft

    Endpunkt antwortet

    Noch nicht geprüft; wir prüfen die Endpunkte reihum

  • … Noch nicht geprüft

    Anmeldung mit OAuth

    Noch nicht geprüft; wir prüfen die Endpunkte reihum

  • … Noch nicht geprüft

    Keine versteckten Anweisungen in Tool-Beschreibungen

    Noch nicht geprüft; wir lesen die Tool-Liste, wenn wir den Endpunkt prüfen

Im Vergleich mit anderen in Recht & Behördendateni

  • Mehr Sterne als 0 % der anderen 1758 Server in dieser Kategorie
  • Neuer in der Registry veröffentlicht als 43 % der anderen 1758 Server in dieser Kategorie
  • Basischecks gleich gut wie oder besser als bei 100 % der anderen 1758 Server in dieser Kategorie

Verglichen mit allen aktiven Servern dieser Kategorie in der Registry. Sterne zählen nur, wenn dem Herausgeber das Repo gehört.

Häufige Fragen

Ist Openaq MCP Server sicher?

Er hat 1 von 1 zutreffenden Basischecks bestanden. Den Code haben wir nicht gelesen. Bevor du einen Schlüssel oder Token hinzufügst, sieh nach, welche Zugriffe der Server verlangt, und nutze einen Schlüssel, der nur die Berechtigungen hat, die du brauchst.

Welche Schlüssel oder Codes braucht er?

Das musst du eintragen: OPENAQ_API_KEY

Läuft er auf meinem Computer oder in der Cloud?

Beides geht: Installiere ihn auf deinem Computer oder verbinde dich mit der Cloud-Version.

Wird er noch gepflegt?

Das GitHub-Repo wurde zuletzt – geändert, und die neueste Version (0.4.1) kam vor 43 Tagen in die Registry.

Welche Apps können ihn nutzen?

Apps, die MCP unterstützen, etwa Claude Desktop, Claude Code, Cursor und VS Code. Er verbindet sich per URL, also funktionieren auch Apps, die Remote-MCP-Server akzeptieren, zum Beispiel ChatGPT im Entwicklermodus.

Was kann ich stattdessen nutzen?

In derselben Kategorie: Gerro: госзакупки для ИИ / Russian public procurement, Contract Compass, sanctions.io MCP by usefulapi

Alternativen

Server derselben Kategorie von anderen Entwicklern, sortiert nach Sternen.

So liest du eine Karte:↓ Downloads pro Wochei★ GitHub-SterneiDrei Säulen: Bewertungen · Checks · NutzungiAktualisiert = neueste Version in der Registry veröffentlichti

Contract Compass

Korean public procurement law: rule-engine rulings, statutes search, live court precedents

von sallim-appGanz neuAktualisiert heute

Läuft in der Cloud✓ sallim.app

sanctions.io MCP by usefulapi

Screen names against sanctions, PEP and watchlists; list screening sources in sanctions.io.

von m190Am AnfangAktualisiert heute

Läuft in der Cloud✓ usefulapi.io

README vom Entwickler

README öffnen

Unverändert aus dem Repo des Entwicklers übernommen. PopNx MCP hat den Inhalt weder geprüft noch empfiehlt es ihn. HTML, Bilder und Skripte wurden entfernt. Links führen von dieser Website weg.

@cyanheads/openaq-mcp-server Find air-quality monitoring stations, read latest sensor values, and pull historical pollutant series via MCP. STDIO or Streamable HTTP. 8 Tools (7 enabled by default) • 2 Resources

Public Hosted Server: https://openaq.caseyjhand.com/mcp


Overview

Measured air quality from the OpenAQ v3 API: physical-sensor observations from government reference monitors and research-grade sensors worldwide. Find monitoring stations, read current values, and pull historical pollutant series from any MCP client. Runs as a stdio process, a local Streamable HTTP server, or the public hosted endpoint above.

Tools
ToolDescription
openaq_find_locationsFind monitoring stations near a point, in a bounding box, or by country; the location ids the other tools take
openaq_get_readingsLatest value for every sensor at a station, labeled with its pollutant and unit
openaq_get_measurementsHistorical series for one pollutant at one station, raw or rolled up hourly/daily
openaq_list_parametersPollutant catalog with canonical units; maps a pollutant and unit to its parameter id
openaq_list_countriesCountry coverage: data span and the parameters measured in each
openaq_dataframe_describeList the tables and columns staged on a DataCanvas
openaq_dataframe_queryRun a read-only SQL SELECT over staged measurement series
openaq_dataframe_dropDelete a complete staged canvas; opt-in with OPENAQ_ENABLE_CANVAS_DROP=true
Resources
ResourceDescription
openaq://location/{locationId}Metadata for one station: coordinates, provider, sensors with units, data span
openaq://parametersFull pollutant and unit catalog

Both resources mirror tool output, so tool-only clients lose nothing.

Capability reference

openaq_find_locations tool
  • Scope by coordinates with radius (metres, 1–25000, default 12000), bbox, and/or iso (a code from openaq_list_countries); at least one is required, and coordinates and bbox exclude each other. parametersId, monitor, mobile, and providersId narrow further; up to 100 stations per page (limit, default 20), 1-based page
  • Each station carries id, distanceMeters (coordinate search only), provider/providerId, isMonitor/isMobile, its parameters with units, and the datetimeFirst/datetimeLast span; coordinates, country, and provider are null when OpenAQ lists none
  • totalCount counts stations through the current page and is a floor when totalCountIsLowerBound is set; no match fails as no_locations_found, a page past the end as page_exhausted

openaq_get_readings tool
  • A locationId, or coordinates plus parametersId to resolve the nearest station within 25 km that measures it (compared across up to 1,000 matching stations; a full 1,000 adds a notice); with locationId, parametersId optionally filters to one parameter
  • One reading per sensor with value, unit, sensorId, and datetimeUtc/datetimeLocal, plus the station's provider, providerId, timezone, and datetimeLast
  • Misses are typed: location_not_found, parameter_not_at_location (with the station's available ids), no_station_near_coordinates, no_recent_values

openaq_get_measurements tool
  • Requires locationId and parametersId; datetimeFrom/datetimeTo accept UTC timestamps or station-local YYYY-MM-DD dates (UTC days when the station has no timezone). aggregation is raw (default), hourly, or daily; up to 5,000 rows per call
  • Returns series, sensorId, pulledCount, pullComplete, effectiveRange, and station provider, providerId, and timezone. totalCount is a floor when totalCountIsLowerBound is set; rollups add summary statistics, gapCount, the first 20 missing intervals as gaps, and a notice when edge buckets are clipped
  • Past 100 rows, series is a preview (truncated) and the pulled rows stage on a DataCanvas as measurements_ (canvasId, tableName) when CANVAS_PROVIDER_TYPE=duckdb; a supplied canvas_id stages onto that canvas at any size. One table per sensor: a second sensor adds a table to join against, and re-staging the same sensor overwrites its earlier series

openaq_list_parameters tool
  • Optional case-insensitive query over code, display name, and description; pollutantsOnly drops meteorological and particle-count channels
  • Rows carry id, name, displayName, unit, and description; one pollutant can appear under several ids by unit (CO is 4 in µg/m³, 8 in ppm, 102 in ppb)

openaq_list_countries tool
  • Optional query (a two-letter value matches an ISO 3166-1 alpha-2 code first; otherwise code or name substrings match) and parametersId; up to 100 per page (limit, default 20), 1-based page
  • Rows carry code (the iso value for openaq_find_locations), name, the datetimeFirst/datetimeLast span, and the parameters measured anywhere in the country; totalCount is the full filtered count

openaq_dataframe_describe tool
  • Takes a canvas_id from openaq_get_measurements and returns each staged table's name, rowCount, and columns. Call it before openaq_dataframe_query: the staged table is flat (min, sd) while the inline series nests those under summary
  • Fails as canvas_unavailable unless CANVAS_PROVIDER_TYPE=duckdb, or canvas_not_found for an unknown or expired id

openaq_dataframe_query tool
  • A canvas_id and one read-only SELECT; writes, DDL, and file/network table functions are rejected
  • At most 200 rows per response, with truncated set when the cap cut the result; page with ORDER BY plus LIMIT/OFFSET
  • Fails as canvas_unavailable, canvas_not_found, or missing_table

openaq_dataframe_drop tool
  • Registered only with OPENAQ_ENABLE_CANVAS_DROP=true; calls fail as canvas_unavailable unless CANVAS_PROVIDER_TYPE=duckdb. When disabled, the HTTP landing page shows the enable hint and tools/list omits the tool
  • Takes a canvas_id and deletes that whole canvas, including all staged tables. Other agents sharing the id lose access; OpenAQ's source data is unaffected
  • Returns the requested canvasId and dropped: true when deleted, false when no reachable canvas exists. With authentication off, callers share a tenant: anyone holding an id can delete its canvas when enabled

openaq://location/{locationId} resource
  • application/json: name, locality, timezone, country, provider, isMonitor/isMobile, coordinates, sensors (each with parameterId and unit), and the datetimeFirst/datetimeLast span
  • locationId comes from openaq_find_locations; cached 5 minutes

openaq://parameters resource
  • application/json catalog, the same rows as an unfiltered openaq_list_parameters
  • Cached 1 hour

Features

Built on @cyanheads/mcp-ts-core: stdio and Streamable HTTP transports, pluggable auth (none / jwt / oauth), swappable storage (in-memory, filesystem, Supabase, Cloudflare KV/R2/D1), structured logging with optional OpenTelemetry tracing.

OpenAQ-specific:

  • One typed client over the OpenAQ v3 REST API: X-API-Key auth, retry with backoff, and typed upstream failures (invalid_api_key, rate_limited, upstream_timeout, upstream_error) on every OpenAQ call
  • Hides the v3 location → sensor → measurement hierarchy: readings join the latest feed to the station's sensor map, and measurements resolve a station plus parameter to its sensor
  • Coordinates and bbox corners are range-checked and contradictory search scopes rejected before any request reaches OpenAQ
  • Large measurement series stage on a DataCanvas for read-only DuckDB SQL, one table per sensor, so two series on one canvas_id can be joined

Agent-friendly output:

  • Measured, not modeled: a search with no station fails as no_locations_found or no_station_near_coordinates, stated as no coverage rather than clean air
  • Units travel with every value and are never converted; parametersId selects pollutant and unit together
  • Freshness and truncation are explicit: per-value timestamps and datetimeLast, and totalCount / truncated / notice on capped results

Getting started

Public Hosted Instance

A public instance is available at https://openaq.caseyjhand.com/mcp — no installation required. Point any MCP client at it via Streamable HTTP:

{

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

Self-Hosted / Local

Add the following to your MCP client configuration file.

{

"mcpServers": { "openaq-mcp-server": { "type": "stdio", "command": "bunx", "args": ["@cyanheads/openaq-mcp-server@latest"], "env": { "MCP_TRANSPORT_TYPE": "stdio", "OPENAQ_API_KEY": "your-api-key" } } } }

Or with npx (no Bun required):

{

"mcpServers": { "openaq-mcp-server": { "type": "stdio", "command": "npx", "args": ["-y", "@cyanheads/openaq-mcp-server@latest"], "env": { "MCP_TRANSPORT_TYPE": "stdio", "OPENAQ_API_KEY": "your-api-key" } } } }

Or with Docker:

{

"mcpServers": { "openaq-mcp-server": { "type": "stdio", "command": "docker", "args": [ "run", "-i", "--rm", "-e", "MCP_TRANSPORT_TYPE=stdio", "-e", "OPENAQ_API_KEY=your-api-key", "ghcr.io/cyanheads/openaq-mcp-server:latest" ] } } }

Add `"CANVAS_PROVIDER_TYPE": "du

Nur der Anfang wird gezeigt; den Rest findest du im Repo

PopNx fragen