japanlaw.org — Japanese law
Server Details
Japanese statutes and the Ministry of Justice's English, cited to the item, every line sourced.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- ChatGPT
- –
- Claude
- –
TDQS
Scored across 9 tools
Most tools target a distinct resource: search, list_laws, get_law, get_provision, get_definitions, get_citing_provisions, get_amendments, and list_changes form cleanly separated roles, and the descriptions explicitly cross-reference when to use which. The main soft spot is 'fetch', which can return a provision's text (overlapping get_provision) or a law overview (overlapping get_law), so an agent may hesitate between fetch and the two get_* tools.
Seven tools follow a clear verb_noun snake_case convention (get_law, get_provision, list_laws, list_changes, etc.), and the two outliers, 'fetch' and 'search', are still lowercase single-verb names in the same spirit. The set is predictable, with only minor deviation from the strict prefix pattern.
Nine read-only tools for a statutory-law reference server is well-scoped: lookup, read, search, definitions, citations, amendments, and change tracking each earn a slot with no filler. Nothing feels redundant enough to merge or thin enough to need padding.
As a read-only legal corpus, the surface is thorough: discover a law (list_laws), understand it (get_law), read text (get_provision/fetch), find text by question (search), and follow the legal graph via get_definitions, get_citing_provisions, get_amendments, and list_changes, including versioning and asOf time travel. No obvious lifecycle gap for the stated domain (write operations are not applicable here).
Available Tools
9 toolsfetchRead a provision or a lawARead-onlyIdempotentInspect
Read in full a law or provision search found, by its id. A provision's id (labor-standards-act/art-36) returns it as Markdown: the Japanese text with each paragraph's English under it, every English line marked as the Ministry of Justice's translation, the Ministry's with a slip corrected, or machine translation; its address and URLs on every line; what it cites and what cites it; and its sources. A law's id (labor-standards-act) returns the law's overview — what it is for, who it applies to, how it is enforced — the texts held, and its outline, never its whole text. A japanlaw.org URL is accepted as an id too. A provision is read in the text in force unless asOf (a day) or version names another text held: an earlier one, or one an amendment not yet in force will leave.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | An id from search or get_law: a law's slug, or <slug>/<address>. A japanlaw.org URL also works. | |
| asOf | No | Read the text as it stood on this day, YYYY-MM-DD (2027-04-01): past, today or to come. Unset reads the text in force. A day whose text japanlaw.org does not hold is refused as not held, with the texts that are; never answered with the nearest text. | |
| lang | No | The language of the pages every url opens, and of the card get_provision is drawn as: "en" (default) or "ja". The text returned always holds both languages. | |
| version | No | Read one held text by its version, as get_law's versions lists it (20270401_508AC0000000060). Unset reads the text in force. Pass asOf or version, not both. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | Yes | |
| url | Yes | |
| text | Yes | |
| title | Yes | |
| metadata | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the safe read-only/idempotent profile, and the description still adds substantive behavior: Markdown layout, per-paragraph translation provenance (MoJ translation, slip-corrected, or machine), per-line address and URLs, citation graph, and sources. It also discloses the negative behaviors that matter most — a law returns only an overview, and a date with no held text is refused rather than answered with the nearest text.
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 with the core action and the provision-vs-law split before the finer detail, and nearly every clause carries information. The sentences are long and clause-stacked, which costs some readability, but there is little dead weight.
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 4-parameter read tool with full schema coverage, annotations, and an output schema, the description supplies everything an agent needs: both id forms, what each returns, translation provenance, version selection, and the refusal case. No material gap remains.
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%, so the baseline is 3, but the description adds real meaning beyond the schema: why asOf/version exist (an earlier text, or one an amendment not yet in force will leave) and that a japanlaw.org URL is accepted as an id. It stops short of the mutual-exclusion and format details, which the schema already carries.
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 specific verb and resource ('Read in full a law or provision ... by its id') and splits the two id shapes into distinct outcomes, so an agent knows exactly what comes back. It never names the overlapping siblings get_provision and get_law, so the boundary with those tools is only implied (via 'in full' and the lang note about get_provision's card).
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?
Clear context: use it on an id 'search found', with explicit routing between a provision id (full text) and a law id (overview, 'never its whole text'), and the asOf/version fork for reading a non-current text. No explicit when-not or sibling routing against get_law/get_provision, which is the main remaining gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_amendmentsSee what amendments changedARead-onlyIdempotentInspect
What an amendment to a Japanese law changes, and when; for what changes across every law between two days, list_changes. A law's amendments whose changes japanlaw.org holds: the amending Act (titles, law number), the day it takes effect, whether it is in force, not yet in force or since replaced (state), how many provisions it changes, adds and removes, and its version — the text it leaves, which get_provision and fetch read where textHeld is true. With version — {"law": "labor-standards-act", "version": "20270401_508AC0000000060"} — every provision that amendment changes, its wording before and after in Japanese and English, and whose each English is (beforeEnglishWhose, afterEnglishWhose). A long one stops at a provision; continued.cursor, passed back as cursor with the same version, goes on. An amendment e-Gov publishes no text for is named as such (comparedAcross, textPublished false): its changes are listed with the next amendment's and cannot be told apart from them — never describe them as its own. One whose changes are not held says so; never describe its changes from memory. Link each amendment by its url.
| Name | Required | Description | Default |
|---|---|---|---|
| law | Yes | The law: its Japanese title (労働基準法), English title (Labor Standards Act), short name (労基法), slug (labor-standards-act) or e-Gov law ID (322AC0000000049). | |
| lang | No | The language of the pages every url opens, and of the card get_provision is drawn as: "en" (default) or "ja". The text returned always holds both languages. | |
| cursor | No | Go on from here: the cursor an earlier answer's continued gave, with the same version. | |
| version | No | One amendment, by the version a list gave (20270401_508AC0000000060) — the text it leaves, as get_provision and fetch take it: its changes, provision by provision. Unset lists the amendments. |
Output Schema
| Name | Required | Description |
|---|---|---|
| lawId | Yes | |
| lawSlug | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (readOnly, idempotent, closed-world), it discloses pagination behavior (continued.cursor replayed with the same version), a significant data caveat (amendments with textPublished false have their changes merged with the next amendment's and cannot be told apart), and a coverage warning that some amendments' changes are not held. These are non-obvious traits the annotations cannot express.
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?
Purpose is front-loaded, but the prose is telegraphic and clause-stacked ("its version — the text it leaves, which get_provision and fetch read where textHeld is true"), which slows parsing of an otherwise informative definition. Almost every sentence carries real content, but the em-dash nesting hurts readability.
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?
Covers the full call lifecycle for a moderately complex tool: list mode vs. single-amendment mode, pagination continuation, and two distinct data-availability failure modes. An output schema exists, yet the description still supplies the interpretive caveats an agent needs to avoid misattributing changes.
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%, so the baseline is 3; the description still adds value by spelling out what passing a version yields (per-provision before/after wording in Japanese and English, plus beforeEnglishWhose/afterEnglishWhose) and by linking cursor to continued.cursor from the same version. It does not explain the law identifier forms or the lang parameter, leaving those entirely to the schema.
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 specific resource and scope: what a single amendment to a Japanese law changes, when it takes effect, and its state. It explicitly contrasts itself with list_changes (cross-law, date-range) and with get_provision/fetch (text reading), so an agent can route without opening a schema.
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?
Names the alternative and the condition that selects it: "for what changes across every law between two days, list_changes." It also gives an explicit usage rule for the version parameter ("Unset lists the amendments") and a prohibition against answering from memory, which is exactly the routing guidance an agent needs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_citing_provisionsFind what cites a provisionARead-onlyIdempotentInspect
Find the provisions that refer to a given one — in the same law, in other laws, and in the Cabinet and Ministerial Orders (政令, 省令) that set the details it leaves to them: every provision in the laws japanlaw.org holds that cites the given one. Each with its law, designation, the words it cites with, an id for fetch and its url; link each one you name by its fromUrl. Call it with law and address, as get_provision: {"law": "labor-standards-act", "address": "Article 36(1)"}.
| Name | Required | Description | Default |
|---|---|---|---|
| law | Yes | The law: its Japanese title (労働基準法), English title (Labor Standards Act), short name (労基法), slug (labor-standards-act) or e-Gov law ID (322AC0000000049). | |
| lang | No | The language of the pages every url opens, and of the card get_provision is drawn as: "en" (default) or "ja". The text returned always holds both languages. | |
| limit | No | How many to return, 1–300; default 50. total counts them all. | |
| address | Yes | The provision, as the statute writes it (第三十六条第二項第一号), as the Ministry's English does (Article 36(2)(i)), or as japanlaw.org does (art-36/par-2/item-1). A bare number is an article: 36. Supplementary provisions and appended tables use the site's addresses, which search and get_law hand out. |
Output Schema
| Name | Required | Description |
|---|---|---|
| path | Yes | |
| lawId | Yes | |
| total | Yes | |
| citing | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and closed-world, so the safety profile is covered; the description adds genuinely new behavioral context by disclosing the coverage boundary ('in the laws japanlaw.org holds') and the per-result payload (law, designation, citing words, id, url). The instruction to link each cited provision by its fromUrl is useful output-shaping guidance. It stops short of saying what an empty result means or how limit/total interact beyond the schema, keeping it at 4.
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?
The purpose and scope are front-loaded before the invocation instructions, and no sentence is pure filler. The middle clause is dense and slightly tangled ('an id for fetch and its url; link each one you name by its fromUrl'), mixing payload description with output formatting in one breath, which costs a point.
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 and 100% parameter coverage, the definition only needs to add scope and routing, both of which it does, including the important caveat that coverage is limited to laws japanlaw.org holds. Its remaining gap is minor: no statement about what to do when nothing cites the provision, but that is largely covered by the output schema.
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 law, address, lang and limit are all already documented in structured form, including the three address notations. The description's only addition is a worked example ({"law": "labor-standards-act", "address": "Article 36(1)"}), which mildly reinforces the required pair but repeats what the schema already says.
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 names a specific verb and resource — 'Find the provisions that refer to a given one' — and then bounds the scope explicitly (same law, other laws, and the Cabinet/Ministerial Orders that set the details), plus the corpus limit 'every provision in the laws japanlaw.org holds'. That reverse-citation framing is clearly distinct from get_provision (fetch one provision) and search (find provisions), so an agent can select it without opening the schema.
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 tells the agent how to invoke it ('Call it with law and address, as get_provision') and supplies a concrete call example, which anchors the two required parameters. It does not, however, state when NOT to use it — e.g. that forward citations (what a provision cites) or plain text reading belong to get_provision/search — so the alternative routing is implied rather than spelled out.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_definitionsLook up the words a law definesARead-onlyIdempotentInspect
What a word means in a Japanese law that defines it. The words a law defines for itself (定義語): inside that law, and only as far as each definition reaches, the word means what the statute says, not what it means in everyday speech or in another law. For each, the statute's own words (statuteJa), its reading, its English and whose that is (englishWhose), a plain explanation by japanlaw.org (explanation, in lang), where it is defined (definedAt, url) and how far it reaches (scope, scopeLabel). With address — {"law": "labor-standards-act", "address": "art-36"} — the definitions that apply in that provision, because its text uses the word, and japanlaw.org's explanations of the words of Japanese law it uses (concepts: 施行, 政令, 附則…). Call it before explaining what a provision means. term narrows the answer to one word, in Japanese, its reading or its English. A law with many terms stops at one; continued.cursor, passed back as cursor with the same arguments, goes on. The text in force only.
| Name | Required | Description | Default |
|---|---|---|---|
| law | Yes | The law: its Japanese title (労働基準法), English title (Labor Standards Act), short name (労基法), slug (labor-standards-act) or e-Gov law ID (322AC0000000049). | |
| lang | No | The language of the pages every url opens, and of the card get_provision is drawn as: "en" (default) or "ja". The text returned always holds both languages. | |
| term | No | One word to look up: the term (労働者), its reading (ろうどうしゃ) or its English (worker). | |
| cursor | No | Go on from here: the cursor an earlier answer's continued gave, with the same law, address and term. | |
| address | No | A provision: the definitions that apply in it, and the legal vocabulary it uses. Unset lists every term the law defines. Written as for get_provision: 第三十六条, Article 36(2) or art-36/par-2. |
Output Schema
| Name | Required | Description |
|---|---|---|
| url | Yes | |
| path | Yes | |
| lawId | Yes | |
| total | Yes | |
| concepts | Yes | |
| definitions | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the readOnly/idempotent annotations by disclosing pagination semantics (a law with many terms stops at one; continued.cursor must be passed back with the same arguments), the currency constraint ('The text in force only'), and the fact that the response mixes statute text, japanlaw.org explanations, and related legal concepts (施行, 政令, 附則). That is substantive behavioral context an agent could not infer 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?
Purpose is front-loaded in the first sentence, followed by scope, mode selection, and pagination in a logical order. The long parenthetical enumerating return fields (statuteJa, englishWhose, definedAt, scopeLabel…) partly duplicates the existing output schema and makes the middle sentence a run-on, which is the main efficiency cost.
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 five-parameter tool with an output schema, the description covers everything an agent needs: what is returned conceptually, how address changes the result set, how term narrows it, how to continue paging, and that only in-force text is included. No material gap remains.
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%, so the schema already documents all five parameters; the description adds value by explaining why address matters ('because its text uses the word'), that term matches Japanese, reading, or English, and that cursor must be reused with identical arguments. The marginal gain is real but modest given how complete the schema is.
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 specific verb and resource: it returns the words a Japanese law defines for itself (定義語), and explicitly bounds their meaning to that law's reach rather than everyday speech or another law. The 'Call it before explaining what a provision means' line and the address/term framing make it clearly distinct from get_provision and get_law.
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?
Gives concrete when-to-use direction ('Call it before explaining what a provision means') and explains the two operating modes: unset address lists every defined term, while address returns only the definitions that apply in that provision. It does not explicitly route away from siblings such as search or get_provision beyond the address-format cross-reference, so it stops short of full alternative naming.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_lawDescribe one lawARead-onlyIdempotentInspect
What a Japanese law is for, who it applies to, and its chapters and articles. One law: titles, number, kind, when the text in force took effect, the texts held (versions: in force, not yet in force, no longer in force, each with the days it stands), how much of it has the Ministry's English, and this site's plain description of it — what it is for, who it applies to and who it does not, and on request (aspect) its exceptions and how it is enforced — each claim with the provisions it rests on (basis). Then its outline: by default the parts and chapters of the main text (編, 章); outline "articles" lists every article (for a very long law, its headings instead), and under (a heading's path, such as ch-4) lists everything under that heading. outlineUrl turns an outline path into its page.
| Name | Required | Description | Default |
|---|---|---|---|
| law | Yes | The law: its Japanese title (労働基準法), English title (Labor Standards Act), short name (労基法), slug (labor-standards-act) or e-Gov law ID (322AC0000000049). | |
| lang | No | The language of the pages every url opens, and of the card get_provision is drawn as: "en" (default) or "ja". The text returned always holds both languages. | |
| under | No | A heading's or run's path from the outline, such as ch-4 or from-art-31: list everything under it. | |
| aspect | No | One part of the description, in full: summary, applies, excludes, exceptions, enforcement or topics. Unset gives summary, applies, excludes and topics, and names the others in description.more. | |
| outline | No | "headings" (default) or "articles". |
Output Schema
| Name | Required | Description |
|---|---|---|
| url | Yes | |
| slug | Yes | |
| lawId | Yes | |
| outline | Yes | |
| titleJa | Yes | |
| outlineUrl | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the safety hints in annotations, the description clarifies specific behavioral traits: which metadata is included (translation percentage), the structure of the description (who it applies to/doesn't to), and the logic for the 'aspect' filter and outline generation.
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?
The description is extremely dense and lengthy, which lowers its score for conciseness. However, this length is necessary to convey the complexity of the output and parameter logic.
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?
The definition is highly complete for a complex data retrieval tool. It clarifies the output data structure, the functionality of the 'outline' parameter, and the exact scope of the legal descriptions returned.
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?
Although schema coverage is 100%, the description provides essential semantic context for the inputs. It explains the various allowed formats for the `law` parameter (slug, ID, English/Japanese titles) and defines the conceptual meaning of every `aspect` enum.
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 tool description specifies retrieving a comprehensive description of a Japanese law, clearly differentiating it as a deep-dive content retrieval tool, unlike list or search operations among siblings.
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?
While it doesn't explicitly state when *not* to use the tool, it provides extremely detailed context about the scope of the retrieved information (e.g., versions, enforcement claims), helping the user understand the right depth of usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_provisionRead one provisionARead-onlyIdempotentInspect
日本の法令の条・項・号の本文を読む。引用や説明の前に確かめる(改正で文言が変わっていることがある)。 Read the text of an article, paragraph or item of a Japanese law, to quote or explain it: the wording may have changed since a model learned it. One article, paragraph or item of a law, with everything under it. Call it with law and address: {"law": "labor-standards-act", "address": "art-36"}, or {"law": "労働基準法", "address": "第三十二条の三第一項"}. For each paragraph and item, the Japanese text (textJa), its English (textEn) and whose that English is (englishWhose: ministry — the Ministry of Justice's translation; corrected — the Ministry's with a slip this site corrected; machine — this site's machine translation, not official), and its url. Also the terms it defines, how many provisions it cites and how many cite it (references "lists" names them), and the official e-Gov page. A very long one — a big appended table, a 附則 of many articles — stops at a provision; continued.cursor, passed back as cursor with the same address, goes on from there. Shown to the reader as a card where the chat app can draw one. The text in force by default; asOf (a day) or version reads another text held — as it stood on a past day, or as an amendment not yet in force will leave it — and version says which text the answer is. Quoting it, link its url (the reader's page, with the English marked), not e-Gov's, and say whose English each quoted paragraph is.
| Name | Required | Description | Default |
|---|---|---|---|
| law | Yes | The law: its Japanese title (労働基準法), English title (Labor Standards Act), short name (労基法), slug (labor-standards-act) or e-Gov law ID (322AC0000000049). | |
| asOf | No | Read the text as it stood on this day, YYYY-MM-DD (2027-04-01): past, today or to come. Unset reads the text in force. A day whose text japanlaw.org does not hold is refused as not held, with the texts that are; never answered with the nearest text. | |
| lang | No | The language of the pages every url opens, and of the card get_provision is drawn as: "en" (default) or "ja". The text returned always holds both languages. | |
| cursor | No | Go on from here: the cursor an earlier answer's continued gave, with the same address. Unset starts at the address. | |
| address | Yes | The provision, as the statute writes it (第三十六条第二項第一号), as the Ministry's English does (Article 36(2)(i)), or as japanlaw.org does (art-36/par-2/item-1). A bare number is an article: 36. Supplementary provisions and appended tables use the site's addresses, which search and get_law hand out. | |
| version | No | Read one held text by its version, as get_law's versions lists it (20270401_508AC0000000060). Unset reads the text in force. Pass asOf or version, not both. | |
| references | No | "counts" (default): how many provisions this one cites and how many cite it. "lists": each of them too, with its url — the first 20 that cite it; get_citing_provisions has them all. |
Output Schema
| Name | Required | Description |
|---|---|---|
| url | Yes | |
| path | Yes | |
| lawId | Yes | |
| provisions | Yes | |
| pathLabelJa | Yes | |
| permanentUrl | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, idempotent, non-destructive), and the description layers on real behavioral detail: truncation at a provision with continued.cursor resumption, asOf refusal semantics ('never answered with the nearest text'), the englishWhose provenance taxonomy, and the citation rule to link the site url rather than e-Gov. That is context an agent could not infer from structured fields.
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?
Purpose is front-loaded and the later sentences on pagination, versioning and citation each carry distinct operational value. The Japanese and English purpose sentences say the same thing, which is pure duplication for a bilingual-capable model and the main thing keeping this from a 5.
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 seven-parameter tool with versioning, pagination and provenance subtleties, the description covers everything an agent needs to call it correctly and to use the answer responsibly. The return-value detail is arguably redundant against the output schema, but the englishWhose and citation guidance is not something the schema conveys.
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%, so a 3 is the floor, but the description adds genuine meaning: worked examples of both the slug and Japanese-address forms, the cursor round-trip ('continued.cursor, passed back as cursor with the same address'), and what references='lists' actually returns. It stops short of full coverage since asOf/version interactions are mostly restated from the schema.
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 specific verb and resource — 'Read the text of an article, paragraph or item of a Japanese law' — and immediately scopes it ('One article, paragraph or item of a law, with everything under it'), which distinguishes it from get_law (whole statute), get_definitions, and get_citing_provisions. An agent can route to it without opening the schema.
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?
Gives a concrete trigger ('to quote or explain it: the wording may have changed since a model learned it') and routes related needs to siblings ('get_citing_provisions has them all', 'search and get_law hand out' addresses). It never states an explicit when-not-to-use-this case, so it falls short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_changesSee what changes across the lawsARead-onlyIdempotentInspect
What changes in Japanese law between two days, across every law japanlaw.org holds — 来年施行される改正、4月1日に変わる法令 — or one law's, or one topic's. Each change: the day it takes effect (day: on that day; by, a day a Cabinet Order sets, that day at the latest; open, not set yet), whether it is still to come, the law, the amending Act (titles, law number), its version, and its url. With no until, every change still to come is listed, those with no day yet last; since defaults to today. A long list stops at limit; continued.cursor, passed back as cursor with the same arguments, goes on. For what one change does, provision by provision, call get_amendments with its law and version. Link each change by its url.
| Name | Required | Description | Default |
|---|---|---|---|
| law | No | One law's changes only: its Japanese title (労働基準法), English title, short name (労基法), slug or e-Gov law ID. Unset: every law's. | |
| lang | No | The language of the pages every url opens, and of the card get_provision is drawn as: "en" (default) or "ja". The text returned always holds both languages. | |
| limit | No | Changes per answer, 1–200; default 50. | |
| since | No | The first day, YYYY-MM-DD (2027-04-01). Unset: today. | |
| topic | No | Only the changes of one topic's laws: work, immigration, tax, social-security, business, consumers, civil, housing, crime, transport or government. | |
| until | No | The last day, YYYY-MM-DD. Unset: every change still to come, however far off, and those whose day is not set yet. | |
| cursor | No | Go on from here: the cursor an earlier answer's continued gave, with the same since, until, law and topic. |
Output Schema
| Name | Required | Description |
|---|---|---|
| since | Yes | |
| today | Yes | |
| total | Yes | |
| changes | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, non-open-world. The description goes beyond that by explaining the meaning of the day values (on/by/open), ordering ('those with no day yet last'), and pagination behavior. It does not discuss auth, rate limits, or error conditions, so it is not exhaustive, but it adds meaningful behavioral context.
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 with the purpose in the first sentence. Dense but mostly earns its place; the Japanese snippets add some visual bulk without much functional value to an agent, and the parenthetical about day values is a bit compact, but overall it is efficient.
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?
Given an output schema exists, the description need not explain return values, and it still covers defaults, ordering, pagination, and routing to get_amendments. An agent has everything needed to call it 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 coverage is 100%, so baseline is 3. The description adds interpretation beyond the schema: the semantic difference between 'since' and 'until' defaults, the meaning of the day statuses, and the requirement that cursor be reused with the same since/until/law/topic arguments.
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 specific verb and resource — what changes in Japanese law between two days — with scope options (every law, one law, one topic). It also explicitly names the sibling get_amendments and what it is for, so an agent can distinguish the two without opening either schema.
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?
Explicitly covers defaults ('since defaults to today'), the no-until behavior, pagination instructions ('continued.cursor, passed back as cursor with the same arguments'), and the alternative for per-provision detail ('call get_amendments'). The when-to-use vs when-not-to-use is fully specified.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_lawsList the laws heldARead-onlyIdempotentInspect
Check whether japanlaw.org holds a law, and find the name to pass as law. Every law japanlaw.org holds — or only those of one kind (法律 Act, 政令 Cabinet Order, 省令 Ministerial Order…), of one topic, or whose names hold query's words — each with its Japanese and English title, kind, law number and url; get_law has the rest. total counts the laws listed, held all the laws held, and kinds counts them by kind. A law not in the whole list is not held, whatever its kind — a 条例 (a prefecture's or city's ordinance) included — so say so rather than quoting its text from memory.
| Name | Required | Description | Default |
|---|---|---|---|
| kind | No | Only laws of this kind: Constitution, Act (法律), CabinetOrder (政令), MinisterialOrdinance (省令), ImperialOrdinance (勅令), Rule (規則). | |
| lang | No | The language of the pages every url opens, and of the card get_provision is drawn as: "en" (default) or "ja". The text returned always holds both languages. | |
| query | No | Only laws whose title, short name, slug or law number holds these words, in Japanese or English (労基法, labor, 昭和二十二年法律第四十九号). | |
| topic | No | Only the laws of one topic, as the site's laws pages group them: work, immigration, tax, social-security, business, consumers, civil, housing, crime, transport or government. |
Output Schema
| Name | Required | Description |
|---|---|---|
| laws | Yes | |
| total | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, and the description's real contribution is the exhaustiveness contract: the unfiltered list is the complete set of holdings, which is what licenses a negative answer, and total/kinds describe the counts returned. It spends some of that budget restating the per-law fields (title, kind, number, url) that the output schema already covers, and the clause "held all the laws held" is garbled enough to be ambiguous.
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?
The purpose and the "find the name to pass as law" framing are front-loaded, and much of the length is load-bearing (the negative-case rule, the get_law handoff). It loses a point because the middle sentence is a single over-stuffed clause that mixes filters, returned fields, and counts, and one phrase is malformed.
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, the description does not need to explain return values, and it still notes the counts it exposes. It covers the filtered-list workflow and the crucial 'not held' inference; the only gap is that it never states what the tool does when filters match nothing versus when the law genuinely does not exist.
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 three parameters are enums with meanings spelled out, so the description is working against a high baseline. It paraphrases the same filters (kind, topic, query words) and glosses the Japanese labels (法律 Act, 政令 Cabinet Order, 省令 Ministerial Order) but adds no constraint the schema lacks, such as how filters combine or whether they intersect.
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?
Uses a concrete verb+resource ("Every law japanlaw.org holds") and explicitly scopes the response to a summary listing (title, kind, law number, url) while naming the sibling that carries the full text ("get_law has the rest"). An agent can distinguish list_laws from get_law and search without inspecting either schema.
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?
Gives a positive use case ("Check whether japanlaw.org holds a law, and find the name to pass as law") and an explicit fallthrough to get_law, plus a when-not rule: a law absent from the full list is not held, so report that rather than reciting text from memory. The exclusion even covers the edge case of 条例 ordinances, which the kind enum cannot express.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
searchSearch Japanese lawARead-onlyIdempotentInspect
日本の法令についての質問(有給休暇、解雇予告、留学生のアルバイト、在留資格、確定申告など)に、根拠となる条文を探す。 Find what Japanese law says on a question asked in words — paid leave, notice of dismissal, a student's part-time work, 有給休暇, 解雇予告 — and the provisions to quote and link. Search the Japanese statutes japanlaw.org holds, in force today. A query with any Japanese in it searches the Japanese text (時間外労働, 有給休暇); one without searches the English shown for each provision, stemmed (overtime, paid leave). Results are the laws whose names or descriptions match — as many as limit, lawsTotal counting them all — then one result per matching article at its best-matching paragraph or item, best first; each has an id to pass to fetch (or pass its law and path to get_provision as law and address), the page's url, the Japanese and English designation (第三十六条第一項 / Article 36, paragraph (1)) and a snippet. terms lists words a law defines that match; concepts, words of Japanese law the site explains. Every word must be at least two characters. Only the laws list_laws names are searched; law searches one of them alone, its provisions and the terms it defines. When a law the reader names finds nothing, check list_laws: one not there is not held — say so rather than answering from memory.
| Name | Required | Description | Default |
|---|---|---|---|
| law | No | Search this law only: its Japanese title, English title, short name, slug or e-Gov law ID. Unset searches every law held. | |
| lang | No | The language of the pages every url opens, and of the card get_provision is drawn as: "en" (default) or "ja". The text returned always holds both languages. | |
| page | No | Which page of results, from 1. | |
| limit | No | Articles per page, 1–25; default 10. As many laws at most come first. | |
| query | Yes | Words to find, in Japanese or English. |
Output Schema
| Name | Required | Description |
|---|---|---|
| page | Yes | |
| pages | Yes | |
| total | Yes | |
| results | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds substantial behavior beyond the annotations: result ordering, lawsTotal, one result per matching article at its best-matching paragraph/item, snippet and designation fields, terms and concepts, and the fallback to list_laws. Annotations already cover read-only/idempotent safety, and the description does not contradict them.
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?
The key purpose and usage rules are front-loaded, and most sentences carry useful operational detail. It is long and includes bilingual example repetition, but the complexity of the search semantics justifies most of the length.
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?
Given five parameters, an output schema, and rich annotations, the description is complete enough for an agent to invoke it correctly. It covers query language behavior, law scoping, result structure, and the list_laws fallback.
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%, so the baseline is 3. The description still adds meaning: Japanese-containing queries search Japanese text, non-Japanese queries search stemmed English text, every word must be at least two characters, and the law parameter restricts searching to one named law.
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 specific action and resource: finding Japanese statutory provisions for natural-language questions, with concrete examples. It also distinguishes itself from sibling tools by explaining that result ids are passed to fetch or get_provision.
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 when to use this tool, how Japanese versus English queries behave, and what to do when a named law returns nothing: check list_laws and say the law is not held rather than answer from memory. It also names related tools for next steps.
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.
7 tool updates
- Changed
get_amendments4 fields changed- added
Input schema / properties / cursorAdded value: +{ + "description": "Go on from here: the cursor an earlier answer's continued gave, with the same version.", + "maxLength": 200, + "type": "string" +} - removed
Input schema / properties / fromRemoved value: -{ - "description": "Go on from this provision: the from an earlier answer's continued gave, with the same revision.", - "maxLength": 200, - "type": "string" -} - removed
Input schema / properties / revisionRemoved value: -{ - "description": "One amendment, by the revision key a list gave (20270401_508AC0000000060): its changes, provision by provision. Unset lists the amendments.", - "maxLength": 80, - "minLength": 1, - "type": "string" -} - added
Input schema / properties / versionAdded value: +{ + "description": "One amendment, by the version a list gave (20270401_508AC0000000060) — the text it leaves, as get_provision and fetch take it: its changes, provision by provision. Unset lists the amendments.", + "maxLength": 80, + "minLength": 1, + "type": "string" +}
- Changed
get_definitions2 fields changed- added
Input schema / properties / cursorAdded value: +{ + "description": "Go on from here: the cursor an earlier answer's continued gave, with the same law, address and term.", + "maxLength": 300, + "type": "string" +} - removed
Input schema / properties / fromRemoved value: -{ - "description": "Go on from this term: the from an earlier answer's continued gave, with the same law, address and term.", - "maxLength": 300, - "type": "string" -}
- Changed
get_law2 fields changed- added
Input schema / properties / aspectAdded value: +{ + "description": "One part of the description, in full: summary, applies, excludes, exceptions, enforcement or topics. Unset gives summary, applies, excludes and topics, and names the others in description.more.", + "enum": [ + "summary", + "applies", + "excludes", + "exceptions", + "enforcement", + "topics" + ], + "type": "string" +} - removed
Input schema / properties / sectionRemoved value: -{ - "description": "One section of the description, in full: summary, applies, excludes, exceptions, enforcement or topics. Unset gives summary, applies, excludes and topics, and names the others in description.more.", - "enum": [ - "summary", - "applies", - "excludes", - "exceptions", - "enforcement", - "topics" - ], - "type": "string" -}
- Changed
get_provision3 fields changed- added
Input schema / properties / cursorAdded value: +{ + "description": "Go on from here: the cursor an earlier answer's continued gave, with the same address. Unset starts at the address.", + "maxLength": 200, + "type": "string" +} - removed
Input schema / properties / fromRemoved value: -{ - "description": "Go on from this provision: the from an earlier answer's continued gave, with the same address. Unset starts at the address.", - "maxLength": 200, - "type": "string" -} - added
Input schema / properties / referencesAdded value: +{ + "description": "\"counts\" (default): how many provisions this one cites and how many cite it. \"lists\": each of them too, with its url — the first 20 that cite it; get_citing_provisions has them all.", + "enum": [ + "counts", + "lists" + ], + "type": "string" +}
- Added
list_changes - Changed
list_laws3 fields changed- added
Input schema / properties / kindAdded value: +{ + "description": "Only laws of this kind: Constitution, Act (法律), CabinetOrder (政令), MinisterialOrdinance (省令), ImperialOrdinance (勅令), Rule (規則).", + "enum": [ + "Constitution", + "Act", + "CabinetOrder", + "MinisterialOrdinance", + "ImperialOrdinance", + "Rule" + ], + "type": "string" +} - added
Input schema / properties / queryAdded value: +{ + "description": "Only laws whose title, short name, slug or law number holds these words, in Japanese or English (労基法, labor, 昭和二十二年法律第四十九号).", + "maxLength": 200, + "minLength": 1, + "type": "string" +} - added
Input schema / properties / topicAdded value: +{ + "description": "Only the laws of one topic, as the site's laws pages group them: work, immigration, tax, social-security, business, consumers, civil, housing, crime, transport or government.", + "enum": [ + "work", + "immigration", + "tax", + "social-security", + "business", + "consumers", + "civil", + "housing", + "crime", + "transport", + "government" + ], + "type": "string" +}
- Changed
search1 field changed- changed
Input schema / properties / limit / descriptionPrevious value: -"Articles per page, 1–25; default 10."New value: +"Articles per page, 1–25; default 10. As many laws at most come first."
8 tool updates
- First observed
fetch - First observed
get_amendments - First observed
get_citing_provisions - First observed
get_definitions - First observed
get_law - First observed
get_provision - First observed
list_laws - First observed
search
Related MCP Connectors
Japanese law, corporation & statistics data as MCP, normalized to English with source attribution.
Japan Law MCP — Japanese national laws & ordinances via the e-Gov Law API.
tw-law — Taiwan national statutes and the Constitution, in Chinese plus the Ministry of Justice's…
Search Japanese statutes via the e-Gov Law API. Free law_search tool.
Related MCP Servers
- AlicenseAqualityBmaintenanceSearches and retrieves Japanese national legislation from the official e-Gov API, providing verifiable citations with stable URLs and human-readable references.646 PyPIApache 2.0
- AlicenseAqualityDmaintenanceFull-text search across all ~10,000 current Japanese laws and regulations (official e-Gov data): keyword search, table of contents, and exact article text.3MIT
- AlicenseAqualityDmaintenanceSearch Japan's National Diet records (1947-present): ministerial statements, committee Q&A, and policy debates with speaker, party, and citation URLs.2MIT
- AlicenseNot gradedqualityBmaintenanceEnables AI agents to search and resolve Japanese legal provisions, inspect related laws and concepts, and traverse source-grounded relationships with explicit coverage and read-only access.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.