MCP 문서 관리

메뉴

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 - 모바일 장치에서 날씨 알림 설정