# jp-drug-supply

> Is shipment of this prescription drug in Japan normal, limited or suspended per MHLW, and when did that change? Hosted MCP and HTTP: no install, works from cloud agents. English labels (our translation) next to the Japanese values as published, MHLW dates, and a source and freshness receipt on every answer. MHLW publishes only the current list; status changes recorded since 2026-10-12 (JST). Free. Relay only: not medical advice or a statement about any pharmacy's stock.

Data source: Japan Ministry of Health, Labour and Welfare (MHLW), supply status of prescription drugs (iryoyo iyakuhin kyokyu jokyo), Excel list of shipment status reported by manufacturers under Article 18-4 of the Pharmaceuticals and Medical Devices Act, https://www.mhlw.go.jp/stf/seisakunitsuite/bunya/kenkou_iryou/iryou/kouhatu-iyaku/04_00003.html . Reused under the Public Data License 1.0 that the MHLW website applies unless otherwise noted. Processed by MK Career Planning (English labels as our translation, version history); not an official service of MHLW or the Government of Japan.
Relay only. This service relays the shipment status of prescription drugs that manufacturers report to the Japan Ministry of Health, Labour and Welfare (MHLW) and that MHLW publishes as an Excel list. It is NOT medical advice, and it is NOT a statement about whether any pharmacy, hospital or wholesaler holds, can order or can deliver a product. It does not suggest other products or treatments. Each status is given as published by MHLW on the date shown. Check the official MHLW list, and ask a physician or pharmacist about any decision on medicines.
Statuses (column 12 of the MHLW list): normal shipment; limited shipment (the manufacturer's own circumstances / impact of other companies' products / other reasons); supply suspended. Values in ja are exactly as published; en labels are our translation.
Lookup statuses: found (YJ code in the list), matches (name or ingredient contains the query), candidates (similarly spelled names; not matches), not_in_current_list, no_match_in_checked_list, unknown (stale, loading or unreadable).
History starts at tracking_since. MHLW publishes only the current list; changes are this service's differences between list versions it downloaded (a few times a day). No recorded change means no change in the versions observed, nothing more.
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-drug-supply-production.mk-career-planning.workers.dev/mcp
- OpenAPI: https://jp-drug-supply-production.mk-career-planning.workers.dev/openapi.json
- x402 discovery: https://jp-drug-supply-production.mk-career-planning.workers.dev/.well-known/x402

## Quickstart

- Developer quickstart (MCP client configs, free curl/TypeScript calls, how to read the shipment status, history and unknown, attribution): https://jp-drug-supply-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.
- drug_supply_status: What shipment status has MHLW published for this prescription drug in Japan? Look up by YJ code, NHI price list code, or Japanese product or ingredient name. Returns the shipment status as published by MHLW (normal, limited shipment and its sub-category, supply suspended) with English labels as our translation, reason, outlook, manufacturer, MHLW dates and the previous status observed by this service. Relay only: not medical advice, not a statement about any pharmacy's stock.
- drug_supply_changes: Which products in the Japan MHLW supply status list changed status, or were added, removed or modified, since a date? From this service's own record of list versions (MHLW publishes only the current list). Each change has the YJ code, product, status before and after (as published, with English labels as our translation) and the versions compared. History starts at tracking_since; nothing earlier was observed. Free: last 30 days (see history_window). Relay only.
- 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-drug-supply-production.mk-career-planning.workers.dev/v1/drug-supply/status, GET https://jp-drug-supply-production.mk-career-planning.workers.dev/v1/drug-supply/changes return the same data as the MCP tools. GET https://jp-drug-supply-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

- Fresh: the MHLW page was checked successfully within stale_after_hours (36 by default). Otherwise answers are unknown.
- Keep the attribution (source and 'processed by MK Career Planning') when you pass results on.

## Privacy and support

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