# jp-forecast-archive

> What exactly did the Japan Meteorological Agency (JMA) forecast for a Japanese prefecture, as issued at a past time? JMA does not publish its past forecasts; this service records every prefectural forecast bulletin JMA issues (05:00, 11:00, 17:00 Japan time and unscheduled updates) and returns it as published: weather text, wind, waves, 6-hour precipitation probability and station temperatures, with JMA's issue time kept apart from our fetch time and a SHA-256 of the bulletin. Hosted MCP and HTTP, free. An archive, not a forecast service: for current forecasts, check JMA.

Data source: Japan Meteorological Agency (JMA) disaster prevention XML, prefectural weather forecast bulletins (府県天気予報（Ｒ１）, VPFD51), read from JMA's regular feed about every 30 minutes and stored once per bulletin. Source: Japan Meteorological Agency; processed by MK Career Planning (read from the bulletins, restructured into fields, issuances recorded). Used under the JMA website terms of use (compatible with Public Data License 1.0): https://www.jma.go.jp/jma/kishou/info/coment.html . English area names are JMA's own. Not an official service of JMA or of the Government of Japan.
Archive of the prefectural weather forecasts issued by the Japan Meteorological Agency (JMA), relayed as published (restructured into fields, Japanese text unchanged) with JMA's issue time. This service does not make forecasts of its own: no interpolation to points, no blending, no adjustment and nothing derived from past issuances (Weather Service Act, Article 17). Not an official service of JMA or of the Government of Japan.
Statuses (forecast_as_issued): found, not_archived (before this archive's first issuance for the office; JMA does not publish past forecasts), unknown (JMA's feed was not read for part of the period, or the bulletin could not be read), no_issuance_at_that_time.
report_datetime is JMA's issue time; fetched_at is when this service retrieved the bulletin. issuance_type: scheduled (05:00, 11:00, 17:00 Japan time), unscheduled (another time), correction, cancellation.
Free history window: change history recorded by this service is served for the last 30 days. A since earlier than that returns the last 30 days with history_window.clamped true (requested_since, served_since); older history can be requested as a paid product (not yet offered). tracking_since still shows when recording started.

## Connect

- MCP (streamable HTTP): https://jp-forecast-archive-production.mk-career-planning.workers.dev/mcp
- OpenAPI: https://jp-forecast-archive-production.mk-career-planning.workers.dev/openapi.json
- x402 discovery: https://jp-forecast-archive-production.mk-career-planning.workers.dev/.well-known/x402

## Quickstart

- Developer quickstart (MCP client configs, free curl/TypeScript calls, how to read official_check, status and the three clocks, attribution): https://jp-forecast-archive-production.mk-career-planning.workers.dev/quickstart

## Free tools

- catalog: List the tools of this server with prices, data sources, licensing, daily limits and data freshness.
- forecast_as_issued: Archived JMA prefectural weather forecast as issued. Give an area and at (forecast in effect then) or issued_at (exact JMA issue time). Returns JMA's bulletin as published (Japanese weather text, wind, waves, 6-hour rain probability, temperatures) with report_datetime (JMA's issue time) apart from fetched_at (ours). Status found, not_archived (before this archive started), unknown or no_issuance_at_that_time. Not the current forecast: check JMA.
- forecast_issuances: Which prefectural weather forecasts did JMA issue for an area between two times? Lists each archived issuance (JMA issue time, transmission time, our fetch time, scheduled/unscheduled/correction/cancellation, bulletin URL and SHA-256) with coverage gaps where JMA's feed could not be read. Free window: last 30 days (an earlier since is clamped; see history_window). Use forecast_as_issued for the content. An archive, not a forecast service.
- get_receipt: Re-fetch the stored result of a settled paid call by its receipt_id, for when the response was lost after payment. Free. Unknown or unsettled receipt ids return RECEIPT_NOT_FOUND. Results are kept for 90 days after settlement.
- HTTP: GET https://jp-forecast-archive-production.mk-career-planning.workers.dev/v1/forecasts/as-issued, GET https://jp-forecast-archive-production.mk-career-planning.workers.dev/v1/forecasts/issuances return the same data as the MCP tools. GET https://jp-forecast-archive-production.mk-career-planning.workers.dev/v1/receipts/<receipt_id> is get_receipt.

## Payments

This server offers free tools only. It does not request or accept x402 payments.

## Rate limits

- Free calls (free HTTP endpoints under /v1/ and free MCP tools) are limited to 300 requests per 60 seconds per client (a client is keyed by a one-way hash of its IP address and the first 64 characters of its User-Agent; neither is stored. The User-Agent can be set by anyone, so this split is for fairness between clients behind a shared gateway, not a security control). Over the limit, HTTP returns 429 RATE_LIMITED with a Retry-After header and MCP tools return the error RATE_LIMITED. Paid calls are not rate limited.

## Provenance and fetch_status

Responses carry provenance[] (source, upstream_updated_at, retrieved_at, content_sha256, parser_version, fetch_status). fetch_status values:

- found: The upstream document was retrieved and contains the data used for this answer.
- empty: The upstream was retrieved, but it has no item for this query (for example JMA had no bulletin for that area in its feeds, or the municipality is not in the list). The state is unknown: empty does NOT mean 'none in effect'.
- stale: The data was retrieved but is older than the freshness threshold for its kind; treat it with care.
- unavailable: The upstream could not be retrieved, read or used (network error, withdrawn bulletin, paused source, or data not yet loaded).
- unsupported: The query is outside what this source covers (for example a date JMA does not issue warnings for yet, or a period before the source's records).

## Errors

- RECEIPT_NOT_FOUND (get_receipt)
- RATE_LIMITED (free calls over the per-client limit; HTTP 429 with Retry-After; not charged)

## Terms

- Archive only: answers are past JMA issuances, not the current forecast. For current forecasts and warnings, check JMA (https://www.jma.go.jp/bosai/forecast/).
- Keep the attribution (Source: Japan Meteorological Agency; processed by MK Career Planning) when you pass results on.

## Privacy and support

- Operator: MK Career Planning
- Terms of Service: https://jp-forecast-archive-production.mk-career-planning.workers.dev/terms
- Privacy policy: https://jp-forecast-archive-production.mk-career-planning.workers.dev/privacy
- Support (free): https://jp-forecast-archive-production.mk-career-planning.workers.dev/support (mk.career.planning@gmail.com)
