Skip to main content
Glama
jkf87

Weather MCP Server

by jkf87

Weather MCP Server

한국 주요 도시의 날씨를 조회하는 MCP(Model Context Protocol) 서버입니다.

Open-Meteo API를 사용하여 무료로 날씨 정보를 제공합니다. API 키가 필요 없습니다.

지원 도시

서울, 부산, 인천, 대구, 대전, 광주, 울산, 제주

Related MCP server: KMA Weather MCP Server

설치 방법

pip install git+https://github.com/jkf87/weather-mcp.git

MCP 클라이언트 설정

설정 파일 빠르게 열기

클라이언트

macOS

Windows

Gemini CLI

~/.gemini/settings.json

%USERPROFILE%\.gemini\settings.json

Claude Desktop

~/Library/Application Support/Claude/claude_desktop_config.json

%APPDATA%\Claude\claude_desktop_config.json

Antigravity

~/.antigravity/mcp.json

%USERPROFILE%\.antigravity\mcp.json

macOS에서 빠르게 열기

# Gemini CLI
open ~/.gemini/settings.json

# Claude Desktop
open ~/Library/Application\ Support/Claude/claude_desktop_config.json

# Antigravity
open ~/.antigravity/mcp.json

# 또는 VS Code로 열기
code ~/.gemini/settings.json

Finder에서 열기: Cmd + Shift + G → 경로 붙여넣기

Windows에서 빠르게 열기

방법 1: Win + R 누르고 아래 경로를 그대로 복사해서 붙여넣기

# Gemini CLI
%USERPROFILE%\.gemini

# Claude Desktop
%APPDATA%\Claude

# Antigravity
%USERPROFILE%\.antigravity

%USERPROFILE%, %APPDATA%는 그대로 복사해서 붙여넣으세요. Windows가 자동으로 C:\Users\사용자이름\... 경로로 변환합니다.

방법 2: PowerShell/CMD에서 메모장으로 열기

notepad %USERPROFILE%\.gemini\settings.json

Claude Code

claude mcp add weather-server -- weather-mcp

Claude Desktop

~/Library/Application Support/Claude/claude_desktop_config.json (macOS) 또는 %APPDATA%\Claude\claude_desktop_config.json (Windows)에 추가:

{
  "mcpServers": {
    "weather-server": {
      "command": "weather-mcp"
    }
  }
}

Gemini CLI

~/.gemini/settings.json에 추가:

{
  "mcpServers": {
    "weather-server": {
      "command": "weather-mcp"
    }
  }
}

Antigravity

~/.antigravity/mcp.json에 추가:

{
  "mcpServers": {
    "weather-server": {
      "command": "weather-mcp"
    }
  }
}

기타 MCP 클라이언트

대부분의 MCP 클라이언트에서 다음과 같이 설정할 수 있습니다:

{
  "mcpServers": {
    "weather-server": {
      "command": "weather-mcp"
    }
  }
}

제공 도구 (Tools)

get_weather

특정 도시의 현재 날씨 정보를 조회합니다.

매개변수:

  • city (string): 도시 이름 (기본값: "서울")

예시 응답:

서울 날씨 정보
━━━━━━━━━━━━━━━━━━━━
온도: 15.2°C
습도: 65%
풍속: 12.5 km/h
날씨: 맑음
━━━━━━━━━━━━━━━━━━━━
조회 시간: 2024-11-30 14:30:00

list_cities

사용 가능한 도시 목록을 반환합니다.

사용 예시

AI 어시스턴트에게 다음과 같이 요청할 수 있습니다:

  • "서울 날씨 알려줘"

  • "부산이랑 제주 날씨 비교해줘"

  • "오늘 대전 날씨 어때?"

삭제 방법

패키지 삭제

pip uninstall weather-mcp

MCP 설정 제거

각 클라이언트의 설정 파일에서 weather-server 항목을 삭제하세요:

  • Claude Code: claude mcp remove weather-server

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

  • Gemini CLI: ~/.gemini/settings.json

  • Antigravity: ~/.antigravity/mcp.json

직접 실행 (개발/테스트용)

# 서버 실행
weather-mcp

# 또는 Python 모듈로 실행
python -m weather_mcp.server

라이선스

MIT License

Available Tools

2 tools
get_weatherB

특정 도시의 현재 날씨 정보를 가져옵니다.

