Skip to main content
Glama
hlucent

airkorea-forecast-alert-mcp

by hlucent

airkorea-forecast-alert-mcp

MCP-сервер для запросов к OpenAPI прогноза качества воздуха, предупреждений о мелкодисперсной пыли, предупреждений об озоне/жёлтой пыли от Korea Environment Corporation (Air Korea).

Предоставляемые инструменты

Инструмент

Описание

get_air_quality_forecast

Запрос прогноза качества воздуха (мелкодисперсная пыль/озон) — прогноз на сегодня/завтра/послезавтра, обзор прогноза, причины возникновения, рекомендации по действиям

get_pm25_weekly_forecast

Запрос недельного прогноза сверхмелкодисперсной пыли — прогноз низкий/высокий на 4 дня, начиная с 3-го дня

get_high_pm25_forecast

Запрос информации о прогнозе высоких концентраций сверхмелкодисперсной пыли (свыше 50) — превышение PM2.5 50 мкг/м³ в 19 регионах

get_pm_alarm_status

Запрос статуса предупреждений о мелкодисперсной пыли — история объявления/снятия предупреждений и оповещений по регионам

get_ozone_advisory

Запрос информации о возникновении предупреждений об озоне

get_yellowdust_advisory

Запрос информации о возникновении предупреждений о жёлтой пыли

Примечание по проектированию: В разделе 3 DEVPLAN.md предписывалось в первую очередь рассмотреть вариант объединения предупреждений об озоне и жёлтой пыли в один инструмент (с разделением по параметру advisory_type), однако по результатам фактического тестирования поля ответов этих двух операций сильно различаются (озон — 8 полей, включая концентрацию, стадию объявления и т.д.; жёлтая пыль — 2 текстовых поля: номер и регион), поэтому было решено, что объединение снизит удобство использования, и инструменты были разделены на 2 (всего 6 инструментов).

Related MCP server: korean-public-data-mcp

Источники данных

  • Предоставляющая организация: Отдел поддержки политики в области качества воздуха, Департамент атмосферной среды, Климатическо-атмосферный штаб Korea Environment Corporation

  • Платформа: Портал открытых данных (data.go.kr)

  • Группа сервисов: Korea Environment Corporation_Air Korea_Информация о загрязнении воздуха (частично), Korea Environment Corporation_Air Korea_Информация о прогнозе высоких концентраций сверхмелкодисперсной пыли (свыше 50), Korea Environment Corporation_Air Korea_Статус объявления предупреждений о мелкодисперсной пыли, Korea Environment Corporation_Air Korea_Информация о возникновении озона и жёлтой пыли (код группы сервисов B552584)

  • Область разрешения на использование: Указание авторства — запрет изменений (обязательное соблюдение указания источника данных (Министерство окружающей среды / Korea Environment Corporation))

Периодичность публикации (важно)

Пункт

Периодичность публикации

Прогноз мелкодисперсной пыли (сегодня/завтра/послезавтра)

4 раза в день (05:00/11:00/17:00/23:00), 19 регионов

Прогноз озона

Публикуется только с 1 апреля по 31 октября каждого года. Прогноз на сегодня — 05/11:00 (при особых обстоятельствах дополнительно 17:00)

Недельный прогноз сверхмелкодисперсной пыли

1 раз в день в 17:30, 19 регионов, на 4 дня, начиная с 3-го дня

Прогноз высоких концентраций сверхмелкодисперсной пыли (свыше 50)

4 раза в день (05/11/17/23:00), в течение примерно 10 минут для каждого города

Известные ограничения (подтверждено фактическим тестированием, по операциям — тестирование 22/23 августа 2026 г.)

get_air_quality_forecast (getMinuDustFrcstDspth)

  • Поле informData подтверждено как фактически существующее. Каждый элемент массива items различает прогноз на сегодня/завтра/послезавтра, а значение informData (ГГГГ-ММ-ДД) указывает целевую дату соответствующего прогноза. (Например: когда dataTime — "объявлено 23:00 22.08.2026", items приходят в порядке informData "2026-08-22"/"2026-08-23"/"2026-08-24")

  • При запросе вне сезона озона (O3) (ноябрь–март) без ошибки возвращается нормальный пустой список (resultCode: "00", totalCount: 0) (подтверждено тестированием 15.01.2026).

  • Параметр ver=1.1 в этом тестировании не использовался (подтверждена достаточная работа базовым/старым способом). URL изображений (imageUrl1imageUrl9) возвращаются как есть, в качестве справочных ссылок.

get_high_pm25_forecast (getMinuDustFrcstDspth50Over)

  • В спецификации нет таблицы спецификаций (указано только со ссылкой на документ SWAGGER), поэтому всё определено путём фактического тестирования.

  • Параметры searchDate, informCode (PM10/PM25/O3) подтверждены как работающие нормально.

  • Полный список имён полей {регион}50Over для 19 регионов (подтверждено фактическим тестированием, в алфавитном порядке): busan50Over, chungbuk50Over, chungnam50Over, daegu50Over, daejeon50Over, gwangju50Over, gyeongbuk50Over, gyeonggibuk50Over, gyeongginam50Over, gyeongnam50Over, incheon50Over, jeju50Over, jeonbuk50Over, jeonnam50Over, sejong50Over, seoul50Over, ulsan50Over, youngdong50Over, youngseo50Over (также предоставляются поля {регион}Grade с тем же шаблоном имени, с текстом хорошо/нормально/плохо/очень плохо).

  • ⚠️ Требуется проверка (не решено): Фактическим тестированием подтверждено, что при отсутствии превышения значение равно "X", однако значение при превышении (предполагаемое значение из текста спецификации "O") не воспроизводилось в течение августа 2026 года (сезонно низкий уровень PM2.5) и остаётся неподтверждённым. В коде в качестве значения по умолчанию установлено предполагаемое значение из спецификации ("O"), требуется повторная проверка при фактическом возникновении высоких концентраций.

  • Фактическим тестированием подтверждено, что период запроса ограничен примерно последним месяцем (при запросе searchDate за более ранние даты возвращается пустой список с totalCount: 0).

