Skip to main content
Glama

Rain Check

Un servidor MCP remoto que responde si un trabajo de servicio de campo australiano se puede realizar en un lugar y un día determinados, para un oficio dado, a partir de datos en vivo de previsión meteorológica, luz diurna y días festivos.

En vivo: https://rain-check-mu.vercel.app Punto de conexión MCP: https://rain-check-mu.vercel.app/mcp OpenAPI: https://rain-check-mu.vercel.app/openapi.json Estado: https://rain-check-mu.vercel.app/health

Conéctalo

claude mcp add --transport http rain-check https://rain-check-mu.vercel.app/mcp

Cualquier cliente MCP que hable Streamable HTTP puede usar la misma URL. Solo es POST: el servidor no tiene estado, por lo que GET y DELETE responden 405 por diseño.

Para cualquier cosa que no hable MCP, las operaciones idénticas están en /v1/<operation> y se describen en /openapi.json, que se genera a partir de las mismas constantes que usan las herramientas MCP, de modo que no pueden divergir.

Related MCP server: anz-schedule-brain

Ejecútalo localmente

npm install
npm run typecheck     # tsc, no emit
npm run smoke         # every operation against the real upstreams
npm run smoke:mcp     # every endpoint over a real node:http server
npm run smoke:live -- https://rain-check-mu.vercel.app        # the deployed server
npm run adversarial -- https://rain-check-mu.vercel.app       # tries to break it
npm run prove -- https://rain-check-mu.vercel.app             # independent evidence

No hay mocks en ninguna parte. El objetivo de estos es detectar si un proveedor aguas arriba cambia de forma, y un mock nunca lo hará.

npm run adversarial es el que encuentra cosas. Lanza rangos sin sentido, cadenas hostiles, tipos incorrectos, coordenadas extranjeras y tramas de protocolo malformadas al servidor desplegado; una negativa con un mensaje utilizable pasa, un 500 o una respuesta segura a una pregunta que no debería responder falla. Encontró tres errores reales que las suites del camino feliz habían pasado por alto.

Comprobarlo sin confiar en este repositorio

npm run prove existe porque que mis propios tests pasen demuestra muy poco a quien no los ha escrito. Se conecta con el SDK oficial del cliente MCP, luego toma cada número que el servidor informó y vuelve a obtener el mismo día directamente de Open-Meteo, comparando campo por campo, e imprime la URL del proveedor que usó para que puedas abrirla tú mismo.

Tres formas más, que no necesitan nada de aquí:

# Anthropic's own inspector, not my code
npx @modelcontextprotocol/inspector --cli https://rain-check-mu.vercel.app/mcp --transport http --method tools/list

# raw JSON-RPC, no client, no session, because it is stateless
curl -s -X POST https://rain-check-mu.vercel.app/mcp -H 'Content-Type: application/json' -H 'Accept: application/json, text/event-stream' -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'

# let your own client run its health check against it
claude mcp add --transport http rain-check https://rain-check-mu.vercel.app/mcp
claude mcp list

Y la versión que solo necesita un navegador: abre ambas y compara las fechas. rain_mm en la primera equivale a precipitation_sum en la segunda.

Desplegar

vercel deploy --prod

Cómo está organizado

src/core.ts          the six operations, with no transport in them
src/mcpServer.ts     the MCP tool surface
src/lib/             http, dates, geocoding, forecast, holidays, thresholds, verdicts
api/mcp.ts           Streamable HTTP, stateless
api/v1/[op].ts       the same operations over REST
api/openapi.ts       the OpenAPI document, generated from the same constants
api/health.ts        calls every upstream and reports real latency
public/index.html    the landing page, including the build log
scripts/             the three verification runs

Ambas puertas de entrada importan src/core.ts. Es la única forma de que el GPT personalizado y el cliente MCP se pueda confiar en que den la misma respuesta, y significa que un umbral fijado una vez queda fijado en todas partes.

Lo que no hará

  • Presentar un umbral como una autorización de seguridad. Son valores predeterminados de planificación, que se muestran en cada respuesta y se pueden anular en cada llamada.

  • Adivinar más allá de la previsión de dieciséis días. Las fechas posteriores se devuelven en out_of_range con el motivo y sin datos.

  • Permitir que los datos de días festivos de terceros se tomen como autoritativos. Son solo a nivel estatal, no incluyen días regionales ni de feria, y cada respuesta enlaza con la página oficial del gobierno estatal.

  • Rellenar un vacío con una suposición. Cuando un proveedor no está disponible, la herramienta dice cuál es y qué hacer, y le indica al modelo que no sustituya una opinión.

  • Elegir entre dos Richmond. La ambigüedad se devuelve como candidatos.

Fuentes de datos

  • Clima y geocodificación: Open-Meteo, CC BY 4.0.

  • Días festivos: Nager.Date, terceros, solo a nivel estatal.

La API de la Oficina de Meteorología no se utiliza: sus propios términos dicen "You must not use, copy or share it".

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    F
    maintenance
    One-call Australian weather plumbing for current and historical data — cited responses for practical analysis, not a data broker.
    7
    57 PyPI
    MIT
  • F
    license
    A
    quality
    B
    maintenance
    Enables scheduling of construction works against weather forecasts, using deterministic tools to check weather suitability, estimate curing times, and place dependent tasks into the earliest non-prohibited time windows.
    4
    -