Aaron Steele

Remote MCP server, MIT licensed

Rain Check

Not "what is the weather". Can we book the Thursday slab pour in Bendigo. Live forecast, daylight and public holiday data, answered for a specific trade on a specific day.

MCP
https://rain-check-mu.vercel.app/mcp
OpenAPI
/openapi.json
Health
/health, calls every upstream
Source
github.com/Aa-ronJS/rain-check

Checked from your browser: not checked yet not checked yet

01

Connect it while you read this.

Streamable HTTP, stateless, no key. It is POST only: the server holds no session, so GET and DELETE answer 405 by design rather than opening a stream that never closes.

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

For anything that does not speak MCP, the identical operations sit at /v1/<operation> and are described by an OpenAPI document generated from the same constants the tools use, so a custom GPT Action and a Claude client cannot get different answers to the same question.

02

Six tools.

The judgement is deliberately visible. Every threshold that produced a verdict comes back with it and can be overridden per call, so nothing is hidden from the model.

01
check_workability

For a place and a set of dates, returns a GO, MARGINAL or NO GO per day for a given trade, with the rain, wind, temperature and daylight behind the call. Weather and access are reported separately, because a day can be fine to work and still fall on a public holiday.

Will not present a verdict as a safety clearance. These are planning thresholds, they are printed in every answer, and they are overridable.
02
next_work_window

For when the question is "when can we book it" rather than "what about Thursday". Returns the next run of days that suits the trade.

03
list_trade_profiles

The thresholds each trade is judged against, so you can see what you are changing before you override anything. Concreting, painting, roofing and the rest each break on different numbers.

04
find_location

Resolves an Australian place name to coordinates, a timezone and a state, which is what decides whose public holidays apply.

Will not pick between candidates. An ambiguous suburb comes back as a question with the options listed, because Richmond exists in five states and guessing produces a confident answer about the wrong site.
05
public_holidays

State holidays for a date range, returned alongside the official state page every time.

Will not claim to cover regional show days, and says so in the answer. The data is third party and covers states. Anyone about to use it for pay needs to know that before they do.
06
business_days

Counts working days between two dates for a given state, holidays excluded.

03

Two calls I made, rather than bugs I fixed.

These probably say more about how I would work on someone's client build than the bug list does.

04

What broke.

Twelve defects are logged in the repository. These are the three worth reading.

05

Check it without trusting this page.

There are no mocks anywhere in this project. npm run prove connects with the official client SDK, then re-fetches every number straight from the upstream and compares field by field, printing the URL it used. Last run: 30 of 30 values identical.

# 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"}'

Or the version that needs only a browser. Open both and compare the dates: rain_mm in the first equals precipitation_sum in the second.

06

Limits, stated plainly.