Korea Weather
Get weather from Korea Meteorological Administration (기상청). Provides current conditions, forecasts (3-10 days), and weather warnings/advisories (기상특보). Use w...
MIT-0 · Free to use, modify, and redistribute. No attribution required.
⭐ 1 · 1.3k · 0 current installs · 0 all-time installs
byChoi Jiheon@steamb23
MIT-0
Security Scan
OpenClaw
Benign
high confidencePurpose & Capability
Name and description (KMA weather, warnings, 5km grid, mid-term) match the included scripts and reference docs. Required binary (python3) and required env var (KMA_SERVICE_KEY) are appropriate and expected for calling the official data.go.kr KMA APIs.
Instruction Scope
SKILL.md instructs running the included Python scripts and setting KMA_SERVICE_KEY in OpenClaw config; scripts only call KMA endpoints, convert lat/lon to grid coordinates, and format responses. There are no instructions to read unrelated system files or exfiltrate data to non-KMA endpoints.
Install Mechanism
No install spec (instruction-only) and included files are plain Python scripts. No remote downloads, package installs, or archive extraction are performed by the skill. Risk is limited to running the provided Python scripts.
Credentials
Only a single credential (KMA_SERVICE_KEY) is required and used solely to call the documented KMA API endpoints. No unrelated environment variables, secrets, or external service credentials are requested.
Persistence & Privilege
The skill does not request always: true and does not attempt to modify other skills or system-wide settings. The SKILL.md instructs adding the API key to the agent config for convenience — this is normal but persistent storage of the key is user-controlled.
Assessment
This skill appears to do exactly what it says: call official KMA endpoints using a service key. Before installing, verify you obtain KMA_SERVICE_KEY from the official data.go.kr portal and treat it as a secret (store it in a secure secret store rather than a world-readable config file if possible). Running the skill will execute Python scripts — review them if you have stricter runtime policies. Also be mindful of API rate limits and any IP registration requirements noted by the KMA service. If you prefer not to persist the API key in openclaw.json, set it in the runtime environment for the agent session only.Like a lobster shell, security has layers — review code before you run it.
Current versionv1.0.3
Download ziplatest
License
MIT-0
Free to use, modify, and redistribute. No attribution required.
Runtime requirements
🌦️ Clawdis
Binspython3
EnvKMA_SERVICE_KEY
Primary envKMA_SERVICE_KEY
SKILL.md
kma-weather
Quick Start
# Current weather + 6-hour forecast
python3 skills/kma-weather/scripts/forecast.py brief --lat 37.5665 --lon 126.9780
# All forecasts as JSON (current + ultrashort + shortterm)
python3 skills/kma-weather/scripts/forecast.py all --lat 37.5665 --lon 126.9780 --json
# Short-term forecast (3 days)
python3 skills/kma-weather/scripts/forecast.py shortterm --lat 37.5665 --lon 126.9780 --days all
# Nationwide weather warnings/advisories (기상특보)
python3 skills/kma-weather/scripts/weather_warnings.py
# Mid-term forecast (3-10 days)
python3 skills/kma-weather/scripts/midterm.py --region 서울
Setup
1. Get API Key
- Visit 공공데이터포털
- Request access to these 3 APIs (all use the same key):
- 기상청 단기예보 조회서비스 (15084084)
- 기상청 기상특보 조회서비스 (15000415)
- 기상청 중기예보 조회서비스 (15059468)
- Copy your
ServiceKeyfrom My Page → API Key Management
2. Set Environment Variable
In ~/.openclaw/openclaw.json:
Sandbox (add to agents.defaults.sandbox.docker.env):
{
"agents": {
"defaults": {
"sandbox": {
"docker": {
"env": {
"KMA_SERVICE_KEY": "your-key"
}
}
}
}
}
}
Host (add to env.vars):
{
"env": {
"vars": {
"KMA_SERVICE_KEY": "your-key"
}
}
}
Usage
forecast.py
| Command | Description |
|---|---|
current | Real-time observations |
ultrashort | 6-hour forecast |
shortterm | 3-day forecast |
brief | current + ultrashort |
all | current + ultrashort + shortterm |
Options:
--lat,--lon: Coordinates (required)--days: For shortterm -1(tomorrow, default),2,3, orall--json: Raw JSON output
Output example (current):
🌤️ 현재 날씨 (초단기실황)
🌡️ 기온: 5.2°C
💧 습도: 65%
🌧️ 강수량: 0mm (1시간)
💨 풍속: 2.3m/s
🧭 풍향: NW (315°)
weather_warnings.py
Returns current nationwide 기상특보:
🚨 기상특보 현황
발표시각: 2026-02-01 10:00
발효시각: 2026-02-01 10:00
📍 현재 발효 중인 특보
• 건조경보 : 강원도, 경상북도, ...
• 풍랑주의보 : 동해중부안쪽먼바다, ...
⚠️ 예비특보
• (1) 강풍 예비특보 : 02월 02일 새벽(00시~06시) : 울릉도.독도
midterm.py
3-10 day forecast by region.
python3 skills/kma-weather/scripts/midterm.py --region 서울
python3 skills/kma-weather/scripts/midterm.py --stn-id 109
Regions: 서울, 인천, 경기, 부산, 대구, 광주, 대전, 울산, 세종, 강원, 충북, 충남, 전북, 전남, 경북, 경남, 제주
grid_converter.py
Convert lat/lon to KMA 5km grid (auto-handled by other scripts):
python3 skills/kma-weather/scripts/grid_converter.py 37.5665 126.9780
# Output: Grid: (60, 127)
API Notes
- Release Schedule:
- Current: Every hour at :40 (base_time: HH00)
- Ultra-short: Every hour at :45 (base_time: HH30)
- Short-term: 02:10, 05:10, 08:10, 11:10, 14:10, 17:10, 20:10, 23:10 (KST)
- Mid-term: 06:00, 18:00 (KST)
- Coverage: South Korea only
- Auto-pagination: Scripts fetch all pages automatically
vs weather skill
| weather | kma-weather | |
|---|---|---|
| Coverage | Global | Korea only |
| API Key | No | Required |
| Resolution | City-level | 5km grid |
| Weather Warnings | No | Yes (기상특보) |
Use both: weather for global, kma-weather for detailed Korean forecasts and 기상특보.
Troubleshooting
| Error | Solution |
|---|---|
KMA API service key not found | Set KMA_SERVICE_KEY env var |
SERVICE_KEY_IS_NOT_REGISTERED_ERROR | Check API approval status, verify key |
SERVICE_TIMEOUT_ERROR | Retry later |
| No data returned | Verify coordinates are in South Korea |
References (Raw API Documentation)
- references/api-forecast.md - 단기예보 API endpoints, parameters, response format
- references/api-warnings.md - 기상특보 API endpoints, parameters, response format
- references/api-midterm.md - 중기예보 API endpoints, parameters, response format
- references/category-codes.md - KMA category codes (SKY, PTY, etc.)
- implement-status.md - Implementation status
Files
11 totalSelect a file
Select a file to preview.
Comments
Loading comments…
