기상청 날씨 (KMA Weather Korea)

KMA short-term forecast API - ultra-short-term observation/forecast, short-term forecast

Audits

Pass

Install

openclaw skills install kma-weather-korea

KMA Weather Forecast Skill

Korea Meteorological Administration short-term forecast API + AirKorea air quality integration.

Overview

KeyValue
ProviderKMA (Korea Meteorological Administration)
Service ID15084084
Auth~/.config/data-go-kr/api_key
Endpointhttps://apis.data.go.kr/1360000/VilageFcstInfoService_2.0
Playbookplaybook.md

Scripts

scripts/
├── weather.sh             → Weather query (ncst/fcst/short)
├── morning_briefing.sh    → Morning briefing (weather + air quality)
└── grid_convert.py        → Lat/lon → grid coordinate conversion

Workflow

Step 1: Identify location & time

  • "서울 날씨" → Seoul Jongno-gu (nx=60, ny=127)
  • "내일 날씨" → short-term forecast (short)
  • "지금 비 와?" → ultra-short-term observation (ncst)
  • Refer to playbook.md for default location

Step 2: Fetch weather data

  • Current: weather.sh ncst [nx] [ny]
  • 6-hour: weather.sh fcst [nx] [ny]
  • 3-day: weather.sh short [nx] [ny]

Step 3: Air quality integration (~~air)

  • Fetch PM data via AirKorea skill
  • skills/airkorea-air-quality/scripts/air_quality.sh [station]

Step 4: Structured response using output template

Output Template

## 🌤️ [Location] Weather

### Current
🌡️ Temp: X°C (Feels like X°C)
💧 Humidity: X% | 🌬️ Wind: Xm/s
🌧️ Precip: [None/Rain/Snow]

### Today's Forecast
☀️ High X°C / Low X°C
🌧️ Precip probability: X%
🌫️ PM2.5: [Good/Moderate/Bad/Very Bad] (X㎍/㎥)

### 💡 One-liner
[Bring umbrella / Wear mask / Great day to go out]

API Types

APICommandDescriptionUpdate Cycle
Ultra-short obsncstCurrent observationHourly
Ultra-short fcstfcst6hr forecastEvery 30min
Short-term fcstshort3-day hourly8x/day

Key Grid Coordinates

Locationnxny
Seoul Jongno60127
Seoul Gangnam61126
Busan9876
Daegu8990
Incheon55124
Daejeon67100
Jeju5238

Codes

Sky (SKY)

1: Clear ☀️ | 3: Mostly cloudy ⛅ | 4: Overcast ☁️

Precipitation (PTY)

0: None | 1: Rain 🌧️ | 2: Rain/Snow 🌧️❄️ | 3: Snow ❄️ | 4: Shower 🌦️

base_time Rules

APIRelease timeQueryable
Ultra-short obsEvery hour+10min
Ultra-short fcstEvery 30min+10min
Short-term fcst02,05,08,11,14,17,20,23h+10min

Connectors

PlaceholderPurposeCurrent Tool
~~weatherWeather APIKMA Short-term Forecast
~~airAir qualityAirKorea
~~notifyNotificationTelegram

Intent Router

IntentTrigger ExamplesStrategy
Quick Check"오늘 날씨 어때?", "지금 비 와?", "기온 몇 도?"ncst (현재 관측) + fcst (3시간 예보) → 간단 요약
Daily Forecast"내일 비 와?", "주말 날씨", "모레 눈 올까?"short (단기예보 3일) → 시간대별 상세
Morning Briefing"아침 날씨 브리핑"morning_briefing.sh → 날씨+대기질 통합

Routing logic: 현재/지금 → Quick Check, 내일/모레/주말 → Daily Forecast, 브리핑 → Morning Briefing

Cross-Skill Integration

TriggerTarget SkillIntegration
날씨 응답 시 항상airkorea-air-qualityPM2.5 수치를 날씨 응답에 포함 (Output Template 참조)
미세먼지 나쁨 이상airkorea-air-quality"마스크 챙기세요" 팁 추가
비/눈 예보 시"우산 챙기세요" 자동 팁

Notes

  1. Uses grid coordinate system (not lat/lon) → use grid_convert.py
  2. Query after release time + 10 minutes
  3. Short-term forecast returns large data → set sufficient numOfRows

Cowork architecture v2.2 — 🦞 chumjibot (2026-02-19)

🔧 Setup (공공데이터 포털 API)

  1. data.go.kr 회원가입
  2. 로그인 → 마이페이지 → 일반 인증키(Decoding) 복사
  3. API 키 저장:
    mkdir -p ~/.config/data-go-kr
    echo "YOUR_API_KEY" > ~/.config/data-go-kr/api_key
    
  4. 아래 서비스 활용신청 후 사용 (자동승인)