airkorea-realtime-mcp
⚠️ Уведомление о прекращении обслуживания Данный MCP-сервер прекратил развёртывание на fly.io с 2026-08-23. Код оставлен в репозитории для справочных целей при разработке.
airkorea-realtime-mcp
MCP-сервер для запроса информации о качестве воздуха в реальном времени, комплексного индекса качества воздуха (CAI) и информации о станциях мониторинга через OpenAPI Air Korea Корейской корпорации по охране окружающей среды.
Предоставляемые инструменты (5 шт.)
Инструмент | Описание |
| Запрос информации о качестве воздуха в реальном времени (SO2/CO/O3/NO2/PM10/PM2.5, комплексный индекс качества воздуха) по названию станции |
| Запрос информации о качестве воздуха в реальном времени по всем станциям провинции/города по названию провинции |
| Запрос комплексного индекса качества воздуха (CAI) в реальном времени по названию станции |
| Поиск списка/координат станций по адресу или названию станции |
| Запрос ближайших станций и расстояния до них по координатам |
Related MCP server: seoul-air-quality-mcp
Источник данных
Предоставляющая организация: Отдел политики поддержки качества воздуха, Департамент качества воздуха, Управление климата и качества воздуха, Корейская корпорация по охране окружающей среды
Платформа: Портал открытых государственных данных (data.go.kr)
Группа сервисов: Korea Environment Corporation_Air Korea_Информация о загрязнении воздуха, Korea Environment Corporation_Air Korea_Информация о станциях мониторинга, Korea Environment Corporation_Air Korea_Сервис запроса комплексного индекса качества воздуха (CAI) (код группы сервисов
B552584)Область разрешения на использование: Указание авторства-запрет изменений (обязательное соблюдение указания источника данных (Министерство окружающей среды/Корейская корпорация по охране окружающей среды))
Единицы измерения и критерии классов
Параметр | SO2 | CO | O3 | NO2 | PM10 | PM2.5 |
Единица | ppm | ppm | ppm | ppm | ㎍/㎥ | ㎍/㎥ |
Значения класса (Grade): 1=хорошо, 2=нормально, 3=плохо, 4=очень плохо
Известные ограничения (подтверждено практическими измерениями)
Оси координат списка станций (
search_stations): при вызове с фиксированнымver=1.1подтверждено, чтоdmX=долгота,dmY=широта (перекрёстная проверка выполнена на 5 различных станциях). По стандарту WGS84.Система координат запроса ближайших станций (
get_nearby_stations): практическими измерениями подтверждено, что при вводе координат WGS84 (широта/долгота) напрямую возвращаются совершенно неверные результаты (например, при вводе координат района Каннамгу в Сеуле возвращаются станции на острове Чеджудо). Обязательно требуется преобразование координат в TM Central Belt (EPSG:5181); данный сервер автоматически преобразует WGS84→EPSG:5181 с помощью pyproj и затем вызывает API (пользователю нужно ввести только широту/долготу). При вводе координат администрации района Каннамгу (37.515336, 127.049357) станция района Каннамгу возвращается первой с расстоянием 0.4 км, что подтверждает точность преобразования.Поля ответа запроса CAI (
get_station_cai): в отличие от таблицы в спецификации (khaiValue/khaiGrade/khaiItem), фактические имена полей —caiValue/caiGrade/caiItem. Полный набор полей:stationCode,stationName,mangName,dataTime,caiValue,caiGrade,caiItem(поля отдельных загрязняющих веществ, такие как so2Value, в ответ этой операции не включаются).Нормальный resultCode запроса CAI: у остальных 4 операций при нормальном выполнении
resultCode="00", но толькоgetMsrstnKhaiRltmDnsty(CAI) при нормальном выполнении отвечаетresultCode="200",resultMsg="NORMAL_CODE". Код сервера обрабатывает как нормальное выполнение также случаи, когдаresultMsgравен"NORMAL_CODE"/"NORMAL SERVICE".Различие в структуре ответа items: у
ArpltnInforInqireSvc/MsrstnInfoInqireSvcitems— массив, а уRltmKhaiInfoSvc(CAI) данные обёрнуты на один уровень глубже —items.item. Сервер поглощает это различие и всегда возвращает массив.Представление пропущенных значений: в текущем диапазоне практических измерений (нормальные данные о качестве воздуха) случаи пропусков
"-"не встречались, но на основе примеров из спецификации_safe_numericреализован так, чтобы безопасно преобразовывать"-"/None/пустую строку/число с плавающей точкой (float) вNone(без произвольной замены на 0).Стабильность API-сервера: в ходе практических измерений подтверждено частое возникновение
SERVICETIMEOUT_ERROR(код ошибки 05, HTTP 504). Сервер автоматически повторяет попытку до 3 раз только для кода 05.sidoName "전남광주": запрос выполняется нормально (отражает создание особого города Чоннам-Кванджу в 2026 году, подтверждено 64 записи в totalCount).
Переменные окружения
Имя переменной | Описание |
| Сервисный ключ Air Korea, полученный на портале открытых государственных данных (декодированный ключ) |
Установка и запуск (локально)
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
После завершения развёртывания подключитесь, добавив /mcp к адресу.
https://airkorea-realtime-mcp.fly.dev/mcpПолитика ограничения частоты запросов
Поскольку это открытый сервер, к которому можно подключиться по URL без ключа API, применяется 3-уровневое ограничение частоты запросов по IP.
Более 3 запросов в минуту — 429 (при многосерверном развёртывании фактическое смягчение может быть пропорционально количеству серверов)
При получении 429 более 5 раз в течение 1 часа — блокировка на 24 часа
Более 30 запросов в сутки (скользящие 24 часа) — 429
Коды ошибок
Этот API использует стандартную систему кодов ошибок портала открытых государственных данных (отличается от системы INFO-000/ERROR-3xx Открытой площадки данных Сеула).
Код | Значение |
00 | Нормально |
03 | No Data (нет данных) |
10 | Неверный параметр запроса |
11 | Отсутствует обязательный параметр |
20 | Отказ в доступе к сервису (не подана заявка на использование) |
22 | Превышен суточный лимит трафика |
30 | Незарегистрированный сервисный ключ |
31 | Истёк срок действия сервисного ключа |
Связанные проекты
API Air Korea имеет большой масштаб, поэтому разрабатывается как 3 независимых MCP:
Этап | Репозиторий | Область охвата |
Этап 1 (этот проект) |
| Информация о качестве воздуха в реальном времени, CAI, информация о станциях мониторинга |
Этап 2 |
| Прогноз качества воздуха, предупреждения о мелкодисперсной пыли, предупреждения об озоне и жёлтой пыли |
Этап 3 |
| Статистика по провинциям/станциям (среднесуточные/среднемесячные), станции с CAI выше "плохо" |
Лицензия
MIT (код) / соблюдение KOGL Type 1 (указание авторства) — указание источника данных (Министерство окружающей среды/Корейская корпорация по охране окружающей среды)
This server cannot be deployed
Maintenance
Related MCP Connectors
Free, keyless real-time air quality (US AQI plus PM2.5, PM10, ozone, NO2, SO2, CO) for any city.
Access UK air quality data, monitoring sites, and hourly pollutant measurements across regions
Air Quality MCP — wraps air-quality-api.open-meteo.com (free, no auth)
Find air-quality stations and read pollutant observations from government monitors via OpenAQ v3.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceProvides real-time Air Quality Index data from the World Air Quality Index service, enabling queries by location, station, or keyword search.23 npmMIT
- 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 gradedqualityBmaintenanceEnables querying real-time air quality data by region in Seoul, South Korea, using the Seoul Open Data Platform API, supporting multiple regions and monitoring stations.MIT
- AlicenseNot gradedqualityCmaintenanceEnables 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