protogrid

Search / ai.atmy/air-quality

Atmy air quality

R0· no sign-in

PM2.5 of 300+ cities: now, history, forecast, rankings; 12 000 sensors with a quality rating.

v1.1.0 · active · website · descriptor JSON · versions

An agent can connect right now, no human step.Remote endpoint, no authentication, reachable on the last probe.
Quality75good
Trust83of 100
Uptime, 30 days100%
Latency p50615 ms

Connect

8 clients · secrets stay placeholders
{
  "mcpServers": {
    "air-quality": {
      "type": "http",
      "url": "https://api.atmy.ai/mcp"
    }
  }
}
claude mcp add --transport http air-quality https://api.atmy.ai/mcp
[mcp_servers.air-quality]
url = "https://api.atmy.ai/mcp"
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "air-quality": {
      "type": "remote",
      "url": "https://api.atmy.ai/mcp",
      "enabled": true
    }
  }
}
{
  "mcpServers": {
    "air-quality": {
      "type": "http",
      "url": "https://api.atmy.ai/mcp"
    }
  },
  "deeplink": "cursor://anysphere.cursor-deeplink/mcp/install?name=air-quality&config=eyJ0eXBlIjoiaHR0cCIsInVybCI6Imh0dHBzOi8vYXBpLmF0bXkuYWkvbWNwIn0%3D"
}
{
  "servers": {
    "air-quality": {
      "type": "http",
      "url": "https://api.atmy.ai/mcp"
    }
  }
}
{
  "mcpServers": {
    "air-quality": {
      "httpUrl": "https://api.atmy.ai/mcp"
    }
  }
}
extensions:
  "air-quality":
    enabled: true
    name: "air-quality"
    type: streamable_http
    uri: "https://api.atmy.ai/mcp"
    timeout: 300

Quality 75 / 100good

protocol75 · weight 25
  • warn
    protocol.modernnewest supported version is 2025-06-18; 2026-07-28 not supported, older versions are deprecated until 2027-07-28
  • n/a
    protocol.statelessonly applies to 2026-07-28 servers
  • pass
    protocol.transportstreamable HTTP
  • n/a
    protocol.list_ttlonly applies to 2026-07-28 servers
authorizationn/a · weight 15
  • n/a
    auth.prm, auth.as_metadata, auth.cimdno remote uses OAuth
  • n/a
    auth.secret_in_urlno templated URL
tool hygiene100 · weight 30
  • pass
    tools.descriptionsevery tool has a description
  • pass
    tools.description_lengthdescriptions are concise
  • pass
    tools.schemasevery tool has an object input schema
  • pass
    tools.annotations11 of 11 tools declare readOnlyHint or destructiveHint
  • pass
    tools.directory_hintsevery tool declares readOnlyHint, destructiveHint, idempotentHint and openWorldHint
  • pass
    tools.token_costabout 2,724 tokens to load every tool
  • pass
    tools.api_dumptools are not a one-to-one API dump
stability25 · weight 15
  • warn
    stability.changes12 tool changes in 30 days
  • fail
    stability.rug_pull1 tools kept their name but changed most of their description in 30 days; review before trusting them
dependenciesn/a · weight 15
  • n/a
    deps.known_vulns, deps.mcp_sdk_version, deps.resolvabledeps.dev does not know [email protected]

11 tools, about 2,724 tokens to load them all · tool set 4b6e1121aad8 · tools last changed 2026-11-06 · checked 2026-11-07 17:28 UTC

Tool changes

  • get_air_qualitychangeddescription
    before

    PM2.5 now in a city (mean of the latest reading of each eligible sensor, at most 60 minutes old) with its US EPA category and the weather now (temperature, humidity, pressure, wind, clouds, precipitation), plus the last completed day from the Atmy Data Hub with its weather. Pass city or lat/lon.

    after · 80% of words in common

    PM2.5 now in a city (mean of the latest reading of each eligible sensor, at most 60 minutes old; a government station hour up to 3 hours old, with the time it was measured) with its US EPA category and the weather now (temperature, humidity, pressure, wind, clouds, precipitation), plus the last completed day from the Atmy Data Hub with its weather. Pass city or lat/lon.

  • find_sensorschangedinput schema
  • get_sensors_averageadded

    The mean of up to 100 sensors per 5 minutes, hour or UTC day, each sensor counted once per bucket, with the number of sensors in each bucket. Windows as in get_sensor_readings; by day at most 92 days a call.

  • get_sensor_readingsadded

    Readings of one sensor: raw (the last 31 days, at most 7 days a call), 5-minute means (the same windows), hourly means (the last 366 days, at most 92 days a call) or daily means (UTC days of the last 366 days, with the quality check of each day). Default: the last 24 hours, or 30 days by day. Times are UTC.

  • get_sensoradded

    One sensor by its id: location, network, license, quality check with rating and reasons, and the latest reading.

  • find_sensorsadded

    Single sensors with their latest reading (PM1, PM2.5, PM10, temperature, humidity, pressure), network and quality check: status, rating 0–10 of the last checked day, the mean rating of the last 7 days and the reasons. Filter by city, country, or a point with a radius; sort=rating puts the most reliable sensors first.

  • list_sensor_networksadded

    The sensor networks in Atmy (Sensor.Community, AirGradient, Atmy) with their number of sensors, how many pass the quality check, and their license.

  • get_air_quality_monthlychangeddescription
    before

    The whole measurement history of a city from the Atmy Data Hub: PM2.5 per month, yearly means (complete years marked), the dirtiest and cleanest months and days. For questions like "how has the air changed" or "the most polluted month on record".

    after · 88% of words in common

    The whole measurement history of a city from the Atmy Data Hub: PM2.5 per month with the month's weather from 2026-01, yearly means (complete years marked), the dirtiest and cleanest months and days. For questions like "how has the air changed" or "the most polluted month on record".

  • get_air_quality_historychangeddescription
    before

    Daily PM2.5 of a city from the Atmy Data Hub (UTC days, sensors after the quality check): the last days, or any period since 2017 with from/to, at most 400 days per call. For the whole history or records use get_air_quality_monthly first.

    after · 70% of words in common

    Daily PM2.5 of a city from the Atmy Data Hub (UTC days, sensors after the quality check) with the day's weather from 2026-01-19 (mean, lowest and highest temperature, humidity, pressure, wind, strongest gust, clouds): the last days, or any period since 2017 with from/to, at most 400 days per call. For the whole history or records use get_air_quality_monthly first.

  • get_air_qualitychangeddescription
    before

    PM2.5 now in a city (mean of the latest reading of each eligible sensor, at most 60 minutes old) with its US EPA category, plus the last completed day from the Atmy Data Hub. Pass city or lat/lon.

    after · 82% of words in common

    PM2.5 now in a city (mean of the latest reading of each eligible sensor, at most 60 minutes old) with its US EPA category and the weather now (temperature, humidity, pressure, wind, clouds, precipitation), plus the last completed day from the Atmy Data Hub with its weather. Pass city or lat/lon.