get_pm_alarm_status (getUlfptcaAlarmInfo)

  • Согласно спецификации, для ещё не снятых предупреждений clearDate приходит как "--", clearTime как ":00", clearVal как "공람" (не число). Этот инструмент в таком случае при безопасном преобразовании обрабатывает соответствующие поля как null и дополнительно явно указывает статус "не снято (в процессе)" через отдельные поля cleared (bool)/status (строка).

  • ⚠️ Требуется проверка (не решено): Были запрошены все фактические данные за 2025–2026 гг. (всего 448 записей), но все они уже были в состоянии снятия, и не удалось найти случай фактического воспроизведения паттерна неснятых ("--"/"공람"). Требуется повторная проверка при возникновении неснятых предупреждений в будущем.

get_ozone_advisory / get_yellowdust_advisory

  • Предупреждения об озоне имеют сезонность — публикуются только с апреля по октябрь каждого года (данных вне сезона просто нет; в приведённом выше фактическом тестировании O3 вне сезона для get_air_quality_forecast было отдельно подтверждено, что сам API работает нормально).

  • Для обоих get_ozone_advisory и get_yellowdust_advisory подтверждён нормальный вызов с параметром year (2026/2025).

Общее: периодическая нестабильность самого API портала открытых данных

  • Во время тестирования при вызовах getMinuDustFrcstDspth, getMinuDustWeekFrcstDspth, getMinuDustFrcstDspth50Over периодически возникали SERVICETIMEOUT_ERROR (код 05) или чистые сетевые таймауты. При повторной попытке того же запроса в большинстве случаев приходил нормальный ответ — это оценивается не как дефект кода, а как проблема нагрузки самого сервера портала открытых данных. Клиент использует таймаут httpx 30 секунд, при необходимости вызывающей стороне рекомендуется выполнять повторные попытки.

Переменные окружения

Имя переменной

Описание

AIRKOREA_SERVICE_KEY

Сервисный ключ Air Korea, выданный на портале открытых данных (ключ Decoding)

Установка и запуск (локально)

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

Развёртывание (fly.io)

fly launch --no-deploy
# fly.toml이 [http_service] 방식인지 확인 후
fly secrets set AIRKOREA_SERVICE_KEY=발급받은키
flyctl deploy

Подключение коннектора Claude.ai

https://airkorea-forecast-alert-mcp.fly.dev/mcp

Политика ограничения частоты запросов

  • При превышении 3 запросов в минуту — 429 (при многосерверном развёртывании может фактически смягчаться пропорционально количеству серверов)

  • При получении 5 или более ответов 429 в течение 1 часа — блокировка на 24 часа

  • При превышении суммарно 30 запросов в сутки (скользящие 24 часа) — 429

Коды ошибок

Используется стандартная система кодов ошибок портала открытых данных (1-й уровень — та же, что в airkorea-realtime-mcp).

Код

Значение

00

Нормально

03

No Data

10

Неверный параметр запроса

11

Отсутствует обязательный параметр

20

Отказ в доступе к сервису

22

Превышен суточный лимит трафика

30

Незарегистрированный сервисный ключ

31

Истёк срок использования сервисного ключа

Связанные проекты

OpenAPI Air Korea имеет большой масштаб, поэтому разрабатывается раздельно в виде 3 независимых MCP:

Этап

Репозиторий

Область охвата

1-й этап

airkorea-realtime-mcp

Информация о измерениях в реальном времени, CAI, информация о станциях измерения

2-й этап (этот проект)

airkorea-forecast-alert-mcp

Прогноз качества воздуха, недельный прогноз сверхмелкодисперсной пыли, прогноз высоких концентраций, предупреждения о мелкодисперсной пыли, предупреждения об озоне, предупреждения о жёлтой пыли

3-й этап

airkorea-statistics-mcp

Статистика по провинциям/станциям измерения (среднесуточные/среднемесячные), станции с CAI "плохо" и выше

Лицензия

MIT (код) / соблюдение KOGL тип 1 (указание авторства) — указание источника данных (Министерство окружающей среды / Korea Environment Corporation)

A
license - permissive license
Not graded
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • F
    license
    B
    quality
    D
    maintenance
    Connects to the Korea Meteorological Administration (KMA) Open API to provide short-term and ultra-short-term weather forecasts for South Korea. It enables users to query current weather conditions and future forecasts based on latitude and longitude.
    2
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI to query real-time Korean public data including weather, real estate prices, air quality, economic indicators, and business registration via natural language.
    1
    MIT
  • F
    license
    Not graded
    quality
    B
    maintenance
    MCP server for querying Seoul's official air quality data, including real-time and hourly measurements by district. Enables AI assistants to answer questions about fine dust and air pollution using public data from Seoul Open Data Plaza.
  • 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

View all related MCP servers

Related MCP Connectors

  • Air Quality MCP — wraps air-quality-api.open-meteo.com (free, no auth)

  • EPA AirNow MCP — official US real-time AQI + forecast (free key)

  • Korean government open data - weather, population, law search via data.go.kr

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/hlucent/airkorea-forecast-alert-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server