SmogRank
PM2.5 air pollution by city: worst-first rankings, current air and daily history.
Should I use this
Quality & Safety
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"smogrank": {
"url": "https://smogrank.com/mcp"
}
}
}Remote endpoints
https://smogrank.com/mcpstreamable-httpWhat it can do
Tool inventory
Tools (4)
๐ขfind_city(query, lat, lon, limit)
Search 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.
Input Schema
{
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "City name, optionally with region or country: \"Springfield, Illinois\"."
},
"lat": {
"type": "number",
"description": "Latitude, with lon, instead of a name."
},
"lon": {
"type": "number"
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 20,
"default": 8
}
}
}๐ขcity_air(city)
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.
Input Schema
{
"type": "object",
"properties": {
"city": {
"type": "string",
"description": "City as its page path (\"us/los-angeles\"), a SmogRank URL, or a name (\"Lahore\", \"Delhi, India\"). find_city lists the paths."
}
},
"required": [
"city"
]
}๐ขcity_history(city, from, to)
A 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.
Input Schema
{
"type": "object",
"properties": {
"city": {
"type": "string",
"description": "City as its page path (\"us/los-angeles\"), a SmogRank URL, or a name (\"Lahore\", \"Delhi, India\"). find_city lists the paths."
},
"from": {
"type": "string",
"description": "YYYY-MM-DD"
},
"to": {
"type": "string",
"description": "YYYY-MM-DD, default yesterday"
}
},
"required": [
"city"
]
}๐ขrankings(window, period, country, order, limit)
The 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.
Input Schema
{
"type": "object",
"properties": {
"window": {
"type": "string",
"enum": [
"24h",
"7d",
"30d",
"year"
],
"default": "24h"
},
"period": {
"type": "string",
"description": "A past period instead of a window: YYYY-MM-DD, YYYY-Www, YYYY-MM or YYYY."
},
"country": {
"type": "string",
"description": "ISO country code, e.g. IN."
},
"order": {
"type": "string",
"enum": [
"worst",
"cleanest"
],
"default": "worst"
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 100,
"default": 20
}
}
}Community
Evidence