링크된 문서
mcp_weather
mcp_weather
mcp_weather는 Open-Meteo API를 사용하여 실시간 날씨 정보를 제공하는 Model Context Protocol(MCP) 서버입니다. 이 서버는 전 세계 도시의 현재 날씨 상태, 단기 및 장기 예보, 시간별 일기 예보 등 다양한 기상 데이터에 LLM이 접근할 수 있도록 합니다. API 키가 필요 없어 별도의 복잡한 설정 없이도 쉽게 사용할 수 있는 장점이 있습니다.
특징
- 무료 API: Open-Meteo의 무료 날씨 API를 활용하여 API 키 없이 사용 가능
- 전 세계 지원: 거의 모든 도시 및 지역에 대한 날씨 정보 제공
- 다양한 기상 데이터: 온도, 습도, 강수량, 풍속, 기압 등 포괄적인 날씨 정보
- 시간별 예보: 향후 24시간 동안의 시간별 일기 예보 제공
- 일별 예보: 향후 7일간의 일별 예보 제공
- 위치 기반 검색: 도시 이름 또는 GPS 좌표로 날씨 정보 검색
- 타임존 지원: 사용자의 위치에 맞는 현지 시간 정보 제공
- 다양한 측정 단위: 미터법 및 영국식 단위계 모두 지원
API
도구
날씨 조회
- get_weather: 특정 도시의 현재 날씨 정보 조회
- 입력: 도시 이름
-
출력: 현재 날씨 상태, 온도, 습도, 풍속 등 정보
-
get_weather_by_coordinates: 좌표 기반 날씨 정보 조회
- 입력: 위도, 경도
-
출력: 현재 날씨 상태, 온도, 습도, 풍속 등 정보
-
get_weather_by_datetime_range: 특정 기간의 날씨 정보 조회
- 입력: 도시 이름, 시작 날짜, 종료 날짜
- 출력: 지정된 기간 동안의 날씨 정보
시간 정보
- get_current_datetime: 특정 타임존의 현재 시간 조회
- 입력: 타임존 이름(선택적, 기본값: UTC)
- 출력: 지정된 타임존의 현재 시간
도시 정보
- search_city: 도시 검색
- 입력: 검색어
-
출력: 검색어와 일치하는 도시 목록
-
get_city_info: 도시 상세 정보 조회
- 입력: 도시 ID 또는 이름
- 출력: 도시의 위치, 인구, 타임존 등 정보
사용 방법
설치
# uv를 통한 실행
uvx mcp_weather
# 또는 pip을 통한 설치
pip install mcp-weather-server
# 또는 Docker 사용
docker pull weather-mcp-server
구성
Claude Desktop에서 이 서버를 사용하려면 다음과 같이 설정합니다:
{
"mcpServers": {
"weather": {
"command": "uvx",
"args": ["mcp_weather"],
"env": {}
}
}
}
Docker를 사용하는 경우:
{
"mcpServers": {
"weather": {
"command": "docker",
"args": ["run", "--rm", "-i", "weather-mcp-server"]
}
}
}
필요 조건
- Python 3.8 이상 (Python 구현의 경우)
- Node.js v14 이상 (Node.js 구현의 경우)
- 인터넷 연결 (API 요청을 위함)
사용 예시
// 도시 이름으로 현재 날씨 조회
const weatherInfo = await get_weather("서울");
console.log(`서울의 현재 온도: ${weatherInfo.temperature}°C`);
console.log(`날씨 상태: ${weatherInfo.description}`);
console.log(`습도: ${weatherInfo.humidity}%`);
console.log(`풍속: ${weatherInfo.wind_speed} km/h`);
// 좌표로 날씨 조회
const weatherByCoords = await get_weather_by_coordinates(37.5665, 126.9780);
console.log(`해당 위치의 현재 온도: ${weatherByCoords.temperature}°C`);
// 특정 기간의 날씨 조회
const weekWeather = await get_weather_by_datetime_range(
"도쿄",
"2025-05-14",
"2025-05-21"
);
console.log(`도쿄의 주간 예보:`);
weekWeather.daily.forEach(day => {
console.log(`${day.date}: ${day.temperature_max}°C (최고) / ${day.temperature_min}°C (최저)`);
});
// 특정 타임존의 현재 시간 조회
const currentTime = await get_current_datetime("Asia/Seoul");
console.log(`서울 현재 시간: ${currentTime}`);
연결된 구성 요소
- FlightRadar24 - 항공편 정보와 날씨 정보 통합
- Google Maps - 위치 기반 날씨 정보 시각화
- Phone MCP - 모바일 장치에서 날씨 알림 설정