Args: city: 도시 이름 (서울, 부산, 인천, 대구, 대전, 광주, 울산, 제주 중 선택)

Returns: 날씨 정보 문자열

ParametersJSON Schema
NameRequiredDescriptionDefault
cityNo서울

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?

With no annotations provided, the description carries the full burden of behavioral disclosure. It states it retrieves current weather information but doesn't mention whether this is a read-only operation, if it requires authentication, rate limits, error conditions, or what format the returned string contains. The description is minimal and lacks important behavioral context.

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 clear sections (Args, Returns). The first sentence states the purpose directly, and the parameter documentation is efficiently presented. There's minimal wasted text.

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 has an output schema (though not shown here), the description doesn't need to explain return values in detail. However, for a tool with no annotations and only basic parameter documentation, the description could provide more context about what weather information is included, potential errors, or usage limitations to be fully complete.

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

Parameters4/5

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

The description adds significant value beyond the input schema. While the schema only shows 'city' as a string parameter with a default, the description provides a specific list of valid cities (서울, 부산, 인천, 대구, 대전, 광주, 울산, 제주) and clarifies it's a selection from this set. This compensates well for the 0% schema description coverage.

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 current weather information for a specific city). It specifies the verb '가져옵니다' (get) and resource '날씨 정보' (weather information), though it doesn't explicitly differentiate from the sibling 'list_cities' tool.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus the sibling 'list_cities' tool. It doesn't mention prerequisites, alternatives, or contextual usage scenarios beyond the basic function.

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

list_citiesB

사용 가능한 도시 목록을 반환합니다.

Returns: 사용 가능한 도시 목록

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3/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 only states what the tool does (returns a list) without detailing traits like whether it's read-only, has rate limits, requires authentication, or how it handles errors. This leaves significant gaps in understanding the tool's behavior.

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

Conciseness3/5

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

The description is concise with two sentences, but it repeats the same information in Korean and English ('Returns: 사용 가능한 도시 목록'), which is redundant and wastes space. It could be more efficient by combining or eliminating the repetition while maintaining clarity.

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 simplicity (0 parameters, no annotations, but has an output schema), the description is minimally adequate. It states the purpose but lacks behavioral details and usage guidelines. The output schema likely covers return values, so the description doesn't need to explain them, but overall completeness is limited due to missing context.

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

Parameters4/5

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

The tool has 0 parameters, and the input schema has 100% description coverage (though empty). The description doesn't need to add parameter semantics, so it appropriately avoids discussing inputs. The baseline for 0 parameters is 4, as there's no need for parameter explanation.

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: '사용 가능한 도시 목록을 반환합니다' (Returns a list of available cities). It specifies the verb (returns) and resource (list of available cities), making the function unambiguous. However, it doesn't explicitly differentiate from the sibling tool 'get_weather', which likely serves a different purpose but could be related in context.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. There is no mention of the sibling tool 'get_weather', nor any context about prerequisites, timing, or exclusions. Usage is implied by the purpose but lacks explicit instructions.

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.

  1. 2 tool updatesv0.1.0
    • First observedget_weather
    • First observedlist_cities

TDQS

B3.2/5.0

Scored across 2 tools

Disambiguation5/5

The two tools have clearly distinct purposes: get_weather retrieves weather data for a specific city, while list_cities provides the list of available cities. There is no overlap or ambiguity between them.

Naming Consistency5/5

Both tools follow a consistent verb_noun pattern (get_weather, list_cities) with clear, descriptive names that align with their functions. There are no deviations in naming style.

Tool Count2/5

With only 2 tools, the server feels thin for a weather domain. It lacks essential operations like forecast retrieval, historical data, or location-based searches, which limits its utility for comprehensive weather-related tasks.

Completeness2/5

The tool set is severely incomplete for a weather server. It only supports current weather for a limited set of cities, missing forecasts, historical data, multi-city queries, and other common weather API features, leading to significant gaps in functionality.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Provides current weather information for any city worldwide using the free Open-Meteo API, enabling users to query temperature, wind speed, humidity, and weather conditions through natural language.
    10 npm
    MIT
  • F
    license
    B
    quality
    D
    maintenance
    Connects to the Korea Meteorological Administration (KMA) Open API to provide short-term and ultra-short-term weather forecasts for South Korea. It enables users to query current weather conditions and future forecasts based on latitude and longitude.
    2
    -
  • 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