Weather-MCP-Server

by JackKuo666
Verified

Integrations

  • Provides weather information tools using the National Weather Service (NWS) API, enabling retrieval of weather alerts for US states and forecasts for specific locations by latitude/longitude coordinates.

날씨 MCP 서버

이는 국가 기상청(NWS) API를 사용하여 날씨 정보를 제공하는 모델 컨텍스트 프로토콜(MCP) 서버입니다.

특징

  • 미국 주의 날씨 알림을 받으세요
  • 위도와 경도를 사용하여 특정 위치의 날씨 예보를 받으세요

요구 사항

  • 파이썬 3.10+
  • 패스트MCP
  • httpx

설치

  1. 이 저장소를 복제하세요
  2. 가상 환경 설정:지엑스피1
  3. uv를 사용하여 필요한 패키지를 설치하세요:
    uv add "mcp[cli]" httpx

구성

서버는 다음 설정을 포함하는 config.py 구성 파일을 사용합니다.

  • NWS_API_BASE : National Weather Service API의 기본 URL
  • USER_AGENT : NWS API에 대한 요청을 할 때 사용되는 사용자 에이전트 문자열
  • LOG_LEVEL : 로깅 수준(예: "INFO", "DEBUG")
  • LOG_FORMAT : 로그 메시지의 형식 문자열
  • REQUEST_TIMEOUT : API 요청에 대한 시간 초과(초)

config.py 파일에서 이러한 설정을 수정하여 서버 동작을 사용자 지정할 수 있습니다.

용법

서버를 독립 실행형으로 실행

서버를 독립 실행형으로 실행하려면:

  1. 가상 환경이 아직 활성화되지 않았다면 활성화하세요.
    source .venv/bin/activate # On Windows, use `.venv\Scripts\activate`
  2. 서버를 실행합니다:
    python weather.py

Cline과 함께 사용

Cline 구성에 Weather MCP 서버가 추가되었습니다. Cline에서 사용하려면 다음 단계를 따르세요.

  1. Cline이 올바르게 설정되고 실행되는지 확인하세요.
  2. 날씨 MCP 서버는 "날씨"라는 이름의 도구로 제공될 예정입니다.
  3. Cline에서는 다음 도구를 사용할 수 있습니다.a. get_alerts(state: str) : 미국 주의 날씨 알림을 받습니다(캘리포니아의 경우 "CA"와 같이 두 글자 주 코드를 사용하세요) b. get_forecast(latitude: float, longitude: float) : 특정 위치의 날씨 예보를 받습니다.

Cline에서의 사용 예:

# Get alerts for California result = await mcp.call_tool("weather.get_alerts", state="CA") print(result) # Get forecast for San Francisco (approximate coordinates) result = await mcp.call_tool("weather.get_forecast", latitude=37.7749, longitude=-122.4194) print(result)

참고: MCP 도구를 호출하는 정확한 구문은 Cline 설정에 따라 다를 수 있습니다. 최신 사용 지침은 Cline 설명서를 참조하세요.

오류 처리 및 로깅

서버에는 API 요청 및 로깅에 대한 오류 처리 기능이 개선되었습니다. 요청 중 오류가 발생하면 서버는 오류를 기록하고 적절한 오류 메시지를 반환합니다. 로그는 구성된 로그 수준 및 형식으로 콘솔에 출력됩니다.

테스트

단위 테스트

단위 테스트를 실행하려면:

python -m unittest test_weather.py

이러한 테스트는 get_alertsget_forecast 도구의 기본 기능을 다룹니다.

수동 테스트

서버를 수동으로 테스트하려면 MCP 클라이언트를 사용하여 제공된 도구를 호출할 수 있습니다. 다음은 몇 가지 명령 예시입니다.

# Get alerts for California result = await mcp.call_tool("get_alerts", state="CA") print(result) # Get forecast for San Francisco (approximate coordinates) result = await mcp.call_tool("get_forecast", latitude=37.7749, longitude=-122.4194) print(result)

기여하다

기여를 환영합니다! 풀 리퀘스트를 제출해 주세요.

특허

이 프로젝트는 오픈 소스이며 MIT 라이선스 에 따라 제공됩니다.

-
security - not tested
F
license - not found
-
quality - not tested

이는 국가 기상청(NWS) API를 사용하여 날씨 정보를 제공하는 모델 컨텍스트 프로토콜(MCP) 서버입니다.

기능 미국 주의 날씨 알림 받기 특정 위치의 날씨 예보 받기(위도 및 경도 사용)

  1. Features
    1. Requirements
      1. Installation
        1. Configuration
          1. Usage
            1. Running the server standalone
            2. Using with Cline
          2. Error Handling and Logging
            1. Testing
              1. Unit Tests
              2. Manual Testing
            2. Contributing
              1. License
                ID: 2pv185kyms