Weather MCP Server
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Weather MCP ServerWhat's the current weather in Seoul right now?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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.gitMCP 클라이언트 설정
설정 파일 빠르게 열기
클라이언트 | macOS | Windows |
Gemini CLI |
|
|
Claude Desktop |
|
|
Antigravity |
|
|
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.jsonFinder에서 열기: 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.jsonClaude Code
claude mcp add weather-server -- weather-mcpClaude 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:00list_cities
사용 가능한 도시 목록을 반환합니다.
사용 예시
AI 어시스턴트에게 다음과 같이 요청할 수 있습니다:
"서울 날씨 알려줘"
"부산이랑 제주 날씨 비교해줘"
"오늘 대전 날씨 어때?"
삭제 방법
패키지 삭제
pip uninstall weather-mcpMCP 설정 제거
각 클라이언트의 설정 파일에서 weather-server 항목을 삭제하세요:
Claude Code:
claude mcp remove weather-serverClaude Desktop:
~/Library/Application Support/Claude/claude_desktop_config.jsonGemini CLI:
~/.gemini/settings.jsonAntigravity:
~/.antigravity/mcp.json
직접 실행 (개발/테스트용)
# 서버 실행
weather-mcp
# 또는 Python 모듈로 실행
python -m weather_mcp.server라이선스
MIT License
Available Tools
2 toolsget_weatherB
특정 도시의 현재 날씨 정보를 가져옵니다.
Args: city: 도시 이름 (서울, 부산, 인천, 대구, 대전, 광주, 울산, 제주 중 선택)
Returns: 날씨 정보 문자열
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | 서울 |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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: 사용 가능한 도시 목록
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
2 tool updates
v0.1.0- First observed
get_weather - First observed
list_cities
TDQS
Scored across 2 tools
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.
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.
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.
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
Related MCP Connectors
Real-time weather conditions and multi-day forecasts via Open-Meteo — free, no API key required
Global weather via Open-Meteo: forecast, historical, marine, air quality, geocoding, elevation.
Free, keyless real-time weather and 7-day forecasts for any city worldwide.
Who qualifies for 10,956 Korean government benefits (보조금24). Plus public data and weather.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceProvides 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 npmMIT
- FlicenseBqualityDmaintenanceConnects 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-
- AlicenseNot gradedqualityDmaintenanceProvides current weather information for any city using the Open-Meteo API. Returns temperature, humidity, wind speed, and other weather data in JSON format.7 npmMIT
- AlicenseNot gradedqualityDmaintenanceProvides 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.1MIT