Skip to main content
Glama
hlucent

seoul-realtime-air-by-region-mcp

by hlucent

seoul-realtime-air-by-region-mcp

MCP-сервер для получения информации о состоянии атмосферного воздуха в реальном времени по районам Сеула (центральный/северо-восточный/юго-восточный/северо-западный/юго-западный). Основан на API RealtimeCityAir от Seoul Open Data Plaza.

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

get_realtime_air_by_region

Получает информацию о состоянии атмосферного воздуха в реальном времени по районам (или конкретному району/станции).

Параметр

Обязательный

Описание

sarea_nm

Необязательный

Название района — один из: центральный/северо-восточный/юго-восточный/северо-западный/юго-западный. Если опущено, все районы

msrstn_nm

Необязательный

Название станции. Нельзя использовать без sarea_nm (см. ограничения ниже)

start_index, end_index

Необязательный

Диапазон запроса (по умолчанию 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: mcp-waqi

Ограничения, подтверждённые на практике

  • Ключ аутентификации передаётся как сегмент пути 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_API_KEY

Ключ аутентификации, полученный от Seoul Open Data Plaza

PORT

Порт сервера (по умолчанию 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.

A
license - permissive license
-
quality - not tested
B
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

  • A
    license
    -
    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
    -
    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
    A
    quality
    B
    maintenance
    Provides real-time Seoul city data including population congestion, traffic, parking, transit, bikes, EV chargers, weather, events, commercial, accidents, alerts, and news across 121 locations using Seoul Open Data API.
    3
    0
    1
    MIT

View all related MCP servers

Related MCP Connectors

  • Find air-quality stations and read pollutant observations from government monitors via OpenAQ v3.

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

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

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/seoul-realtime-air-by-region-mcp'

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