Skip to main content
Glama
airkorea-statistics-mcp

airkorea-statistics-mcp

by hlucent

⚠️ サービス終了のお知らせ 本MCPサーバーは2026-08-23をもってfly.ioでのデプロイを終了しました。 コードは開発参考用としてリポジトリに残しています。

airkorea-statistics-mcp

韓国環境公団エアコリアの大気汚染統計サービス(ArpltnStatsSvc) OpenAPIをClaudeが 利用できるMCP(Model Context Protocol)サーバーとして提供します。市道別/市郡区別の リアルタイム平均情報と測定所別の日・月平均統計を照会できます。

エアコリア3段階分離開発のうち最後の段階であり、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段階と同じ サービスグループ

2つのオペレーションを1・2段階リポジトリに追加するかどうかは別途協議予定です(保留状態)。

インストールおよび実行

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

環境変数

変数名

説明

AIRKOREA_SERVICE_KEY

公共データポータルで発行されたエアコリアサービスキー

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が適用されます:

  • 1分間に3回を超えると429

  • 1時間以内に5回違反すると24時間ブロック

  • 日次(rolling 24h)合計30回を超えると429

マルチマシンデプロイ時はインメモリカウンターがマシンごとに分離されるため、実質的な制限が マシン数に比例して緩和される可能性があります。

既知の制約事項 (実測確認済み、2026-08-23)

  • 数値フィールドはJSON文字列として渡され、コード内でfloatに安全変換。欠測表現は "-"ではなく**空文字列("")**であることを確認 (khaiValue、pm10Valueなどで 観測)。

  • getCtprvnMesureSidoLIstレスポンスにkhaiValueフィールドが実際に含まれることを確認。

  • sidoName=광주または전남を単独で渡すとtotalCount=0(データなし)が 返される — この2地域は必ず結合値전남광주で照会しないと正常なデータが得られない (仕様書と異なる実際の動作)。

  • エラーレスポンスは実測範囲(コード30、10)内ではJSONで正常に返される。XMLフォールバック パーサーは実装されているが、実際のXMLエラーレスポンスは再現できていない — 今後XMLで 返されるケースが見つかった場合はDEVLOG.mdに追加記録予定。

  • SERVICETIMEOUT(504)はローカルテストでは再現されない — 再試行ロジック(最大3回)は 実装されているが、実際のタイムアウト状況での動作は未確認。

データ出典

  • 提供機関: 韓国環境公団 (環境部業務委託機関)

  • プラットフォーム: 公共データポータル(data.go.kr)

  • API名: 韓国環境公団_エアコリア_大気汚染統計現況 (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.
    2
    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