seoul-realtime-air-by-region-mcp
seoul-realtime-air-by-region-mcp
MCP-сервер для получения информации о состоянии атмосферного воздуха в реальном времени по районам Сеула (центральный/северо-восточный/юго-восточный/северо-западный/юго-западный).
Основан на API RealtimeCityAir от Seoul Open Data Plaza.
Организация/отдел: Департамент политики в области качества воздуха Климатического и экологического управления города Сеул
Исходные данные: Seoul Open Data Plaza — Состояние атмосферного воздуха в реальном времени по районам Сеула
Лицензия (данные): KOGL Type 1 (указание источника, разрешено коммерческое использование и изменение)
Лицензия (код): MIT
Предоставляемые инструменты
get_realtime_air_by_region
Получает информацию о состоянии атмосферного воздуха в реальном времени по районам (или конкретному району/станции).
Параметр | Обязательный | Описание |
| Необязательный | Название района — один из: центральный/северо-восточный/юго-восточный/северо-западный/юго-западный. Если опущено, все районы |
| Необязательный | Название станции. Нельзя использовать без |
| Необязательный | Диапазон запроса (по умолчанию 1–25, исходя из общего количества станций в Сеуле) |
Возвращаемые поля: Дата и время измерения (MSRMT_DT), Район (SAREA_NM), Станция (MSRSTN_NM), Мелкие частицы (PM, мкг/м³), Сверхмелкие частицы (FPM, мкг/м³), Озон (OZON, ppm), Диоксид азота (NTDX, ppm), Угарный газ (CBMX, ppm), Диоксид серы (SPDX, ppm), Комплексный класс качества воздуха (CAI_GRD), Комплексный индекс качества воздуха (CAI_IDX), Вещество, определяющее индекс (CRST_SBSTN)
list_available_regions
Возвращает фиксированный список из 5 доступных названий районов (центральный/северо-восточный/юго-восточный/северо-западный/юго-западный). Без вызова API.
Related MCP server: Seoul Air Emission Facility MCP
Ограничения, подтверждённые на практике
Ключ аутентификации передаётся как сегмент пути URL (
/{KEY}/json/RealtimeCityAir/...), а не как параметр запроса.msrstn_nmнельзя использовать отдельно безsarea_nm. Из-за структуры пути API необязательные параметры фиксированы в порядке: местоSAREA_NM→ местоMSRSTN_NM. Если опуститьsarea_nmи передать толькоmsrstn_nm, это значение будет интерпретировано какSAREA_NM, и будет возвращёнINFO-200(нет данных). Этот сервер отфильтровывает запросы, содержащие толькоmsrstn_nm, до вызова API и выдаёт понятную ошибку.Если расширить диапазон
start_index/end_index, фактически возвращается несколько записей (при полном запросе подтверждено 25 записей).Нормальные ответы — JSON, но некоторые ответы об ошибках (например, INFO-100 — неверный ключ) возвращаются в XML, даже если запрос был с TYPE=json. Этот сервер использует резервный парсер, который извлекает XML
<CODE>/<MESSAGE>при неудаче парсинга JSON.Значения
CAI_GRD(комплексный класс качества воздуха) на момент измерений были «хорошо» и «нормально» («плохо»/«очень плохо» не наблюдались, но по спецификации возможны).
Установка и запуск (локально)
git clone https://github.com/hlucent/seoul-realtime-air-by-region-mcp.git
cd seoul-realtime-air-by-region-mcp
pip install -r requirements.txt
cp .env.example .env # SEOUL_API_KEY 값 입력
python server.pyПеременные окружения
Имя переменной | Описание |
| Ключ аутентификации, полученный от Seoul Open Data Plaza |
| Порт сервера (по умолчанию 8000 при развёртывании на fly.io) |
Развёртывание (fly.io)
fly launch --no-deploy
fly secrets set SEOUL_API_KEY=<발급받은키>
flyctl deployПосле развёртывания при подключении коннектора Claude.ai регистрируйте с добавлением пути /mcp в следующем виде:
https://<앱이름>.fly.dev/mcpБезопасность
Сервер открыт без ключа аутентификации, применяется трёхуровневое ограничение частоты запросов на основе IP (3 запроса в минуту — при развёртывании на нескольких машинах может быть смягчено пропорционально количеству машин, при 5 нарушениях в час — блокировка на 24 часа, суточный лимит — 30 запросов).
IP определяется в первую очередь по заголовку Fly-Client-IP (устанавливается непосредственно edge-сервером fly.io, подделка клиентом невозможна). Счётчики ограничения частоты хранятся в памяти (dict) для каждого процесса и не разделяются между машинами, поэтому при распределении запросов fly.io между несколькими машинами фактическое ограничение для одного IP может быть смягчено до «3 запросов в минуту × количество работающих машин». Это компромисс в архитектуре, выбранный для реализации in-memory без внешнего хранилища.
Лицензия
Лицензия MIT. Исходные данные распространяются по лицензии KOGL Type 1.
This server cannot be deployed
Maintenance
Related MCP Connectors
Access UK air quality data, monitoring sites, and hourly pollutant measurements across regions
Free, keyless real-time air quality (US AQI plus PM2.5, PM10, ozone, NO2, SO2, CO) for any city.
Seoul Open Data MCP — city data for Seoul via the Seoul Open Data Plaza API (openapi.seoul.go.kr).…
Find air-quality stations and read pollutant observations from government monitors via OpenAQ v3.
Related MCP Servers
- 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 gradedqualityCmaintenanceEnables natural language queries of Seoul's air pollutant emission facility permit data from the Seoul Open Data Platform, including facility search, detailed lookup, and status enumeration.MIT
- 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
- 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