safemap-uv-index-mcp
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@safemap-uv-index-mcp서울 자외선 지수 알려줘"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
safemap-uv-index-mcp
An MCP server that queries the UV Index Information Inquiry Service (ultraviolet index data from the Korea Meteorological Administration's living weather index, organized by city/county/district) provided by the Ministry of the Interior and Safety's Life Safety Map (safemap.go.kr).
Provided Data
Single dataset structure, so no separate Dataset Registry table is needed.
Dataset name (display): UV Index
Provider: Korea Meteorological Administration (Managing department: Meteorological Convergence Service Division)
Platform: Ministry of the Interior and Safety Life Safety Map (safemap.go.kr)
Original API: UV Index Information Inquiry Service (IF_0113)
Related MCP server: korea_weather
Tools
get_uv_index
Queries the UV index by province/city/county/district.
Parameters
Name | Type | Required | Description |
sido | string | Optional | Filter by province name (e.g., "Seoul", "Gyeonggi"). Client-side partial match |
sigungu | string | Optional | Filter by city/county/district name (e.g., "Gangnam-gu"). Client-side partial match |
page_no | int | Optional (default 1) | Used when paging through all data without a region filter |
num_of_rows | int | Optional (default 300) | Number of results to fetch at once (269 nationwide total, so 300 includes all on one page) |
Return Fields
Field | Description |
ctprvn_nm | Province name (e.g., "Seoul", "South Gyeongsang", "Gangwon Special Self-Governing Province") |
signgu_nm | City/county/district name. Items representing an entire province come as an empty string ("") |
emd_nm | Town/neighborhood name. Confirmed to always be an empty string in actual measurements |
ulvry_index | UV index value. Returned as an integer (confirmed to be pure numbers in the 0~9 range in actual measurements, not grade strings) |
occrrnc_dt | Occurrence date/time. Actual format: |
Known Limitations (Measurement Complete)
The original specification was provided only as 2 screen captures + Java sample code rather than Excel/XML samples, so the actual verification results for items requiring measurement are as follows (measured 2026-08-22):
returnType default value: Even when
returnTypeis omitted, JSON is actually returned (the notice "Default: JSON" is correct). However, to be safe,returnType=jsonis explicitly included in every request.Region filter parameters: Tried region filter parameters such as
sidoNm, but the server ignores them and returns all data as-is — the API does not support built-in region filtering. This server fetches all nationwide data and then performs client-side filtering with thesido/sigunguparameters.UV index (ulvry_index): Confirmed in actual measurements to be pure numeric strings such as
"0","1","2","7","9"(not grade strings like "Low/Moderate/High"). The server safely converts these to integers before returning.Occurrence date/time (occrrnc_dt) format:
YYYYMMDDHH(down to the hour, no minutes). Example:"2026072106".totalCount / nationwide city/county/district count: When called with
numOfRows=1000, pageNo=1,totalCount=269and the actual number of returned items is also 269, matching. All 17 provinces are included, with each province having an item representing the "entire province" (signgu_nm="") along with individual city/county/district items.Error codes: Normal responses have
resultCode="00",resultMsg="NORMAL_SERVICE". When called with an invalid service key,resultCode="30",resultMsg="SERVICE_KEY_IS_NOT_REGISTERED_ERROR"(HTTP status code confirmed as 500).Town/neighborhood name (emd_nm): Confirmed to always be an empty string within the measured range.
Endpoint: Calling
http://safemap.go.kr/openapi2/IF_0113redirects tohttps://www.safemap.go.kr/...(automatic HTTPS conversion, handled with httpxfollow_redirects=True).
Installation and Execution
pip install -r requirements.txt
cp .env.example .env # SAFEMAP_API_KEY 값 입력
python server.pyEnvironment Variables
Variable | Description |
SAFEMAP_API_KEY | Authentication key issued from the Ministry of the Interior and Safety Life Safety Map (safemap.go.kr) |
PORT | Server port (default 8080) |
Deployment (fly.io)
fly launch --no-deploy
fly secrets set SAFEMAP_API_KEY=발급받은키
flyctl deployWhen connecting via the Claude.ai connector after deployment, be sure to append the /mcp path:
https://safemap-uv-index-mcp.fly.dev/mcpRate Limit
Since this is a public server that can be connected via URL alone without API key authentication, an IP-based sliding window rate limit is applied:
More than 30 requests within 60 seconds returns 429 (
Fly-Client-IPheader takes priority; if absent, the first value ofX-Forwarded-Foris used)CORS preflight (OPTIONS) requests are excluded from the count
License
MIT License. The copyright of the data itself follows the usage terms of the Public Data license (Ministry of the Interior and Safety Life Safety Map).
Source
Provided by the Ministry of the Interior and Safety Life Safety Map (safemap.go.kr), Korea Meteorological Administration (Meteorological Convergence Service Division) 「UV Index Information Inquiry Service (IF_0113)」
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
- AlicenseBqualityDmaintenanceMCP 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.27Apache 2.0
- FlicenseAqualityDmaintenanceAn 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.312
- FlicenseNot gradedqualityBmaintenanceA read-only MCP server providing access to various Korean public data such as subway arrivals, weather, fine dust, bike availability, real estate, and more.
- FlicenseNot gradedqualityCmaintenanceThis 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.
Related MCP Connectors
This MCP server provides seamless access to Malaysia's government open data, including datasets, w…
MCP server for live, sourced Brazilian public data from the official IBGE APIs.
This MCP server enables users to perform scientific computations regarding linear algebra and vect…
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/safemap-uv-index-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server