Skip to main content
Glama

japanlaw.org — Japanese law

Server Details

Japanese statutes and the Ministry of Justice's English, cited to the item, every line sourced.

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
ChatGPT
–
Claude
–

TDQS

A4.4/5.0

Scored across 9 tools

Disambiguation4/5

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.

Naming Consistency4/5

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.

Tool Count5/5

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.

Completeness5/5

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 tools
fetchRead a provision or a lawA
Read-onlyIdempotent
Inspect

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.

NameRequiredDescriptionDefault
idYesAn id from search or get_law: a law's slug, or <slug>/<address>. A japanlaw.org URL also works.
asOfNoRead 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.
langNoThe 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.
versionNoRead 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

NameRequiredDescription
idYes
urlYes
textYes
titleYes
metadataYes

TDQS

A4.3/5.0
Behavior5/5

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.

Conciseness4/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose4/5

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.

Usage Guidelines4/5

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 changedA
Read-onlyIdempotent
Inspect

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.

NameRequiredDescriptionDefault
lawYesThe law: its Japanese title (労働基準法), English title (Labor Standards Act), short name (労基法), slug (labor-standards-act) or e-Gov law ID (322AC0000000049).
langNoThe 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.
cursorNoGo on from here: the cursor an earlier answer's continued gave, with the same version.
versionNoOne 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

NameRequiredDescription
lawIdYes
lawSlugYes

TDQS

A4.7/5.0
Behavior5/5

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.

Conciseness3/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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 provisionA
Read-onlyIdempotent
Inspect

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)"}.

NameRequiredDescriptionDefault
lawYesThe law: its Japanese title (労働基準法), English title (Labor Standards Act), short name (労基法), slug (labor-standards-act) or e-Gov law ID (322AC0000000049).
langNoThe 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.
limitNoHow many to return, 1–300; default 50. total counts them all.
addressYesThe 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

NameRequiredDescription
pathYes
lawIdYes
totalYes
citingYes

TDQS

A4.1/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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 definesA
Read-onlyIdempotent
Inspect

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.

NameRequiredDescriptionDefault
lawYesThe law: its Japanese title (労働基準法), English title (Labor Standards Act), short name (労基法), slug (labor-standards-act) or e-Gov law ID (322AC0000000049).
langNoThe 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.
termNoOne word to look up: the term (労働者), its reading (ろうどうしゃ) or its English (worker).
cursorNoGo on from here: the cursor an earlier answer's continued gave, with the same law, address and term.
addressNoA 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

NameRequiredDescription
urlYes
pathYes
lawIdYes
totalYes
conceptsYes
definitionsYes

TDQS

A4.6/5.0
Behavior5/5

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.

Conciseness4/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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 lawA
Read-onlyIdempotent
Inspect

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.

NameRequiredDescriptionDefault
lawYesThe law: its Japanese title (労働基準法), English title (Labor Standards Act), short name (労基法), slug (labor-standards-act) or e-Gov law ID (322AC0000000049).
langNoThe 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.
underNoA heading's or run's path from the outline, such as ch-4 or from-art-31: list everything under it.
aspectNoOne 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.
outlineNo"headings" (default) or "articles".

Output Schema

NameRequiredDescription
urlYes
slugYes
lawIdYes
outlineYes
titleJaYes
outlineUrlYes

TDQS

A4.6/5.0
Behavior5/5

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.

Conciseness3/5

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.

Completeness5/5

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.

Parameters5/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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 provisionA
Read-onlyIdempotent
Inspect

日本の法令の条・項・号の本文を読む。引用や説明の前に確かめる(改正で文言が変わっていることがある)。 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.

NameRequiredDescriptionDefault
lawYesThe law: its Japanese title (労働基準法), English title (Labor Standards Act), short name (労基法), slug (labor-standards-act) or e-Gov law ID (322AC0000000049).
asOfNoRead 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.
langNoThe 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.
cursorNoGo on from here: the cursor an earlier answer's continued gave, with the same address. Unset starts at the address.
addressYesThe 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.
versionNoRead 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.
referencesNo"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

