← Back to Skills Marketplace
sw326

기상청 날씨 (KMA Weather Korea)

by 김성우 · GitHub ↗ · v2.2.0
cross-platform ⚠ suspicious
525
Downloads
0
Stars
0
Active Installs
1
Versions
Install in OpenClaw
/install kma-weather-korea
Description
KMA short-term forecast API - ultra-short-term observation/forecast, short-term forecast
README (SKILL.md)

KMA Weather Forecast Skill

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

Overview

Key Value
Provider KMA (Korea Meteorological Administration)
Service ID 15084084
Auth ~/.config/data-go-kr/api_key
Endpoint https://apis.data.go.kr/1360000/VilageFcstInfoService_2.0
Playbook playbook.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

API Command Description Update Cycle
Ultra-short obs ncst Current observation Hourly
Ultra-short fcst fcst 6hr forecast Every 30min
Short-term fcst short 3-day hourly 8x/day

Key Grid Coordinates

Location nx ny
Seoul Jongno 60 127
Seoul Gangnam 61 126
Busan 98 76
Daegu 89 90
Incheon 55 124
Daejeon 67 100
Jeju 52 38

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

API Release time Queryable
Ultra-short obs Every hour +10min
Ultra-short fcst Every 30min +10min
Short-term fcst 02,05,08,11,14,17,20,23h +10min

Connectors

Placeholder Purpose Current Tool
~~weather Weather API KMA Short-term Forecast
~~air Air quality AirKorea
~~notify Notification Telegram

Intent Router

Intent Trigger Examples Strategy
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

Trigger Target Skill Integration
날씨 응답 시 항상 airkorea-air-quality PM2.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. 아래 서비스 활용신청 후 사용 (자동승인)
Usage Guidance
This skill appears to implement exactly what it claims (KMA forecasts + AirKorea), but I recommend caution because of several inconsistencies before you install or enable it: - API key handling: SKILL.md says to store your data.go.kr key at ~/.config/data-go-kr/api_key, and weather.sh reads that path, but morning_briefing.py opens /home/scott/.config/data-go-kr/api_key (hardcoded). That is likely a developer leftover — either fix the script to use the documented path or ensure the file exists where the script expects it. Do not store keys in world-readable locations; set file permissions to restrict access (chmod 600). - Undeclared runtime dependencies: The scripts call curl, jq and python3. The registry lists no required binaries. Make sure your runtime has curl, jq, and python3 available, or modify the scripts to handle missing tools. - Undocumented credential requirement: The registry metadata lists no required env vars/credentials but the scripts require an API key file. Treat the API key as sensitive and confirm it's only used to call the listed government APIs. You can prefer using an environment variable or secure secret store instead of a file to avoid accidental exposure. - Hardcoded user path: The /home/scott path is suspicious (likely a leftover). Inspect and edit morning_briefing.sh/python to read the same path as weather.sh (~/.config/data-go-kr/api_key) or to accept the key via argument/ENV. Running the skill as-is could fail or unintentionally read another user's key if that path exists. - Cross-skill assumptions: The SKILL.md expects an AirKorea skill and a notify connector. If you don't have those, the integrated features will fail. Review scripts and test them locally in a safe environment before enabling agent-autonomous invocation. If you want to proceed: review and patch morning_briefing to remove the hardcoded /home/scott path, ensure proper file permissions, declare the required binaries/credentials in metadata, and consider switching to an environment variable or explicit configuration parameter for the API key. If you want, I can produce a patched morning_briefing.sh/python snippet that uses ~/.config/data-go-kr/api_key or accepts an environment variable.
Capability Analysis
Type: OpenClaw Skill Name: kma-weather-korea Version: 2.2.0 The skill bundle is benign. It accesses an API key from `~/.config/data-go-kr/api_key` (or a hardcoded `/home/scott/...` path in one script, which is a minor bug, not malicious) and makes network requests to legitimate Korean government weather and air quality APIs (`apis.data.go.kr`). All actions, including instructions in `SKILL.md` and `playbook.md`, are aligned with its stated purpose of providing weather forecasts and air quality information. There is no evidence of data exfiltration to unauthorized endpoints, malicious execution, persistence mechanisms, prompt injection attempts, or obfuscation.
Capability Assessment
Purpose & Capability
The name/description (KMA short-term forecast + AirKorea integration) align with the included scripts (weather.sh, morning_briefing.sh, grid_convert.py). However SKILL.md and code reference cross-skill integration (airkorea/notify) that are not provided here, and the package metadata declares no required credentials or binaries even though the scripts need an API key and tools (curl, jq, python3).
Instruction Scope
Runtime instructions and scripts call only public government APIs (data.go.kr / apis.data.go.kr) and produce local output, which is expected. But the morning_briefing.py fragment opens /home/scott/.config/data-go-kr/api_key (absolute path) instead of the documented ~/.config/data-go-kr/api_key — this is a leftover hardcoded path that will attempt to read another user's file if it exists or crash. The scripts also assume jq, curl, and python3 exist even though the skill metadata lists no required binaries.
Install Mechanism
No install spec (instruction-only) — low risk from arbitrary downloads. However the skill ships executable scripts that expect runtime tools (curl, jq, python3). Those required binaries are not declared in registry metadata, creating a coherence gap (user may not have them).
Credentials
The skill relies on a data.go.kr API key stored in a filesystem path (SKILL.md instructs ~/.config/data-go-kr/api_key). The registry declares no required env vars/credentials, so the key requirement is undocumented. The hardcoded /home/scott path in morning_briefing is particularly problematic: it could cause the skill to read another user's config if present. The number and scope of credentials requested is small (one API key) and appropriate for the stated purpose, but the way the key is accessed is inconsistent and concerning.
Persistence & Privilege
always:false and no install hooks — the skill is not force-included and does not request system-wide persistence. It can be invoked autonomously by the agent (platform default), but this is not combined with other high-risk flags.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install kma-weather-korea
  3. After installation, invoke the skill by name or use /kma-weather-korea
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v2.2.0
기상청 초단기/단기예보 API — KMA open API 기반
Metadata
Slug kma-weather-korea
Version 2.2.0
License
All-time Installs 0
Active Installs 0
Total Versions 1
Frequently Asked Questions

What is 기상청 날씨 (KMA Weather Korea)?

KMA short-term forecast API - ultra-short-term observation/forecast, short-term forecast. It is an AI Agent Skill for Claude Code / OpenClaw, with 525 downloads so far.

How do I install 기상청 날씨 (KMA Weather Korea)?

Run "/install kma-weather-korea" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.

Is 기상청 날씨 (KMA Weather Korea) free?

Yes, 기상청 날씨 (KMA Weather Korea) is completely free (open-source). You can download, install and use it at no cost.

Which platforms does 기상청 날씨 (KMA Weather Korea) support?

기상청 날씨 (KMA Weather Korea) is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created 기상청 날씨 (KMA Weather Korea)?

It is built and maintained by 김성우 (@sw326); the current version is v2.2.0.

💬 Comments