mcpField
A
Airnow

Airnow

远程服务
pipeworx.io地图与出行06 天前更新

关于 Airnow

Airnow 将美国 EPA AirNow 的公开文件数据提供给需要空气质量信息的应用和 Agent,无需密钥或账户。它覆盖各地当前及预报 AQI,也可查询按小时记录的监测点观测值。

主要功能

  1. 01按邮编或坐标查询当前 AQI
  2. 02查询未来数日的 AQI 预报
  3. 03按边界框检索逐小时观测
  4. 04返回污染物浓度及数据时间

适用场景

  1. 01查看附近地区当前空气质量
  2. 02查询某地未来数日的 AQI
  3. 03分析指定区域的小时监测数据

MCP 相关

作为 MCP 服务,它向客户端提供按邮编、坐标或地理边界查询 AirNow 当前值、预报及逐小时观测的工具。可通过 Pipeworx 网关连接,也可作为本地 stdio MCP 服务运行。

配置

远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。

服务地址https://gateway.pipeworx.io/airnow/mcp
一键复制安装命令
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。

工具

45
参数类型必填说明
qstring否question 的别名。
askstring否question 的别名。
textstring否question 的别名。
inputstring否question 的别名。
packsarray否可选。将路由限制为这些包的 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(绝不会返回空答案)。
querystring否question 的别名。
promptstring否question 的别名。
messagestring否question 的别名。
questionstring是用自然语言表达的问题或请求。支持 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

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。