Skip to main content
Glama
woongaro

KMA Weather MCP Server

by woongaro

KMA Weather MCP Server

대한민국 기상청(KMA) 단기예보 Open API를 연결하는 Model Context Protocol (MCP) 서버입니다.

Features

Resources (자원)

  • weather://seoul/now: 서울(시청)의 현재 날씨 데이터를 조회합니다.

  • weather://{latitude}/{longitude}/now: 입력한 위도/경도 위치의 현재 날씨를 조회합니다.

Tools (도구)

  • get_ultra_short_term_forecast: 향후 6시간의 초단기 예보를 조회합니다. (강수확률, 하늘상태 등)

  • get_village_forecast: 오늘부터 모레까지의 단기 예보를 조회합니다.

Related MCP server: Weather MCP Server

Configuration (설정)

1. API Key 발급

공공데이터포털에서 '기상청_단기예보 조회서비스' 활용신청을 하고 **일반 인증키(Decoding)**를 발급받으세요.

2. 환경 변수 설정

프로젝트 루트 .env 파일에 키를 저장합니다:

KMA_API_KEY_DECODED=your_decoding_key_here

3. Claude Desktop 설정 (claude_desktop_config.json)

Claude Desktop 앱에서 이 서버를 사용하려면 설정 파일을 수정해야 합니다.

경로:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

  • Windows: %APPDATA%\Claude\claude_desktop_config.json

설정 내용:

{
  "mcpServers": {
    "kma-weather": {
      "command": "uv",
      "args": [
        "run",
        "-q",
        "--with",
        "mcp[cli]",
        "--with",
        "httpx",
        "--with",
        "fastmcp",
        "--with",
        "python-dotenv",
        "/ABSOLUTE/PATH/TO/Public API to MCP Converter Agent/kma-weather-mcp/src/server.py"
      ],
      "env": {
        "KMA_API_KEY_DECODED": "YOUR_KEY_HERE (Optional if using .env file in project dir)"
      }
    }
  }
}

*주의: args의 마지막 경로는 실제 server.py가 위치한 절대 경로로 수정해야 합니다.*

Development

# Run server using default MCP Inspector
npx @modelcontextprotocol/inspector uv run src/server.py

Available Tools

2 tools
get_ultra_short_term_forecastB
Get Ultra Short Term Forecast (Next 6 hours).
useful for: checking immediate weather changes, near-future rain/snow probability.
ParametersJSON Schema
NameRequiredDescriptionDefault
latitudeYes
longitudeYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions the forecast covers 'Next 6 hours' and use cases, but does not disclose critical traits like data sources, update frequency, error handling, or authentication requirements. For a weather tool with no annotations, this leaves significant gaps in understanding its behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is appropriately sized and front-loaded, with the core purpose stated first followed by brief usage examples. Every sentence adds value without redundancy, making it efficient and easy to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's moderate complexity (weather forecasting with 2 parameters) and the presence of an output schema, the description covers basic purpose and usage but lacks details on parameters, behavioral traits, and sibling differentiation. It is minimally viable but has clear gaps in context, especially with no annotations to supplement it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 2 parameters (latitude, longitude) with 0% description coverage, and the tool description does not add any parameter semantics. It fails to explain what these coordinates represent (e.g., geographic point for forecast), their format, or constraints, leaving parameters undocumented beyond their names and types.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Get Ultra Short Term Forecast (Next 6 hours)' specifies the verb (get) and resource (forecast) with a time scope. It distinguishes from the sibling 'get_village_forecast' by focusing on ultra-short-term rather than village-level forecasts, though the distinction could be more explicit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description includes 'useful for: checking immediate weather changes, near-future rain/snow probability,' which implies usage context for immediate weather needs. However, it lacks explicit guidance on when to use this tool versus the sibling 'get_village_forecast' or any alternatives, leaving the distinction somewhat vague.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_village_forecastB
Get Village Forecast (Short Term, up to 3 days).
useful for: planning for tomorrow or the day after, checking daily highs/lows.
Note: Can be slow as it returns a lot of data.
ParametersJSON Schema
NameRequiredDescriptionDefault
latitudeYes
longitudeYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It discloses one important behavioral trait: 'Can be slow as it returns a lot of data' - this provides valuable context about performance. However, it doesn't mention other important behavioral aspects like authentication requirements, rate limits, error conditions, or what 'a lot of data' specifically means in terms of response structure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is appropriately concise with three sentences that each add value: purpose statement, usage guidelines, and performance warning. It's front-loaded with the core purpose. The structure is logical, though the 'useful for' phrasing could be more direct.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given that an output schema exists (which should document return values), the description doesn't need to explain return values. However, for a tool with 2 required parameters and no annotations, the description should provide more parameter context and additional behavioral transparency. The performance warning is helpful but insufficient for full completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 0% description coverage, so the description must compensate. It provides NO information about the parameters (latitude and longitude) - no explanation of what they represent, their format, valid ranges, or units. The description mentions the tool returns forecast data but doesn't connect this to the required location parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Get Village Forecast (Short Term, up to 3 days)' - this specifies the verb ('Get'), resource ('Village Forecast'), and temporal scope ('Short Term, up to 3 days'). It distinguishes from the sibling tool 'get_ultra_short_term_forecast' by specifying a different time horizon. However, it doesn't explicitly contrast with the sibling beyond temporal differences.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear usage context: 'useful for: planning for tomorrow or the day after, checking daily highs/lows' - this explicitly states when to use the tool. It doesn't mention when NOT to use it or explicitly name alternatives, but the temporal scope implies it's not for immediate forecasts (which the sibling tool likely covers).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 2 tool updates
    • First observedget_ultra_short_term_forecast
    • First observedget_village_forecast

TDQS

B3.3/5.0
Disambiguation5/5

The two tools have clearly distinct purposes: one provides an ultra short-term forecast for the next 6 hours, while the other offers a village forecast for up to 3 days. There is no overlap in their temporal scope or use cases, making it easy for an agent to choose the appropriate tool based on the required timeframe.

Naming Consistency5/5

Both tools follow a consistent verb_noun pattern with 'get_' prefix and descriptive names (get_ultra_short_term_forecast and get_village_forecast). The naming is predictable and readable, adhering to snake_case throughout without any deviations.

Tool Count2/5

With only 2 tools, the server feels thin for a weather forecasting domain, as it lacks coverage for common needs like current conditions, alerts, or longer-term forecasts beyond 3 days. This limited scope may hinder agents from performing comprehensive weather-related tasks.

Completeness2/5

The toolset is severely incomplete for weather forecasting, missing essential operations such as getting current weather, historical data, or severe weather alerts. While the two tools cover short-term forecasts, the absence of broader functionality creates significant gaps that could lead to agent failures in real-world scenarios.

Maintenance

ActivityInactive
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

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
    B
    quality
    D
    maintenance
    Enables real-time weather information and forecasts using the Open-Meteo API. Provides current weather conditions and forecast data for any location specified by latitude and longitude coordinates.
    1
    -
  • A
    license
    B
    quality
    D
    maintenance
    Provides real-time weather information for major South Korean cities using the Open-Meteo API. It enables users to check current temperature, humidity, and weather conditions for locations like Seoul and Busan without requiring an API key.
    2
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Provides real-time weather information for South Korea, including temperature, sky condition, precipitation type, humidity, and precipitation amount, based on latitude and longitude coordinates using public data from the Korea Meteorological Administration.
    1
    MIT

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/woongaro/KMA-WEATHER-MCP'

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