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.

Servidor MCP meteorológico

Este es un servidor de Protocolo de Contexto de Modelo (MCP) que proporciona información meteorológica mediante la API del Servicio Meteorológico Nacional (NWS).

Características

  • Reciba alertas meteorológicas para un estado de EE. UU.
  • Obtener el pronóstico del tiempo para una ubicación específica (usando latitud y longitud)

Requisitos

  • Python 3.10+
  • FastMCP
  • httpx

Instalación

  1. Clonar este repositorio
  2. Configurar un entorno virtual:
    python -m venv .venv source .venv/bin/activate # On Windows, use `.venv\Scripts\activate`
  3. Instale los paquetes necesarios usando uv:
    uv add "mcp[cli]" httpx

Configuración

El servidor utiliza un archivo de configuración config.py con las siguientes configuraciones:

  • NWS_API_BASE : La URL base para la API del Servicio Meteorológico Nacional
  • USER_AGENT : La cadena de agente de usuario que se utiliza al realizar solicitudes a la API de NWS
  • LOG_LEVEL : El nivel de registro (por ejemplo, "INFO", "DEBUG")
  • LOG_FORMAT : La cadena de formato para los mensajes de registro
  • REQUEST_TIMEOUT : El tiempo de espera para las solicitudes de API en segundos

Puede modificar estas configuraciones en el archivo config.py para personalizar el comportamiento del servidor.

Uso

Ejecutar el servidor de forma independiente

Para ejecutar el servidor de forma independiente:

  1. Activar el entorno virtual si aún no está activado:
    source .venv/bin/activate # On Windows, use `.venv\Scripts\activate`
  2. Ejecutar el servidor:
    python weather.py

Uso con Cline

Se ha añadido el servidor Weather MCP a la configuración de Cline. Para usarlo en Cline:

  1. Asegúrese de que Cline esté configurado y funcionando correctamente.
  2. El servidor meteorológico MCP estará disponible como una herramienta llamada "clima".
  3. Puede utilizar las siguientes herramientas dentro de Cline:a. get_alerts(state: str) : recibe alertas meteorológicas para un estado de EE. UU. (usa un código de estado de dos letras, p. ej., "CA" para California) b. get_forecast(latitude: float, longitude: float) : obtiene el pronóstico del tiempo para una ubicación específica

Ejemplo de uso en 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)

Nota: La sintaxis exacta para llamar a las herramientas MCP puede variar según la configuración de Cline. Consulte la documentación de Cline para obtener las instrucciones de uso más actualizadas.

Manejo y registro de errores

El servidor incluye una gestión de errores mejorada para las solicitudes de API y el registro. Si se produce un error durante una solicitud, el servidor lo registrará y mostrará el mensaje correspondiente. Los registros se imprimen en la consola con el nivel y el formato configurados.

Pruebas

Pruebas unitarias

Para ejecutar las pruebas unitarias:

python -m unittest test_weather.py

Estas pruebas cubren la funcionalidad básica de las herramientas get_alerts y get_forecast .

Pruebas manuales

Para probar el servidor manualmente, puede usar el cliente MCP para llamar a las herramientas proporcionadas. Aquí hay algunos comandos de ejemplo:

# 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)

Contribuyendo

¡Agradecemos sus contribuciones! No dude en enviar una solicitud de incorporación de cambios.

Licencia

Este proyecto es de código abierto y está disponible bajo la licencia MIT .

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

Este es un servidor de Protocolo de Contexto de Modelo (MCP) que proporciona información meteorológica mediante la API del Servicio Meteorológico Nacional (NWS).

Características Obtenga alertas meteorológicas para un estado de EE. UU. Obtenga el pronóstico del tiempo para una ubicación específica (usando latitud y longitud)

  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