airkorea-forecast-alert-mcp
airkorea-forecast-alert-mcp
MCP-сервер для запросов к OpenAPI прогноза качества воздуха, предупреждений о мелкодисперсной пыли, предупреждений об озоне/жёлтой пыли от Korea Environment Corporation (Air Korea).
Предоставляемые инструменты
Инструмент | Описание |
| Запрос прогноза качества воздуха (мелкодисперсная пыль/озон) — прогноз на сегодня/завтра/послезавтра, обзор прогноза, причины возникновения, рекомендации по действиям |
| Запрос недельного прогноза сверхмелкодисперсной пыли — прогноз низкий/высокий на 4 дня, начиная с 3-го дня |
| Запрос информации о прогнозе высоких концентраций сверхмелкодисперсной пыли (свыше 50) — превышение PM2.5 50 мкг/м³ в 19 регионах |
| Запрос статуса предупреждений о мелкодисперсной пыли — история объявления/снятия предупреждений и оповещений по регионам |
| Запрос информации о возникновении предупреждений об озоне |
| Запрос информации о возникновении предупреждений о жёлтой пыли |
Примечание по проектированию: В разделе 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 изображений (imageUrl1–imageUrl9) возвращаются как есть, в качестве справочных ссылок.
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) или чистые сетевые таймауты. При повторной попытке того же запроса в большинстве случаев приходил нормальный ответ — это оценивается не как дефект кода, а как проблема нагрузки самого сервера портала открытых данных. Клиент использует таймаутhttpx30 секунд, при необходимости вызывающей стороне рекомендуется выполнять повторные попытки.
Переменные окружения
Имя переменной | Описание |
| Сервисный ключ 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-й этап |
| Информация о измерениях в реальном времени, CAI, информация о станциях измерения |
2-й этап (этот проект) |
| Прогноз качества воздуха, недельный прогноз сверхмелкодисперсной пыли, прогноз высоких концентраций, предупреждения о мелкодисперсной пыли, предупреждения об озоне, предупреждения о жёлтой пыли |
3-й этап |
| Статистика по провинциям/станциям измерения (среднесуточные/среднемесячные), станции с CAI "плохо" и выше |
Лицензия
MIT (код) / соблюдение KOGL тип 1 (указание авторства) — указание источника данных (Министерство окружающей среды / Korea Environment Corporation)
This server cannot be installed
Maintenance
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
- FlicenseBqualityDmaintenanceConnects 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
- AlicenseNot gradedqualityDmaintenanceEnables AI to query real-time Korean public data including weather, real estate prices, air quality, economic indicators, and business registration via natural language.1MIT
- FlicenseNot gradedqualityBmaintenanceMCP 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.
- AlicenseNot gradedqualityCmaintenanceRetrieves hourly average air quality data (PM10, PM2.5, ozone, NO2, CO, SO2) from Seoul's open data platform, filtered by station or district.MIT
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
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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