protogrid

Search / io.github.BurettoSofuto/smogrank

SmogRank

R0· no sign-in

PM2.5 air pollution by city: worst-first rankings, current air and daily history.

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

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

Connect

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

Quality 85 / 100good

protocol75 · weight 25
  • warn
    protocol.modernnewest supported version is 2025-11-25; 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 hygiene86 · 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.annotations4 of 4 tools declare readOnlyHint or destructiveHint
  • fail
    tools.directory_hintsno tool declares all four of readOnlyHint, destructiveHint, idempotentHint and openWorldHint; missing: city_air (destructiveHint, idempotentHint); find_city (destructiveHint, idempotentHint); city_history (destructiveHint, idempotentHint); …
  • pass
    tools.token_costabout 715 tokens to load every tool
  • pass
    tools.api_dumptools are not a one-to-one API dump
stability100 · weight 15
  • pass
    stability.changes2 tool changes in 30 days
  • pass
    stability.rug_pullno tool changed its meaning under the same name
dependenciesn/a · weight 15
  • n/a
    deps.known_vulns, deps.mcp_sdk_version, deps.resolvableno npm or PyPI package

4 tools, about 715 tokens to load them all · tool set df59b3f511a6 · tools last changed 2026-10-14 · checked 2026-10-20 13:17 UTC

Tool changes

  • city_airchangeddescription
    before

    PM2.5 now in a city: the latest hourly value, its 24-hour, 7-day, 30-day and year-to-date averages with its rank among all measured cities, the US EPA category, how it compares with the WHO guideline, and the "why it ranks here" notes (patterns in its own history and nearby fire, smoke and volcano evidence, named as likely causes, never confirmed), and the local hours its air was usually worst and cleanest over the last 30 days. Cities without a monitor get a model estimate, labelled as one. No forecasts.

    after · 72% of words in common

    PM2.5 now in a city: the latest hourly value, its 24-hour, 7-day, 30-day and year-to-date averages with its rank among all measured cities, the US EPA category, how it compares with the WHO guideline, and the "why it ranks here" notes (patterns in its own history and nearby fire, smoke and volcano evidence, named as likely causes, never confirmed), and the local hours its air was usually worst and cleanest over the last 30 days. Each measured city's trust says what stands behind it: checked (reference monitors at 2+ sites), one (a single reference site) or low (3+ low-cost sensors). Cities without a monitor get a model estimate, labelled as one, plus few_sensors when one or two low-cost sensors measure there (not ranked). No forecasts.

  • city_airchangeddescription
    before

    PM2.5 now in a city: the latest hourly value, its 24-hour, 7-day, 30-day and year-to-date averages with its rank among all measured cities, the US EPA category, how it compares with the WHO guideline, and the "why it ranks here" notes (patterns in its own history and nearby fire, smoke and volcano evidence, named as likely causes, never confirmed). Cities without a monitor get a model estimate, labelled as one. No forecasts.

    after · 86% of words in common

    PM2.5 now in a city: the latest hourly value, its 24-hour, 7-day, 30-day and year-to-date averages with its rank among all measured cities, the US EPA category, how it compares with the WHO guideline, and the "why it ranks here" notes (patterns in its own history and nearby fire, smoke and volcano evidence, named as likely causes, never confirmed), and the local hours its air was usually worst and cleanest over the last 30 days. Cities without a monitor get a model estimate, labelled as one. No forecasts.

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 80 / 100

no-repository
provenance45
liveness100
freshness100
hygiene80

+website +reachable +uptime-100% +updated-14d-ago -no-repository

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

Endpoints

remoteauthreachableuptime 30dp50protocollast ok
https://smogrank.com/mcp streamable-httpnoneyes100%293 ms2025-11-252026-10-20

Tools (4)

city_airread-onlyPM2.5 now in a city: the latest hourly value, its 24-hour, 7-day, 30-day and year-to-date averages with its rank among all measured cities, the US EPA category, how it compares with the WHO guideline, and the "why it ranks here" notes (patterns in its own history and nearby fire, smoke and volcano evidence, named as likely causes, never confirmed), and the local hours its air was usually worst and cleanest over the last 30 days. Each measured city's trust says what stands behind it: checked (reference monitors at 2+ sites), one (a single reference site) or low (3+ low-cost sensors). Cities without a monitor get a model estimate, labelled as one, plus few_sensors when one or two low-cost sensors measure there (not ranked). No forecasts.
city_historyread-onlyA measured city's daily mean PM2.5 (its local calendar days, µg/m³) and its daily rank, between two dates (up to 400 days; default the last 30), with monthly means.
find_cityread-onlySearch SmogRank's cities by name, or find the nearest ones to a point. Returns each city's path for the other tools, whether it is measured by ground monitors (ranked) or only estimated from a model, and its page.
rankingsread-onlyThe ranking of measured cities by average PM2.5, worst first: a rolling window (24h, 7d, 30d, year to date) or a past period (a day 2026-09-30, a week 2026-W40, a month 2026-09, a year 2025). Optionally one country.

Schemas: list_tools.

Similar MCP servers

Official server.json
{
  "name": "io.github.BurettoSofuto/smogrank",
  "title": "SmogRank",
  "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
  "remotes": [
    {
      "url": "https://smogrank.com/mcp",
      "type": "streamable-http"
    }
  ],
  "version": "1.0.0",
  "websiteUrl": "https://smogrank.com",
  "description": "PM2.5 air pollution by city: worst-first rankings, current air and daily history."
}