Skip to main content
Glama
airkorea-statistics-mcp

airkorea-statistics-mcp

by hlucent

⚠️ 服务终止通知 本 MCP 服务器已于 2026-08-23 终止 fly.io 部署。 代码保留在仓库中供开发参考。

airkorea-statistics-mcp

将韩国环境公团 AirKorea 大气污染统计服务(ArpltnStatsSvc) OpenAPI 作为可供 Claude 使用的 MCP(Model Context Protocol) 服务器提供。可查询按市道/市郡区划分的 实时平均信息以及按测量站划分的日·月平均统计。

这是 AirKorea 三阶段分离开发中的最后一个阶段,前提是与第 1 阶段(airkorea-realtime-mcp)、 第 2 阶段(airkorea-forecast-alert-mcp)一起使用。

提供功能

工具名称

说明

get_sido_average

按市道查询实时平均信息(时/日平均)

get_sigungu_average

按市郡区查询实时平均信息(时/日平均)

get_station_daily_average

按测量站查询实时日平均信息(指定期间)

get_station_monthly_average

按测量站查询实时月平均信息(指定期间)

测量单位: SO2/CO/O3/NO2 = ppm, PM10/PM2.5 = ㎍/㎥

Related MCP server: seoul-timeavg-air-mcp

关于本 MCP 的范围(重要)

仅包含大气污染统计服务(ArpltnStatsSvc)所属的 4 个操作。以下 2 个 操作原本是第 3 阶段的候选,但实际上属于其他服务组,已从本次范围中 排除(判断依据参见 DEVPLAN.md 0-1 节,决定经过参见 DEVLOG.md):

  • getTMStdrCrdnt(TM 基准坐标查询) — 属于测量站信息查询服务(MsrstnInfoInqireSvc) 服务组,与第 1 阶段(airkorea-realtime-mcp)属于同一服务组

  • getUnityAirEnvrnIdexSnstiveAboveMsrstnList(综合大气环境指数"差"以上测量站 列表查询) — 属于大气污染信息查询服务(ArpltnInforInqireSvc)服务组,与第 1·2 阶段属于同一 服务组

是否将这两个操作添加到第 1·2 阶段仓库中,将另行讨论(暂缓状态)。

安装及运行

pip install -r requirements.txt
cp .env.example .env  # AIRKOREA_SERVICE_KEY 입력
python server.py

环境变量

变量名

说明

AIRKOREA_SERVICE_KEY

从公共数据门户申请的 AirKorea 服务密钥

PORT

服务器端口 (fly.io 部署时自动设置)

注意: 要调用此 MCP,需要在公共数据门户中单独完成对 大气污染统计服务 (ArpltnStatsSvc) 的利用申请(需要按服务 ID 单独进行利用申请)。申请后 实际生效需要 1~2 小时。

部署 (fly.io)

fly launch --no-deploy
fly secrets set AIRKOREA_SERVICE_KEY=발급받은키
flyctl deploy

部署后连接器连接地址:

https://airkorea-statistics-mcp.fly.dev/mcp

Rate Limit

由于是无认证即可访问的公开服务器,适用基于 IP 的 3 级 rate limit:

  • 每分钟超过 3 次时返回 429

  • 1 小时内违规 5 次时封禁 24 小时

  • 每日(滚动 24 小时)总计超过 30 次时返回 429

多机器部署时,内存计数器按机器分离,实际限制可能随机器数量 成比例放宽。

已知限制(实测确认完成,2026-08-23)

  • 数字字段以 JSON 字符串形式返回,代码中安全转换为 float。缺失表示为 "-" 而是空字符串("")(已在 khaiValue、pm10Value 等中 观测到)。

  • 已确认 getCtprvnMesureSidoLIst 响应中实际包含 khaiValue 字段。

  • 单独传入 sidoName=광주 或 전남 时返回 totalCount=0(无数据) — 这两个地区必须使用合并值 전남광주 查询才能获得正常数据 (与规范不同的实际行为)。

  • 错误响应在实测范围(代码 30、10)内以 JSON 正常返回。XML 回退 解析器已实现,但未能复现实际的 XML 错误响应 — 如果今后发现以 XML 返回的情况,将追加记录到 DEVLOG.md。

  • SERVICETIMEOUT(504)在本地测试中未复现 — 重试逻辑(最多 3 次)已 实现,但实际超时情况下的行为尚未确认。

数据来源

  • 提供机构: 韩国环境公团(环境部委托机构)

  • 平台: 公共数据门户(data.go.kr)

  • API 名称: 韩国环境公团_AirKorea_大气污染统计现状 (ArpltnStatsSvc)

  • 许可证: 公共누리第 1 类型(署名-禁止修改)

许可证

MIT License(代码本身)。原始数据遵循上述公共누리许可证。

Related MCP Connectors

Related MCP Servers

  • F
    license
    A
    quality
    B
    maintenance
    Enables Claude to query Korean public financial, economic, and statistical data (OpenDART, ECOS, KOSIS, and data.go.kr) via real API calls, providing factual answers instead of guesses.
    13
    -
  • A
    license
    Not graded
    quality
    C
    maintenance
    Retrieves hourly average air quality data (PM10, PM2.5, ozone, NO2, CO, SO2) from Seoul's open data platform, filtered by station or district.
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables querying Korean air quality forecasts, weekly ultrafine dust forecasts, high-concentration PM2.5 forecasts, particulate matter alarm statuses, ozone advisories, and yellow dust advisories from the AirKorea OpenAPI.
    MIT