NameRequiredDescription
urlYes
pathYes
lawIdYes
provisionsYes
pathLabelJaYes
permanentUrlYes

TDQS

A4.6/5.0
Behavior5/5

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.

Conciseness4/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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 lawsA
Read-onlyIdempotent
Inspect

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.

NameRequiredDescriptionDefault
lawNoOne law's changes only: its Japanese title (労働基準法), English title, short name (労基法), slug or e-Gov law ID. Unset: every law's.
langNoThe 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.
limitNoChanges per answer, 1–200; default 50.
sinceNoThe first day, YYYY-MM-DD (2027-04-01). Unset: today.
topicNoOnly the changes of one topic's laws: work, immigration, tax, social-security, business, consumers, civil, housing, crime, transport or government.
untilNoThe last day, YYYY-MM-DD. Unset: every change still to come, however far off, and those whose day is not set yet.
cursorNoGo on from here: the cursor an earlier answer's continued gave, with the same since, until, law and topic.

Output Schema

NameRequiredDescription
sinceYes
todayYes
totalYes
changesYes

TDQS

A4.6/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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 heldA
Read-onlyIdempotent
Inspect

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.

NameRequiredDescriptionDefault
kindNoOnly laws of this kind: Constitution, Act (法律), CabinetOrder (政令), MinisterialOrdinance (省令), ImperialOrdinance (勅令), Rule (規則).
langNoThe 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.
queryNoOnly laws whose title, short name, slug or law number holds these words, in Japanese or English (労基法, labor, 昭和二十二年法律第四十九号).
topicNoOnly 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

NameRequiredDescription
lawsYes
totalYes

TDQS

A4.3/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 7 tool updates
    • Changedget_amendments4 fields changed
      • addedInput schema / properties / cursor
        Added value: +{
        +  "description": "Go on from here: the cursor an earlier answer's continued gave, with the same version.",
        +  "maxLength": 200,
        +  "type": "string"
        +}
      • removedInput schema / properties / from
        Removed value: -{
        -  "description": "Go on from this provision: the from an earlier answer's continued gave, with the same revision.",
        -  "maxLength": 200,
        -  "type": "string"
        -}
      • removedInput schema / properties / revision
        Removed 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"
        -}
      • addedInput schema / properties / version
        Added 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"
        +}
    • Changedget_definitions2 fields changed
      • addedInput schema / properties / cursor
        Added 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"
        +}
      • removedInput schema / properties / from
        Removed 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"
        -}
    • Changedget_law2 fields changed
      • addedInput schema / properties / aspect
        Added 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"
        +}
      • removedInput schema / properties / section
        Removed 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"
        -}
    • Changedget_provision3 fields changed
      • addedInput schema / properties / cursor
        Added 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"
        +}
      • removedInput schema / properties / from
        Removed 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"
        -}
      • addedInput schema / properties / references
        Added 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"
        +}
    • Addedlist_changes
    • Changedlist_laws3 fields changed
      • addedInput schema / properties / kind
        Added value: +{
        +  "description": "Only laws of this kind: Constitution, Act (法律), CabinetOrder (政令), MinisterialOrdinance (省令), ImperialOrdinance (勅令), Rule (規則).",
        +  "enum": [
        +    "Constitution",
        +    "Act",
        +    "CabinetOrder",
        +    "MinisterialOrdinance",
        +    "ImperialOrdinance",
        +    "Rule"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / query
        Added 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"
        +}
      • addedInput schema / properties / topic
        Added 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"
        +}
    • Changedsearch1 field changed
      • changedInput schema / properties / limit / description
        Previous value: -"Articles per page, 1–25; default 10."New value: +"Articles per page, 1–25; default 10. As many laws at most come first."
  2. 8 tool updates
    • First observedfetch
    • First observedget_amendments
    • First observedget_citing_provisions
    • First observedget_definitions
    • First observedget_law
    • First observedget_provision
    • First observedlist_laws
    • First observedsearch

Related MCP Connectors

Related MCP Servers

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources