Skip to main content
Glama
hlucent

safemap-uv-index-mcp

by hlucent

safemap-uv-index-mcp

MCP-сервер для запроса сервиса информации об индексе ультрафиолета (данные об индексе ультрафиолета из индексов жизненной погоды Корейской метеорологической администрации, сгруппированные по городам и районам), предоставляемого через карту безопасности жизнедеятельности Министерства внутренних дел и безопасности (safemap.go.kr).

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

Состоит из единого набора данных, отдельная таблица реестра наборов данных не требуется.

  • Название набора данных (отображаемое): Индекс ультрафиолета

  • Предоставляющая организация: Корейская метеорологическая администрация (ответственный отдел: Отдел служб метеорологической конвергенции)

  • Платформа предоставления: Карта безопасности жизнедеятельности Министерства внутренних дел и безопасности (safemap.go.kr)

  • Исходный API: Сервис информации об индексе ультрафиолета (IF_0113)

Related MCP server: korea_weather

Инструменты

get_uv_index

Запрашивает индекс ультрафиолета по провинции/городу и району.

Параметры

Имя

Тип

Обязательность

Описание

sido

string

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

Фильтр по названию провинции (напр.: "서울", "경기"). Частичное совпадение на стороне клиента

sigungu

string

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

Фильтр по названию города/района (напр.: "강남구"). Частичное совпадение на стороне клиента

page_no

int

необязательный (по умолчанию 1)

Используется при постраничном запросе всех данных без фильтра по региону

num_of_rows

int

необязательный (по умолчанию 300)

Количество результатов, получаемых за один раз (всего по стране 269 записей, поэтому при 300 все данные помещаются на одну страницу)

Возвращаемые поля

Поле

Описание

ctprvn_nm

Название провинции (напр.: "서울", "경남", "강원특별자치도")

signgu_nm

Название города/района. Для записей, представляющих всю провинцию, возвращается пустая строка ("")

emd_nm

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

ulvry_index

Значение индекса ультрафиолета. Возвращается как целое число (int) (по результатам фактических проверок — чисто числовое значение в диапазоне 0~9, не строка уровня)

occrrnc_dt

Дата и время возникновения. Фактический формат: YYYYMMDDHH (10 знаков, напр.: "2026072106" = 2026-07-21 06:00)

Известные ограничения (проверено фактически)

Поскольку исходная спецификация была предоставлена не в виде образцов Excel/XML, а в виде 2 скриншотов экрана + образца кода на Java, фактические результаты проверки элементов, требовавших проверки, следующие (проверено 2026-08-22):

  • Значение по умолчанию returnType: даже если опустить returnType, фактически возвращается JSON (информационное сообщение "Default: JSON" верно). Однако для надёжности в каждый запрос явно включается returnType=json.

  • Параметры фильтра по региону: были попытки использовать параметры фильтра по региону, такие как sidoNm, но сервер игнорирует их и возвращает все данные как есть — API не поддерживает собственный фильтр по региону. Этот сервер сначала запрашивает все данные по стране, а затем выполняет фильтрацию на стороне клиента с помощью параметров sido/sigungu.

  • Индекс ультрафиолета (ulvry_index): по результатам фактических проверок подтверждено, что это чистые числовые строки, такие как "0", "1", "2", "7", "9" (не строки уровня, такие как "низкий/средний/высокий"). Сервер безопасно преобразует их в целые числа и возвращает.

  • Формат даты и времени возникновения (occrrnc_dt): YYYYMMDDHH (с точностью до часа, без минут). Напр.: "2026072106".

  • totalCount / количество городов и районов по стране: при вызове с numOfRows=1000, pageNo=1 totalCount=269, фактическое количество возвращаемых записей также совпадает — 269. Включены все 17 провинций, для каждой провинции возвращаются как запись, представляющая "все города и районы" (signgu_nm=""), так и отдельные записи городов и районов.

  • Коды ошибок: при нормальном ответе resultCode="00", resultMsg="NORMAL_SERVICE". При вызове с неверным ключом сервиса resultCode="30", resultMsg="SERVICE_KEY_IS_NOT_REGISTERED_ERROR" (подтверждено, что код состояния HTTP — 500).

  • Название города/уезда/района (emd_nm): в пределах фактически проверенного диапазона всегда пустая строка.

  • Конечная точка: при вызове http://safemap.go.kr/openapi2/IF_0113 происходит перенаправление на https://www.safemap.go.kr/... (автоматическое переключение на https, обрабатывается с помощью follow_redirects=True в httpx).

Установка и запуск

pip install -r requirements.txt
cp .env.example .env  # SAFEMAP_API_KEY 값 입력
python server.py

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

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

Описание

SAFEMAP_API_KEY

Ключ аутентификации, выданный картой безопасности жизнедеятельности Министерства внутренних дел и безопасности (safemap.go.kr)

PORT

Порт сервера (по умолчанию 8080)

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

fly launch --no-deploy
fly secrets set SAFEMAP_API_KEY=발급받은키
flyctl deploy

При подключении коннектора Claude.ai после развёртывания обязательно добавьте путь /mcp:

https://safemap-uv-index-mcp.fly.dev/mcp

Ограничение частоты запросов

Поскольку это открытый сервер, к которому можно подключить коннектор просто по URL без аутентификации по ключу API, применяется ограничение частоты запросов по методу скользящего окна на основе IP:

  • При превышении 30 запросов за 60 секунд возвращается 429 (приоритет у заголовка Fly-Client-IP, при его отсутствии используется первое значение X-Forwarded-For)

  • Запросы CORS preflight (OPTIONS) не учитываются в счётчике

Лицензия

Лицензия MIT. Авторские права на сами данные регулируются условиями использования Open Government License (карта безопасности жизнедеятельности Министерства внутренних дел и безопасности).

Источник

Предоставлено картой безопасности жизнедеятельности Министерства внутренних дел и безопасности (safemap.go.kr), Корейской метеорологической администрацией (Отдел служб метеорологической конвергенции) — «Сервис информации об индексе ультрафиолета (IF_0113)».

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

  • A
    license
    B
    quality
    D
    maintenance
    MCP server that provides Korean weather information using grid coordinates and the Korea Meteorological Administration API, allowing users to query current weather conditions and forecasts for specific locations in Korea.
    2
    7
    Apache 2.0
  • F
    license
    A
    quality
    D
    maintenance
    An MCP server that provides Korean weather information from the Korea Meteorological Administration's short-term forecast API, enabling natural language queries about weather conditions such as current weather, rain forecasts, and suitability for outdoor activities.
    3
    12
  • F
    license
    Not graded
    quality
    B
    maintenance
    A read-only MCP server providing access to various Korean public data such as subway arrivals, weather, fine dust, bike availability, real estate, and more.
  • F
    license
    Not graded
    quality
    C
    maintenance
    This MCP server integrates South Korea's national law information, building registers from MOLIT, and KOSIS statistics for housing development research. It enables searching laws, retrieving building details, and accessing statistical data through natural language.

View all related MCP servers

Related MCP Connectors

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/safemap-uv-index-mcp'

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