Japan Drug Supply Status Relay
Server Details
Is this drug's shipment normal, limited or suspended in Japan (MHLW)? Hosted, history kept.
- Status
- Healthy
- Uptime
- 100.0% over 15 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- ChatGPT
- –
- Claude
- –
TDQS
Scored across 4 tools
The two domain tools split cleanly along current-status lookup vs. delta-since-date, and catalog/get_receipt serve clearly different meta purposes. The only mild friction is a user wanting 'supply history' choosing between drug_supply_status (which also returns previous status) and drug_supply_changes, but descriptions disambiguate well enough.
Two tools share a solid drug_supply_ prefix, but the set mixes a bare noun (catalog) with a verb_noun form (get_receipt), so no single convention runs throughout. Names remain readable and guessable.
Four tools is thin, and two of them (catalog, get_receipt) are meta/plumbing rather than domain operations, leaving only two real data tools. For a narrowly scoped relay this is defensible, but it sits at the borderline of feeling under-built.
Lookup by multiple identifiers, change history with add/remove/modify, plus receipt recovery and a catalog covering pricing, limits and freshness — the core relay lifecycle is covered. Gaps are minor: no bulk/multi-drug query and no way to browse the full product list or history_window/tracking_since metadata other than through catalog.
Available Tools
4 toolscatalogCatalog: tools, prices and limitsARead-onlyInspect
List the tools of this server with prices, data sources, licensing, daily limits and data freshness.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| legal | Yes | |
| terms | Yes | URL of the terms of service. |
| tools | Yes | Every tool of this server with its price. |
| paused | Yes | Operator pause flags (true = paused). |
| server | Yes | |
| payment | Yes | |
| provenance | No | Freshness receipts for every upstream source used. |
| daily_limits | Yes | Daily limits of paid calls (calls, usd, timezone) or a misconfiguration notice. |
| fetch_status_values | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so safety is covered. The description adds the content categories returned (prices, licensing, limits, freshness), which is useful context, but an output schema exists and would surface the same structure, so the incremental disclosure is modest.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler; every clause enumerates distinct payload content, so nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no parameters, a read-only annotation, and an output schema present, the description need not explain return values or safety. It is nearly complete for this simple tool; only a hint about when to reach for it is absent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is nothing for the description to disambiguate. Baseline 4 applies under the '0 params' rule.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clear verb ("List") plus resource ("the tools of this server") and an enumeration of the payload contents (prices, data sources, licensing, daily limits, freshness). It is plainly distinguishable from siblings like get_receipt or drone_flight_check, though it does not explicitly name or contrast them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use or when-not-to-use guidance is given; usage is only implied by the discovery framing ("the tools of this server"). An agent can infer this is the entry point for learning available tools and pricing, but nothing states that intent directly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
drug_supply_changesDrug shipment status changes since a dateARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of changes, 1-200 (default 100) | |
| since | Yes | ISO 8601 date or date-time with time zone, e.g. 2026-10-01 or 2026-10-01T00:00:00Z | |
| yj_code | No | Optional filter: YJ code, e.g. 4419002B1033 | |
| change_type | No | Optional filter: status_changed, added, removed or modified (other fields only) |
Output Schema
| Name | Required | Description |
|---|---|---|
| query | Yes | |
| terms | Yes | URL of the terms of service. |
| changes | Yes | Per-product differences between list versions observed by this service, oldest first. |
| coverage | Yes | |
| truncated | Yes | |
| label_note | Yes | |
| provenance | Yes | Freshness receipts for every upstream source used. |
| answered_at | Yes | |
| attribution | Yes | |
| not_covered | Yes | |
| history_note | Yes | |
| legal_notice | Yes | |
| history_window | Yes | Free history window applied to this answer. |
| tracking_since | Yes | When this service downloaded its first list version. Nothing before it was observed. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnly/openWorld annotations, it discloses that history begins at tracking_since with nothing observed earlier, that free access covers only the last 30 days (pointing at history_window), that statuses are relayed 'as published' with the English labels being the service's own translation, and that it is relay-only. These are exactly the caveats an agent cannot get from annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the core question and is compact, but the stacked parentheticals ('as published, with English labels as our translation') and the terse 'Relay only' fragment make the back half dense. Nothing is wasted, though a touch more structure would help.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return values need not be re-explained; the description instead covers the things the schema and annotations cannot: history start bound, free-tier window, translation provenance and the relay nature. An agent has everything needed to call and interpret this correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents since, limit, yj_code and change_type with formats and enum values. The description names the returned change fields (YJ code, product, before/after status, versions compared) but adds no filter syntax or semantics beyond what the schema provides, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a precise verb and resource: which products in the Japan MHLW supply status list changed status, or were added/removed/modified, since a date. The parenthetical 'MHLW publishes only the current list' immediately distinguishes it from the sibling drug_supply_status (current-state) tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explains the context that makes this tool necessary (the publisher keeps only the current list, so historical diffs come from this service's own version record) and flags the free window of 30 days. It does not explicitly name drug_supply_status as the alternative for current-state queries, so it stops short of full when/when-not routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
drug_supply_statusDrug shipment status in Japan (MHLW list)ARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | YJ code (12 characters, e.g. 4419002B1033), NHI price list code, or a Japanese product or ingredient name, e.g. 'ロキソニン' or 'アセトアミノフェン' | |
| max_results | No | Maximum number of products to return, 1-50 (default 20) |
Output Schema
| Name | Required | Description |
|---|---|---|
| items | Yes | Products with their shipment status as published by MHLW. Not a suggestion of other products. |
| query | Yes | |
| terms | Yes | URL of the terms of service. |
| status | Yes | found = the YJ code is in the list; matches = products whose name or ingredient contains the query; candidates = similarly spelled product names (not matches); not_in_current_list = the code was in an earlier version observed here but not in the current one; no_match_in_checked_list = nothing matched in the version checked; unknown = data stale, still loading or unreadable. |
| history | Yes | |
| freshness | Yes | |
| label_note | Yes | |
| provenance | Yes | Freshness receipts for every upstream source used. |
| answered_at | Yes | |
| attribution | Yes | |
| items_total | Yes | |
| not_covered | Yes | |
| legal_notice | Yes | |
| list_version | Yes | |
| removed_item | Yes | |
| interpretation | Yes | |
| unknown_reason | Yes | |
| items_truncated | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare readOnlyHint and openWorldHint; the description adds real behavioral context beyond them: the status vocabulary (normal, limited shipment sub-categories, supply suspended), that English labels are the service's own translation, that a previously-observed status is included, and a relay-only/not-medical-advice caveat.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded as a direct question, followed by lookup keys, return contents, and a short disclaimer; roughly three compact sentences with little waste, though the return-value enumeration is somewhat list-heavy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only open-world lookup with a full input schema, complete parameter docs, and an output schema, the description covers what the agent needs: what is queried, what comes back, and the data caveats. Only the sibling differentiation (drug_supply_changes) is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and both parameters are documented there, including formats and the max_results range. The description repeats the lookup keys but adds no format or constraint detail beyond the schema, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb (look up) and resource (MHLW-published shipment status for a Japanese prescription drug) and enumerates the accepted lookup keys (YJ code, NHI price list code, product/ingredient name). It does not explicitly contrast itself with the sibling drug_supply_changes, though the mention of 'previous status observed by this service' hints at the distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description tells the agent how to query (which identifier formats are accepted) but never states when to pick this tool over drug_supply_changes or catalog, nor any exclusions. Usage is implied by the resource, not spelled out.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_receiptGet receipt of a paid callARead-onlyInspect
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 30 days after settlement.
| Name | Required | Description | Default |
|---|---|---|---|
| receipt_id | Yes | The receipt_id returned with a paid result ("rcpt_" + 64 hex characters). |
Output Schema
| Name | Required | Description |
|---|---|---|
| tool | Yes | Name of the paid tool that produced the result. |
| terms | Yes | URL of the terms of service. |
| result | Yes | The stored result, exactly as returned by the paid call. |
| payment | Yes | |
| provenance | Yes | Freshness receipts for every upstream source used. |
| receipt_id | Yes | Receipt id of the settled paid call ("rcpt_" + 64 hex). Use with get_receipt. |
| settled_at | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond readOnlyHint=true, the description discloses pricing ('Free'), error behavior for unknown/unsettled ids (RECEIPT_NOT_FOUND), and a retention window (30 days after settlement). These are substantive operational facts an agent cannot get from the annotations or schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with the purpose, followed by cost, error case, and retention. No sentence is redundant and nothing is buried.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, return values need no explanation, and the annotations cover safety. The description still covers cost, failure mode, and data lifetime, leaving no material gap for an agent calling this single-param read tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the schema already documents the 'rcpt_' + 64 hex format, so the baseline is 3. The description adds semantic constraint by implying the id must belong to a settled paid call, which goes slightly beyond the schema's format-only documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb+resource: 'Re-fetch the stored result of a settled paid call by its receipt_id.' This is unambiguous and an agent can immediately tell what the tool returns and what it operates on, even though the sibling tools are unrelated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It states the triggering condition clearly ('for when the response was lost after payment'), which is exactly the scenario that should select this tool. It also implicitly scopes usage to settled calls via the RECEIPT_NOT_FOUND note, though it names no alternative tools for other recovery paths.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
4 tool updates
- First observed
catalog - First observed
drug_supply_changes - First observed
drug_supply_status - First observed
get_receipt
Related MCP Connectors
Is a food, country or company in Japan MHLW imported food inspection orders? Rows as published.
Is this name on Japan's MOF asset-freeze list? Hosted, list-change history kept. Reference only.
Japanese public records on 1-10 companies per call: FSA, MOF, EDINET, ISA, gBizINFO. Evidence only.
Health Canada Drug Product Database (fleet #522).
Related MCP Servers
- AlicenseAqualityBmaintenanceEnables AI assistants to search Türkiye's TİTCK-licensed human drug lists, find generic equivalents, and check licence and e-prescription status, including weekly changes.61MIT
- AlicenseNot gradedqualityAmaintenanceEnables AI assistants to look up French medicine shortages and supply tensions from ANSM and public BDPM data — searching a medicine's shortage status, history and expected return, listing current shortages with filters, tracking recent changes, and checking major-therapeutic-interest (MITM) status. Every result carries its sources, update dates, coverage caveats and a disclaimer.MIT
- FlicenseNot gradedqualityCmaintenanceQuery the official Spanish medicines database (AEMPS CIMA) for authorized medicines, their details, and real-time supply shortage alerts without requiring an API key.-
- AlicenseAqualityBmaintenanceAnswers medication questions from official FDA labels with section citations, resolves drug names via RxNorm, and reports FDA recalls and shortages.41MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.