NWS Weather

Datos del Servicio Meteorológico Nacional de EE. UU. para agentes: alertas activas por código de estado de dos letras y pronósticos de cinco períodos por latitud/longitud. El descubrimiento es gratuito; cada llamada se paga en USDC en Base a través de x402. Solo ubicaciones en EE. UU.

Servidor MCP alojado

npx add-mcp 'https://agent-evidence-api.thx93.workers.dev/weather/mcp'

Se instala en Claude Code, Codex, Cursor y más

Documentación

Un servidor MCP meteorológico simple escrito en TypeScript

CI M8ven Score

Un servidor mínimo de Model Context Protocol que expone datos meteorológicos de EE. UU. de la API del Servicio Meteorológico Nacional como dos herramientas de solo lectura.

La API del NWS es gratuita, sin clave y solo para EE. UU., por lo que este servidor no necesita credenciales ni cuenta para ejecutarse.

HerramientaEntradaDevuelve
get-alertsstate — código de dos letras, p. ej. CAAlertas meteorológicas activas para ese estado
get-forecastlatitude, longitudeLos próximos cinco períodos de pronóstico para ese punto

Ambas herramientas están anotadas como readOnlyHint: true y destructiveHint: false, por lo que un host que respete las anotaciones de herramientas puede invocarlas sin preguntar primero. Ambas se comunican con api.weather.gov y están marcadas como openWorldHint: true por esa razón.

Úsalo alojado, pago por llamada

Ejecutarlo tú mismo no cuesta nada. También hay una versión alojada, pago por llamada en USDC en Base a través de x402, para agentes que prefieran no llevar un proceso de Node y una capa de datos:

https://agent-evidence-api.thx93.workers.dev/weather/mcp

Sirve las mismas dos herramientas, con los mismos esquemas de salida y los mismos respaldos de null, además de una herramienta gratuita health y un tools/list gratuito para que el servicio pueda ser descubierto y probado antes de pagar. El descubrimiento es gratuito; una tools/call para get-alerts o get-forecast devuelve 402 con el precio. Ambas están declaradas como solo lectura, por lo que un host que respete las anotaciones no preguntará dos veces.

El server.json en este repositorio anuncia ese remoto, por lo que un cliente MCP puede instalarlo por nombre de registro en lugar de clonar nada.

Requisitos previos

  • Node.js 24+
  • npm

Compilar, probar y ejecutar

npm install
npm test          # builds, then runs the suite
npm run build     # compile only
node build/index.js

El conjunto de pruebas ejecuta el servidor real a través de InMemoryTransport con la API del NWS simulada, por lo que npm test no toca ninguna red y no necesita credenciales. Cubre el descubrimiento de herramientas y anotaciones, las rutas de datos de get-alerts y get-forecast, los respaldos para los campos que el NWS envía como null, el contrato de fallo y la validación de entrada.

Ejecutar node build/index.js habla el protocolo MCP a través de stdio: imprime en stderr y espera a un cliente en stdin, por lo que está pensado para ser lanzado por un host en lugar de a mano.

Añadirlo a un cliente

La mayoría de los hosts MCP usan la misma forma de tres líneas:

{
  "mcpServers": {
    "weather": {
      "command": "node",
      "args": ["/absolute/path/to/mcp-weather-server/build/index.js"]
    }
  }
}

O, una vez que el paquete esté publicado en npm:

{
  "mcpServers": {
    "weather": { "command": "npx", "args": ["-y", "@thx93/mcp-weather-server"] }
  }
}

O directamente desde el repositorio, sin necesidad de cuenta de registro:

npm install github:Thx93/mcp-weather-server

Esa ruta funciona porque prepare compila el servidor durante la instalación; build/ no está confirmado, por lo que sin él el bin apuntaría a un archivo que no existe. Fue verificado de extremo a extremo — instalar desde GitHub, luego hablar MCP con el resultado, y ambas herramientas se listan con esquemas de salida de objeto.

Verificado contra la fuente

Las herramientas devuelven los propios datos del Servicio Meteorológico Nacional, por lo que la corrección es comprobable en lugar de afirmada. El 2026-10-19, api.weather.gov informó una alerta activa para TX y una llamada de pago al get-alerts alojado devolvió exactamente una — Event: Flood Advisory — para el mismo estado.

Eso importa más de lo que parece: el servicio de evidencia hermano lleva una brecha de confiabilidad documentada en su veredicto (ver su docs/evidence-quality.md), mientras que estas herramientas no tienen juicio inferido que pueda fallar. Obtienen y reforman; los valores son los del NWS.

Comportamiento que vale la pena conocer

Los fallos son resultados de herramientas, no errores de protocolo. Una solicitud que el NWS no puede responder — una ubicación fuera de EE. UU., una interrupción, un tiempo de espera — regresa como { isError: true, content: [{ type: "text", text: "<what failed>" }] }. Ese es el contrato MCP para "esta llamada estaba bien formada y el trabajo falló", a diferencia de un error JSON-RPC, que significa que la llamada en sí estaba rota. Un cliente puede mostrar el texto a un usuario y reintentar.

El NWS tarda en rendirse y nosotros no. Cada solicitud lleva un tiempo de espera de 10 segundos, por lo que un upstream estancado aparece como una llamada de herramienta fallida en lugar de una colgada.

Los campos faltantes tienen respaldo en lugar de imprimir null. El NWS devuelve null para los campos que no tiene. Un nombre de evento faltante se muestra como Unknown, una temperatura faltante como Unknown — nunca la cadena literal null.

get-forecast devuelve como máximo cinco períodos. Suficiente para responder "cómo está el clima", lo suficientemente corto para una ventana de contexto.

Contenido estructurado

Ambas herramientas declaran un outputSchema y devuelven structuredContent, y ambos esquemas son objetos: get-forecast devuelve { latitude, longitude, periods }, get-alerts devuelve { alerts: [...] }.

get-alerts anteriormente declaraba un arreglo de nivel superior, que la revisión de protocolo 2026-07-28 sí permite. Se cambió porque un cliente en el SDK MCP ampliamente implementado rechaza toda la respuesta de tools/list cuando encuentra un esquema de arreglo — invalid_value: expected "object" — por lo que tal cliente no puede conectarse al servidor en absoluto. Envolver el arreglo en un objeto es lo que hace que estas herramientas sean accesibles desde clientes ordinarios; el resumen textual que lee un modelo no cambia.

Procedencia

Comenzado desde el tutorial Build an MCP server y luego fue más allá: esquemas de salida tipados, anotaciones de herramientas de solo lectura, una obtención limitada con un contrato de fallo explícito y un conjunto de pruebas. Licencia ISC.