Skip to main content
Glama

Rain Check

オーストラリアのフィールドサービス業務が、指定された場所・日付・職種で実施可能かどうかを、ライブの天気予報、日照時間、祝日データから回答するリモート MCP サーバーです。

ライブ: https://rain-check-mu.vercel.app MCP エンドポイント: https://rain-check-mu.vercel.app/mcp OpenAPI: https://rain-check-mu.vercel.app/openapi.json ヘルスチェック: https://rain-check-mu.vercel.app/health

接続する

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

Streamable HTTP に対応した MCP クライアントは、同じ URL を使用できます。POST のみを受け付けます。サーバーはステートレスなので、GET と DELETE は設計上 405 を返します。

MCP に対応していないクライアント向けには、同じ操作が /v1/<operation> にあり、/openapi.json に記載されています。この OpenAPI 仕様は MCP ツールが使用するのと同じ定数から生成されるため、両者が乖離することはありません。

Related MCP server: anz-schedule-brain

ローカルで実行する

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

モックはどこにもありません。これらのテストの目的は、上流 API の仕様変更を検出することですが、モックでは決して検出できません。

問題を発見するのは npm run adversarial です。デプロイ済みサーバーに対して、無意味な範囲、悪意のある文字列、誤った型、国外の座標、不正なプロトコルフレームを送りつけます。有用なメッセージを伴う拒否は合格、500 または答えるべきでない質問への断定的な回答は不合格です。このテストは、ハッピーパススイートが見逃していた実際のバグを 3 件発見しました。

このリポジトリを信頼せずに検証する

npm run prove が存在するのは、自分自身のテストが通っても、それを書いていない人にとってはほとんど証明にならないからです。公式の MCP クライアント SDK に接続し、サーバーが報告したすべての数値を取得して、同じ日のデータを Open-Meteo から直接再取得し、フィールドごとに比較します。さらに、使用した上流 URL を出力するので、自分で開いて確認できます。

ここから何も必要としない、さらに 3 つの方法:

# 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

そして、ブラウザだけが必要な方法: 以下の 2 つを開いて、日付を比較してください。最初の rain_mm は 2 つ目の precipitation_sum と等しくなります。

デプロイ

vercel deploy --prod

構成

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

両方のフロントドアは src/core.ts をインポートします。これによってのみ、custom GPT と MCP クライアントが同じ回答を返すと信頼でき、一度設定したしきい値がどこでも同じように適用されることを意味します。

やらないこと

  • しきい値を安全クリアランスとして提示することはありません。これらは計画用のデフォルト値であり、すべての回答に表示され、呼び出しごとに上書きできます。

  • 16 日間の予報を超えて推測することはありません。それ以降の日付は、理由とともにデータなしで out_of_range として返されます。

  • 第三者の祝日データを公式なものとして通すことはありません。州レベルのみで、地域の祝日やショー・デーは含まれず、すべての応答で公式の州政府ページにリンクしています。

  • 欠落を推測で埋めることはありません。上流 API に到達できない場合、ツールはどの API か、どう対処すべきかを示し、モデルに推測で代用しないよう指示します。

  • 2 つの Richmond のどちらかを選ぶことはありません。曖昧な場合は候補として返します。

データソース

  • 天気とジオコーディング: Open-Meteo、CC BY 4.0。

  • 祝日: Nager.Date、第三者提供、州レベルのみ。

Bureau of Meteorology の API は使用していません。同局の利用規約に「使用、複製、共有してはならない」とあるためです。

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
    -