关于 Airnow
Airnow 将美国 EPA AirNow 的公开文件数据提供给需要空气质量信息的应用和 Agent,无需密钥或账户。它覆盖各地当前及预报 AQI,也可查询按小时记录的监测点观测值。
主要功能
- 01按邮编或坐标查询当前 AQI
- 02查询未来数日的 AQI 预报
- 03按边界框检索逐小时观测
- 04返回污染物浓度及数据时间
适用场景
- 01查看附近地区当前空气质量
- 02查询某地未来数日的 AQI
- 03分析指定区域的小时监测数据
MCP 相关
作为 MCP 服务,它向客户端提供按邮编、坐标或地理边界查询 AirNow 当前值、预报及逐小时观测的工具。可通过 Pipeworx 网关连接,也可作为本地 stdio MCP 服务运行。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://gateway.pipeworx.io/airnow/mcpclaude mcp add --transport http pipeworx-io-airnow https://gateway.pipeworx.io/airnow/mcp{"mcpServers":{"pipeworx-io-airnow":{"type":"http","url":"https://gateway.pipeworx.io/airnow/mcp"}}}在 Cursor 中打开{"servers":{"pipeworx-io-airnow":{"type":"http","url":"https://gateway.pipeworx.io/airnow/mcp"}}}在 VS Code 中打开{"mcpServers":{"pipeworx-io-airnow":{"type":"http","url":"https://gateway.pipeworx.io/airnow/mcp"}}}{"mcpServers":{"pipeworx-io-airnow":{"serverUrl":"https://gateway.pipeworx.io/airnow/mcp"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
工具
45| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| q | string | 否 | question 的别名。 |
| ask | string | 否 | question 的别名。 |
| text | string | 否 | question 的别名。 |
| input | string | 否 | question 的别名。 |
| packs | array | 否 | 可选。将路由限制为这些包的 slug(例如 ["sec-form-d","sec-13f"]),路由器随后只会从这些包中的工具进行选择。省略则使用默认的完整目录路由。Slug 可从 list_packs / search_packs / https://pipeworx.io/directory 获取;未列出或未知的 slug 会被忽略,并在 _meta.pack_scope.ignored 中列出。如果没有任何 slug 能匹配问题,则会在整个目录中路由,并设置 _meta.pack_scope.full_catalog:true(绝不会返回空答案)。 |
| query | string | 否 | question 的别名。 |
| prompt | string | 否 | question 的别名。 |
| message | string | 否 | question 的别名。 |
| question | string | 是 | 用自然语言表达的问题或请求。支持 query、q、prompt、text、input、ask、message 作为别名。 |
详细介绍
@pipeworx/airnow
美国环保署 AirNow——覆盖美国所有报告区域的官方当前及预测空气质量指数(AQI),以及各监测点的逐小时观测数据。无需密钥:每次调用时实时读取 AirNow 位于 files.airnowtech.org 的公开文件产品。
属于 Pipeworx——一个将 AI Agent 连接到 1872+ 个实时数据源的 MCP 网关。这是独立的非官方集成,与上游提供方无关联、未获其认可,也非由其发布。
AirNow 已于 2026-10-01 停用需要密钥的 Web 服务(www.airnowapi.org/aq/*);在此套件迁移到文件产品之前,每次调用都会返回 HTTP 410(fleet #2808)。已停用服务的通知页面 docs.airnowapi.org/webservices/retired 会重定向到登录页,因此文件产品是目前唯一剩余的公开途径。
工具
current_by_zip(zip_code, distance_miles?)— 返回距离某邮政编码最近的报告区域中,各污染物的最新观测 AQI、昨日 AQI,以及半径范围内的其他报告区域。current_by_location(latitude, longitude, distance_miles?)— 同上,但使用经纬度查询。forecast_by_zip(zip_code, date?, distance_miles?)— 返回各污染物的已发布预测(今天及未来最多 3 天),以及行动日标记和预报员讨论。省略date可获取所有已发布日期;forecast_days_available会列出这些日期。observations_in_bbox(bbox, start_date, end_date, parameters?, data_type?, verbose?)— 返回minLon,minLat,maxLon,maxLat范围内、指定 UTC 小时跨度(YYYY-MM-DDTHH)的各监测点逐小时 AQI 和浓度;每次调用最多 24 小时(每小时对应一个约 1 MB 的上游文件)。污染物:OZONE, PM25, PM10, NO2, CO, SO2(仅前四种有 AQI)。
每个响应都包含 data_as_of(上游文件的 Last-Modified)、source(文件 URL)和 found。未找到时返回 {found:false, reason, hint}:zip_not_in_airnow_index、no_reporting_area_in_radius、no_forecast_area_in_radius、no_forecast_for_date、hours_not_published、no_sites_in_bbox。
身份验证
无需身份验证。无需密钥或账户。
数据源
所有数据均位于 https://files.airnowtech.org/airnow/ 下(这是 AirNow 每小时重写的 S3 存储桶;格式说明文档位于 airnow/docs/):
| 文件 | 使用方 | 刷新频率 |
|---|---|---|
today/cityzipcodes.csv — 邮政编码 → 城市、州、纬度、经度(27k 行) | *_by_zip | 每日 |
today/reportingarea.dat — 各报告区域的数据行:昨日(Y)、当前观测(O)、预测(F) | current_*、forecast_by_zip | 每小时 |
YYYY/YYYYMMDD/HourlyAQObs_YYYYMMDDHH.dat — 各监测点的 AQI 和浓度,每个 UTC 小时对应一个文件 | observations_in_bbox | 每小时后约 30-60 分钟 |
需要了解的特殊情况:
- 两天或更久之后的预测通常会包含
category,但 AQI 为null——这是各机构发布预测的方式,并非解析遗漏。 - 当前小时的
HourlyAQObs文件要等 AirNow 发布后才会存在;此类小时会列在hours_not_yet_published中,而不会触发错误。 - “最近的报告区域”是按到该区域已发布中心点的大圆距离计算的,因此,位于大都市边缘的邮政编码可能会匹配到相邻区域(邮政编码 10001 → “纽约市区域”,10 mi)。
other_areas_in_radius会显示其他选项。 - 网关会将
airnow结果缓存 10 分钟(CACHE_TTL_OVERRIDES);此套件也会在 isolate 中缓存解析后的文件:报告区域 10 分钟 / 邮政编码索引 24 小时 / 小时文件 6 小时。
快速开始
将其添加到你的 MCP 客户端(Claude Desktop、Cursor、Windsurf 等):
{
"mcpServers": {
"airnow": {
"url": "https://gateway.pipeworx.io/airnow/mcp"
}
}
}
此端点实际提供的内容
https://gateway.pipeworx.io/airnow/mcp 上的 tools/list 会返回上表中的工具,以及 Pipeworx 共享元工具 — ask_pipeworx、
discover_tools、search_within、remember/recall 和其余整个网关通用的工具。因此,你看到的工具数量会多于此表:目前,单个工具包端点除了列出该工具包自己的工具外,还会列出约 30 个共享工具。连接的 initialize 响应会说明确切范围,是了解某一天实际范围的权威依据。
这是有意为之,并非意外的多路复用。元工具可让限定范围的连接回答此工具包未涵盖的问题 — 通过 ask_pipeworx 在整个目录中进行路由 — 而无需你再添加第二个 MCP 服务。目前无法在不包含这些元工具的情况下挂载工具包端点;如果额外的架构信息占用的上下文多于路由带来的价值,请连接完整网关一次,而不是连接多个工具包端点。
或者,连接完整的 Pipeworx 网关,直接列出所有工具包的工具,而不只是此工具包的工具:
{
"mcpServers": {
"pipeworx": {
"url": "https://gateway.pipeworx.io/mcp"
}
}
}
两个 URL 都连接到同一个网关和相同的 1872+ 个数据源。唯一的区别是直接列出哪个工具包的工具;无论连接哪一个,ask_pipeworx 都能访问所有工具。
没有 MCP 客户端?通过 HTTP 调用
curl -X POST https://gateway.pipeworx.io/v1/tools/current_by_zip \
-H 'Content-Type: application/json' \
-d '{"zip_code":"10001"}'
首次调用无需账户。查看任意工具:GET https://gateway.pipeworx.io/v1/tools/current_by_zip。查找工具:POST https://gateway.pipeworx.io/v1/tools/search_packs,请求体为 {"query":"..."}。
独立运行(无需网关账户)
此软件包也可作为本地 stdio MCP 服务运行 — 无需 Pipeworx 账户,也无需通过网关往返:
{
"mcpServers": {
"airnow": {
"command": "npx",
"args": ["-y", "@pipeworx/mcp-airnow"]
}
}
}
或者直接运行它以确认能够启动:
npx -y @pipeworx/mcp-airnow
它通过 stdin/stdout 使用 MCP 通信,并针对仅限此工具包的工具响应 initialize/tools/list/tools/call — 不包含上述网关连接额外提供的任何共享元工具。来源相同,工具相同,但没有 ask_pipeworx 路由。
使用 ask_pipeworx
你可以用通俗的英语提问,而不是直接调用工具 — 在上面的工具包端点和完整网关上都适用:
ask_pipeworx({ question: "your question about Airnow data" })
网关会自动选择合适的工具并填入参数。
更多信息
许可证
MIT
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。