Showing the latest 10. Full history: list_changes · trend: quality JSON.

Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed. How it is computed.

Trust 83 / 100

no-repository
provenance55
liveness100
freshness100
hygiene80

+dns-namespace +website +reachable +uptime-100% +updated-11d-ago -no-repository

Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed. How it is computed.

Dependencies

[email protected] npmthis version is not known to the dependency resolver

Dependency graphs from deps.dev; advisories from OSV.dev, including the GitHub Advisory Database and the PyPI Advisory Database; all CC BY 4.0. The graph is what a clean install of this version resolves today; nothing was installed or run. How it is checked.

Endpoints

remoteauthreachableuptime 30dp50protocollast ok
https://api.atmy.ai/mcp streamable-httpnoneyes100%615 ms2025-06-182026-11-07
packageregistryversionruntimesecrets
atmy-mcpnpm1.1.0–

Tools (11)

find_sensorsread-onlySingle sensors with their latest reading (PM1, PM2.5, PM10, temperature, humidity, pressure), network and quality check: status, rating 0–10 of the last checked day, the mean rating of the last 7 days and the reasons. Filter by city, country, or a point with a radius; sort=rating puts the most reliable sensors first.
get_air_qualityread-onlyPM2.5 now in a city (mean of the latest reading of each eligible sensor, at most 60 minutes old; a government station hour up to 3 hours old, with the time it was measured) with its US EPA category and the weather now (temperature, humidity, pressure, wind, clouds, precipitation), plus the last completed day from the Atmy Data Hub with its weather. Pass city or lat/lon.
get_air_quality_historyread-onlyDaily PM2.5 of a city from the Atmy Data Hub (UTC days, sensors after the quality check) with the day's weather from 2026-01-19 (mean, lowest and highest temperature, humidity, pressure, wind, strongest gust, clouds): the last days, or any period since 2017 with from/to, at most 400 days per call. For the whole history or records use get_air_quality_monthly first.
get_air_quality_monthlyread-onlyThe whole measurement history of a city from the Atmy Data Hub: PM2.5 per month with the month's weather from 2026-01, yearly means (complete years marked), the dirtiest and cleanest months and days. For questions like "how has the air changed" or "the most polluted month on record".
get_city_forecastread-onlyThe next hours of a city: temperature, wind, humidity, precipitation and the pollution accumulation index 0–100 (how strongly the weather keeps particles near the ground). A weather estimate, not a PM2.5 forecast.
get_country_rankingread-onlyCities of a country ranked by daily PM2.5 for the last completed day (Atmy Data Hub), most polluted or cleanest first.
get_sensorread-onlyOne sensor by its id: location, network, license, quality check with rating and reasons, and the latest reading.
get_sensor_readingsread-onlyReadings of one sensor: raw (the last 31 days, at most 7 days a call), 5-minute means (the same windows), hourly means (the last 366 days, at most 92 days a call) or daily means (UTC days of the last 366 days, with the quality check of each day). Default: the last 24 hours, or 30 days by day. Times are UTC.
get_sensors_averageread-onlyThe mean of up to 100 sensors per 5 minutes, hour or UTC day, each sensor counted once per bucket, with the number of sensors in each bucket. Windows as in get_sensor_readings; by day at most 92 days a call.
list_sensor_networksread-onlyThe sensor networks in Atmy (Sensor.Community, AirGradient, Atmy) with their number of sensors, how many pass the quality check, and their license.
search_citiesread-onlyFind the cities with an Atmy air-quality summary by name (any language) or country. Returns slugs to pass to the other tools.

Schemas: list_tools.

Similar MCP servers

Official server.json
{
  "name": "ai.atmy/air-quality",
  "title": "Atmy air quality",
  "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
  "remotes": [
    {
      "url": "https://api.atmy.ai/mcp",
      "type": "streamable-http"
    }
  ],
  "version": "1.1.0",
  "packages": [
    {
      "version": "1.1.0",
      "transport": {
        "type": "stdio"
      },
      "identifier": "atmy-mcp",
      "registryType": "npm"
    }
  ],
  "websiteUrl": "https://atmy.ai/air-quality/api/",
  "description": "PM2.5 of 300+ cities: now, history, forecast, rankings; 12 000 sensors with a quality rating."
}