jp-law-mcp
An MCP server for Japanese laws and parliamentary records that helps AI retrieve, compare, and verify legal citations and amendment impacts.
Find laws by name or abbreviation and get law IDs, official names, types, and current/repealed status.
Read statutory articles, optionally as of a specified date since 2017-04-01, with warnings about scheduled amendments.
List a law’s amendment history and compare the same article between two dates.
Full-text search law text with AND keywords and identify which article contains matching text.
Verify citations in drafted text: check whether laws, articles, paragraphs, and items exist; flag name/law-number mismatches, fictitious laws, and repealed laws; provide excerpts for matching.
Verify NTA basic tax notice numbers for five notice series; other notices, precedents, and local ordinances are identified but marked unverified.
Reverse-lookup which provisions cite or delegate to a given article/law, including indirect impact at depth 2.
Look up provisions a given article cites or delegates to.
Search Diet records by keyword, speaker, meeting, house, and date range, returning excerpts and links.
Limits: it checks citation existence and some numeric consistency, but does not judge whether legal claims are substantively correct.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@jp-law-mcp行政手続法第8条は2018年4月1日時点と現在で違いがある?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
jp-law-mcp
日本の行政実務者が Claude などの AI から使える、法令と国会会議録の MCP サーバーです。 条文の取得(時点指定)、改正履歴・新旧比較、本文検索、AI が書いた文書の法令引用の実在確認、引用・委任の逆引き、国会会議録の発言検索ができます。 確かめるのは国の法令(法律・政令・府省令など)の条・項・号と、国税庁の基本通達(所得税・法人税・消費税法・相続税法・財産評価)の番号の実在です。それ以外の通達・判例・条例の引用は、見つけて「確かめていない」と示します。 引用グラフ・法令名・条文の形のデータは JLaw-CiteGraph(jlawcite) から作っています。
使い方
試験公開中の接続先(Streamable HTTP、インストール不要):
https://jp-law-mcp.vercel.app/mcpClaude(claude.ai・デスクトップ): 設定 → コネクタ → カスタムコネクタを追加 で上の URL を入れる
Claude Code:
claude mcp add --transport http jp-law https://jp-law-mcp.vercel.app/mcp自分の PC で動かす(stdio、Node.js 20 以降):
npx -y jp-law-mcpClaude Code:
claude mcp add jp-law -- npx -y jp-law-mcpClaude デスクトップなど(設定ファイル):
{"mcpServers": {"jp-law": {"command": "npx", "args": ["-y", "jp-law-mcp"]}}}Claude デスクトップの拡張: Releases の
jp-law-mcp-<版>.mcpbを開く(macOS・Windows 版の Claude デスクトップは Node.js を内蔵しているので、別に入れなくてよい)外部 API へは自分の回線から問い合わせるので、試験公開の接続先の回数制限を受けません。たくさん使う場合はこちらを勧めます
試験公開の接続先は、外部 API への負担を抑えるため、ツールの呼び出しを利用者ごとに毎分 60 件までにしています(接続の手続きは数えません)。利用者は送信元 IP で分けます。
組織のプロキシや AI サービスの中継のように多くの人が同じ送信元になる場合は、接続 URL に ?u= と任意の文字列
(英数字・_・-、64 字まで。例 https://jp-law-mcp.vercel.app/mcp?u=tanaka-01)を付けると、その文字列ごとに数えます
(同じ送信元の合計は毎分 600 件まで)。認証ではないので、他人に知られても困らない文字列にしてください。
例
行政手続法第8条(理由の提示)は 2018 年 4 月 1 日時点と現在で違いがあるか。この条を引用している法令と、関連する国会での発言も教えて
AI が compare_article・find_citing_provisions・search_diet_records を使い、原文リンク付きで答えます。
部下の通知文案「本件申請は、行政手続法第8条第3項及び地方税法第999条の規定に基づき不許可とします」の法令引用を確認して
verify_citations が、第8条は第2項までであること、地方税法に第999条がないことを知らせます。
よく使う手順(プロンプト)
クライアントのプロンプト一覧(Claude なら「+」や「/」のメニュー)から選べます。
プロンプト | 内容 |
| 通知文・答弁案・AI の回答などの法令引用を確かめ、直すべき箇所と直し方を一覧にする |
| 処分・申請の日に施行されていた条文(行為時法)と、その後の改正を確かめる |
| ある条を改正するとき、引用・準用している他の法令の条を洗い出す |
接続した AI には、法令を挙げて答えるときは答えを返す前に verify_citations で確かめ、条文の中身は get_article で原文を読んでから書くよう、サーバーから伝えています。
Related MCP server: Houki e-Gov MCP Server
ツール
ツール | 内容 | データ源 |
| 法令名・略称から法令ID・種別・現行/廃止を調べる。旧題名・施行予定の改正後の題名なら、いまの法令を示す | |
| 条文を読む。 | 同上 |
| 改正履歴(施行日・改正法令・現行/過去/未施行) | 同上 |
| 同じ条の二つの時点の新旧比較 | 同上 |
| 本文の全文検索(空白区切り AND)。上位 3 法令はその文が第何条かも示す | e-Gov 法令API v2 |
| 文章中の法令引用を取り出し、法令・条・項・号の実在を確認。存在しない条・項、法令番号と名称の食い違い、架空の法令名、廃止法令を知らせ、照合用の抜粋を付ける(評価)。 |
|
| 逆引き: この条(または法令全体)を引用・委任元として参照している条文を法令ごとに。 |
|
| この条が引用している条・委任先の政令省令 | 同上 |
| 国会会議録の発言検索(立法趣旨・政府答弁の確認) |
未対応: 附則・別表の中身の確認、基本通達以外の通達・判例・条例の実在確認(引用は見つけて「確かめていない」と示す)、法令の意味検索。
引用確認のしくみ(verify_citations)
文章から「第N条」を探し、直前の法令名を辞書(
data/law_names.json.gz: 正式名 8,981・略称 3,165・別称 177・旧題名 749・法令番号 8,627・施行予定の改正で変わる題名 14)で決める。旧題名や改正後の題名で書いた引用もいまの法令として確かめ、そのことを注記する。題名が変わる予定の法令には、変わる日と新しい題名を添える。辞書の名前の直前に漢字が続く場合(「地方行政手続法」)は辞書の名前に読み替えず「該当なし」とする「所得税法第33条、第34条」「民法第901条第1項ただし書、第900条」のような並びは直前の引用の法令を引き継ぐ(直前の法令が分からなければ分からないことも引き継ぐ)。「同法施行令」「同施行令」「措置法施行規則」は前に出た(または頭に書いた略称の)法律の施行令・施行規則とする。法令名のない「第N条」は、同じ段落で直前に名前を書いた法令の条と推定し、その旨を示す。推定した法令にその条・項・号がなく、この文章で名前が出た他の法令(とその施行令・施行規則)のうちそれがあるものが一つだけなら、そちらとみなす(推定なので、条がなくても「存在しない」とは言い切らず ⚠ にする)。国税庁の資料などで使う略称(措法・措令・所法・所令・法法・消法・相法・通法・徴法 など)も読む。文章の中の略称の定め(「以下「法」という。」)、「同法」「同令」、「旧」「改正前の」(現行版では確かめない)、附則(確かめない)も読む
条・項・号の有無を
data/structure.json.gz(e-Gov スナップショット 2026-10-20 の 8,981 法令・243,501 条の形、0.9MB)で判定するe-Gov API には 1 回の確認で最大 10 件だけ問い合わせる。スナップショットで「ない」と出たものを先に現行版で確かめ直し(スナップショット後の改正)、残りで「ある」ものの抜粋を取る。API が答えればそちらを優先し、答えなければスナップショットの判定を日付付きで返す
国税庁の基本通達 5 種の番号(「所得税基本通達33-1の2」「法基通9-2-3」など)は、国税庁ホームページの通達から作った一覧(
data/tsutatsu.json.gz、2026-10-22 時点)で確かめる。質疑応答事例の関係法令欄で国税庁が引用した基本通達の番号 314 件のうち 314 件(100%)が一覧にあり、番号を一覧にないものに変えると 310 件すべてを「見つからない」とする(eval/notice_eval.mjs)。通達はめったに変わらないので一覧は手で時々作り直す(scripts/export_tsutatsu.py)それ以外の通達・判例・条例・告示の引用(「措置法通達31の4-1」「最判平成5年3月11日」「東京都迷惑防止条例」など)は確かめず、「確かめていない引用」として数と一覧を返す(黙って飛ばすと、全部確かめたと読まれるため)
detail=trueのときは、引用を含む文で要件として書いた数値(「5,000万円を超える」「5年以内」「6か月」「5%相当額」)を、同じ文で引用した条の本文の数値(「三千万円」「五年」「六月」「百分の五」)と比べ、同じ種類の数値が条文にあるのに値が違えば「数値の確認(参考)」を付ける。質疑応答事例の回答(国税庁の文章)で要件の数値を含む 54 文のうち注意が付いたのは 6 文で、そのうち 2 文は回答の後の改正で条文の金額が変わったもの(措法第67条の5 の 30万円→40万円、第27条の 55万円→65万円)、残りは別の条・別表の数値や計算した値。条文にある数値を書き換えた文では 85.4%(41/48)に注意が付く(eval/quantity_eval.mjs、2026-10-21)
確かめるのは国の法令の条・項・号と基本通達の番号の実在、それと(detail のとき)要件の数値の食い違いの目安までで、引用した主張が条文に合っているかは判断しません。
引用確認の評価
国税庁「質疑応答事例」の関係法令欄と、それを条に結び付けた正解(jlawcite の eval/v2/nta_gold.jsonl。このツールとは別のコードで作成)で測りました。事例を id のハッシュで dev 591 件・test 595 件に分け、dev だけを見て直し、test は設定を決めたあと初めて実行しました(2026-10-20)。その後は同梱データを新しいスナップショットに替えるたびに、設定を変えずに dev・test を自動で測り直しています(test の結果は直すことには使いません)。引用の読み方を直したとき(2026-10-21、「同法施行令」など)も test を一度だけ測り直しました。下の数値は e-Gov 2026-10-20 スナップショットでの測定(2026-10-22)です。e-Gov API は呼ばず、同梱スナップショットでの判定を測っています。数値は eval/results/。
dev | test | |
正解の条を取り出せた割合 | 100%(1,263/1,263) | 100%(1,261/1,261) |
正しい引用に警告を出した割合 | 0.12%(1/844) | 0.68%(6/881) |
入れた誤り(存在しない条・項、架空の法令名、法令番号の食い違い)を見つけた割合 | 100%(1,464/1,464) | 100%(1,471/1,471) |
2026-10-20・21 の測定(e-Gov 2026-09-27・2026-10-19 スナップショット)で test が警告した 6 件は、すべて租税特別措置法施行令・同施行規則の項・号でした。該当ページは「令和7年8月1日現在の法令・通達等に基づいて作成」で、スナップショットとのあいだの改正で項番号がずれたものと見ています(推定)。いまの内訳は eval/results/verify_test.json の false_alarm_by_code。古い資料の引用は asof で当時の版を指定して確かめてください。
AI が書いた答えでの確認: 上の質疑応答事例 50 問に AI(Claude Sonnet、このサーバーあり・なし)が書いた答え 100 件を使いました。問の id のハッシュで半分に分け、片方だけを見て直し(「同法施行令」の読み・同じ段落の法令の推定など)、もう片方で一度だけ測りました(2026-10-21)。引用 276 件のうち 257 件(93.1%)を実在の判定に回せました(直す前は 85.8%)。法令名が決まらず判定しなかったものは 16 件です。存在しないと出た 3 件は、改正前の号番号(法人税法第141条第4号)と、「同法」が文の上では別の法令を指してしまう書き方でした。推定した法令の条は、確認用の半分で手で見て 1 割弱が別の法令の条でした(推定の印を付けて返します。その後、条がある法令を選ぶよう直しました)。このサーバーを付けて答えさせた 150 件で、現行法にない条・項・号を挙げたものは「同法」「同条」が文の上では別の法令を指してしまう書き方だけで、ツールなしの 50 件では改正前の号番号が 1 件ありました(eval/results/answer_eval.json)。数値は eval/results/gate_holdout.json(eval/gate_eval.mjs)。
限界: 税務の資料だけで測っています。関係法令欄は整った書き方で、文の中に混ざった引用では法令名なし(ℹ)が増えます(回答本文で 12.5%)。誤りを入れる試験は条・項の有無をスナップショットで作っているので、確かめているのは「誤った引用を正しい法令・条に結び付けて判定に回せるか」です。
引用グラフ(data/graph.json.gz)
scripts/export_graph.pyが jlawcite 2.5.0 の検索DBから作る。e-Gov スナップショット 2026-10-20、本則の条から出る引用・委任 527,278 組(条→条)と 26,238 組(条→法令)、198,330 条、gzip 2.6MB附則から出る参照と同じ条の中の参照は入れていない
get_articleは現行の法律の条を返すとき、その条を引用している施行令・施行規則の条をこのグラフから添える(委任先の条を記憶で書かずに選べるように)。質疑応答事例の正解で、施行令・施行規則の条とその親の法律の条がともに正解にある 543 件のうち、親の条を読んだときの一覧に正解の条が出るのは 455 件(83.8%)(eval/subordinate_eval.mjs)「行政手続法第二章(申請に対する処分)(第八条(理由の提示)を除く。)」のような、他の法令の章・節・款のあとの括弧の中の条は、その法令の条として扱う(jlawcite 2.5.0 の抽出修正で直ったもの。それまでは引用元の法令自身の第八条に結び付いていた。2026-09-27 スナップショットで 962 組を追加・387 組を削除、無作為 20 件を本文と照合して全件正しい)
読み込みは最初に使ったときだけ(約 0.2 秒、ヒープ約 51MB)
データ源の利用条件(2026-10-19 確認)
e-Gov 法令API v2: 時点指定(
asof)は 2017-04-01 以降のみ(それより前は API がエラー 400044)。法令は著作権法第13条で権利の目的とならない。出典「e-Gov 法令検索(デジタル庁)」を付ける国会会議録 API: 手続不要。多重リクエスト禁止、取得し終えてから数秒空ける、1 回 100 件まで、短時間での大量アクセスは遠慮。発言の著作権は発言者にあるが、公開の政治上の演説・陳述は著作権法第40条で利用可(同一著作者のものの編集は除く)。結果は抜粋とリンクだけを返す
外部 API への負担を抑えるための決まりは CONTRIBUTING.md(回数制限は公開されていないが、2026-10-20 に毎秒約 4 件を 40 秒送ったところで一時的に止められた)
データの更新
jlawcite は毎月 e-Gov から作り直されます(Hugging Face に日付のタグ)。このリポジトリの GitHub Actions(.github/workflows/data-refresh.yml)が毎日それを確かめ、新しければ data/ の 3 ファイルを同じ検索DBから作り直し、テスト・評価(dev・test)・文書の数値(scripts/render_docs.py)を更新してコミットします。dev の評価が前回より 0.5 ポイント以上悪くなったときは反映しません。main への push で接続先も更新されます。いまのデータの出どころは data/SOURCE.json。
開発
npm install
npm test # 単体テスト(実 API は呼ばない)
npm run build
LIVE=1 npx vitest run test/live # 実 API に数件だけ問い合わせる(手で実行するときだけ)
node eval/verify_eval.mjs --gold <jlawcite の eval/v2/nta_gold.jsonl> --split dev # 引用確認の評価(API は呼ばない)
python scripts/refresh_data.py --work work # data/ を jlawcite の最新スナップショットに(3 ファイルを同じ検索DBから。pip install jlawcite が必要)
python scripts/render_docs.py # README・DATA_LICENSE の数値と日付を data/・eval/results/ から埋める
python scripts/build_mcpb.py # Claude デスクトップの拡張(work/jp-law-mcp-<版>.mcpb)ライセンス
コード: Apache-2.0(LICENSE)。データ(data/・eval/results/): CC BY 4.0(DATA_LICENSE.md)。
法的な判断には e-Gov・官報の原文を確認してください。このツールの結果は確認の手がかりで、法的助言ではありません。
Available Tools
9 toolscompare_article条文の新旧比較A
同じ条の二つの時点の条文を比べ、変わった行を示します(- が旧、+ が新)。どちらの時点も 2017-04-01 以降。
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | 新の時点 YYYY-MM-DD。省略で現行 | |
| law | Yes | 法令名・略称・法令ID | |
| from | Yes | 旧の時点 YYYY-MM-DD | |
| article | Yes | 条番号。例: 8、第八条、36条の2 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full disclosure burden. It usefully explains the diff output notation and the date lower bound, but does not state permissions, error behavior, or what happens when no lines change.
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?
Two compact sentences, front-loaded with the comparison purpose, then the output notation and date constraint. Every clause adds useful information without repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only diff tool with full schema coverage but no output schema, the description adequately explains the return shape and the date lower bound. It leaves minor behavioral details unstated, such as error handling and when to prefer siblings, but is otherwise complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds a meaningful constraint beyond the schema patterns: both 'from' and 'to' time points must be on or after 2017-04-01, and it frames 'from'/'to' as old/new comparison points.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: compare the same article at two points in time and show changed lines with '-' for old and '+' for new. This distinguishes it from siblings like get_article and law_history without requiring 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 clearly sets the usage context: same article, two time points, both on or after 2017-04-01. It does not explicitly name alternatives or exclusions, but the comparison purpose is unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_cited_provisionsこの条が引用・委任している先A
指定した条が本文で引用している他の条と、委任している政令・省令などを法令ごとにまとめて返します。条文を読むときに参照先をたどるのに使います。
| Name | Required | Description | Default |
|---|---|---|---|
| law | Yes | 法令名・略称・法令ID | |
| article | Yes | 条番号。例: 8、第八条、36条の2 | |
| max_laws | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It does disclose the output shape (results grouped per law) and the two citation kinds covered (引用 and 委任), which is useful. It says nothing about the max_laws cap, truncation, ordering, or whether missing references are reported, leaving behavioral gaps for a lookup tool with no annotation coverage.
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?
Two compact sentences: the first is the capability statement with scope front-loaded, the second is the usage cue. No filler, no restatement of the name or title.
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 3-parameter read tool with no output schema and no annotations, the description covers what is returned and why you would call it, which is the essential core. It omits the behavior of max_laws and any truncation/limit semantics, so an agent can invoke it but cannot predict result volume.
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 67%: law and article are documented in the schema, and the description's '法令ごとにまとめて' reinforces the law grouping. max_laws is undocumented in both schema and description, and the description never mentions any limit on returned laws, so it does not compensate for the gap. Baseline 3 is appropriate.
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?
Specific verb (返します) plus the resource and scope: other articles cited in the body of the given article and delegated cabinet/ministerial ordinances, grouped by law. The outgoing direction of the citation relationship is unambiguous, which implicitly separates it from the mirror sibling find_citing_provisions, but that sibling is never named, so differentiation is left to inference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The second sentence gives a concrete use case: follow reference destinations while reading a provision. That is clear context for selection, but there is no explicit 'when not to use' or naming of alternatives such as find_citing_provisions or get_article.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_citing_provisionsこの条を引用している条文(逆引き)A
指定した条(または法令全体)を引用・委任元として参照している他の条文を、法令ごとにまとめて返します。「この条が改正されたら、どの法令のどの条に影響しうるか」「この規定を準用・引用している手続はどれか」を調べるときに使います。depth=2 で、引用している条をさらに引用している条の範囲(間接的な影響)も数えます。
| Name | Required | Description | Default |
|---|---|---|---|
| law | Yes | 法令名・略称・法令ID。例: 行政手続法 | |
| depth | No | ||
| article | No | 条番号。例: 8、第八条、36条の2。省略で法令全体 | |
| max_laws | No | ||
| include_same_law | No | 同じ法令の中からの引用も含める |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations, so the description carries the full burden. It usefully discloses the depth semantics (depth=2 counts indirect influence) and the per-law grouping of results, which is real behavioral value. However it says nothing about truncation via max_laws, ordering, or error behavior for unresolvable law names — significant gaps for an unannotated tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with the core action, then use cases, then the depth caveat. No filler text. Dense but appropriate for a Japanese technical description of a multi-parameter lookup.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and no annotations, the description must carry everything. It covers purpose, use cases, and depth semantics, and notes that results are grouped by law, but omits return shape, the effect of max_laws on completeness, and behavior for ambiguous law identifiers. Adequate but with clear gaps.
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 60%: law, article, and include_same_law are documented in the schema, but depth and max_laws are not. The description compensates well for depth by explaining indirect influence, but max_laws (default 15, max 50) is explained nowhere, leaving a non-obvious result-limiting parameter undocumented. Slightly above baseline 3, not a 4.
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 in the reverse direction ('指定した条...を引用・委任元として参照している他の条文を...返します') and even specifies output grouping ('法令ごとにまとめて返します'). The direction is clear enough that an agent can tell it apart from find_cited_provisions, but the sibling is never named explicitly, so it falls short of the 5 criterion.
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 two concrete when-to-use scenarios ('この条が改正されたら、どの法令のどの条に影響しうるか' / 'この規定を準用・引用している手続はどれか'), which is strong contextual guidance. It does not name an alternative tool or state when-not to use it, so it is not a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_law法令を探すA
法令名・略称の一部から法令を探し、法令ID・正式名称・種別・現行かどうかを返します。他のツールに渡す法令IDを調べるときにも使います。
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| title | Yes | 法令名または略称の一部。例: 行政手続法、行手法、個人情報 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the full behavioral burden. It does disclose the response contents (ID, official name, type, current status), which is valuable with no output schema, and 一部から探し implies partial matching returning multiple hits. However it says nothing about result limits (the schema caps limit at 30), ordering, or the read-only nature of the operation.
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?
Two compact sentences, front-loaded with the search action and returns before the secondary 'use it to get an ID for other tools' note. Every clause earns its place; no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description usefully enumerates returned fields and the ID-chaining purpose, which covers what an agent needs to route results downstream. It stops short of describing paging/limit behavior or whether multiple matches are returned by default.
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 only 50%: title is documented in the schema, limit is not. The description reinforces title's partial-match semantics (法令名・略称の一部) but largely repeats the schema wording and says nothing at all about limit. It therefore does not fully compensate for the uncovered parameter.
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: search laws from part of a name or abbreviation, and it enumerates the returned fields (法令ID・正式名称・種別・現行かどうか). It does not explicitly contrast itself with siblings like search_law_text or get_article, but the scope is unambiguous enough that an agent can tell what it does.
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 names the downstream use case: look up a law ID to pass to other tools (他のツールに渡す法令IDを調べるときにも使います). This tells the agent when to reach for it as an entry point. There are no exclusions (e.g., when to prefer search_law_text instead), so it stops 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.
get_article条文を読む(時点指定可)A
法令の条文(本則の条)を返します。asof を指定すると、その日に施行されていた版の条文を返します(2017-04-01 以降)。処分・申請の当時に適用された条文(行為時法)の確認に使います。現行の条文には施行予定の改正があれば知らせます。
| Name | Required | Description | Default |
|---|---|---|---|
| law | Yes | 法令名・略称・法令ID。例: 行政手続法、405AC0000000088 | |
| asof | No | 時点 YYYY-MM-DD(2017-04-01 以降)。省略で現行 | |
| article | Yes | 条番号。例: 8、第八条、36条の2 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are supplied, so the description carries the burden. It implies a read ('返します'), discloses the 2017-04-01 lower bound on asof, and adds a genuine behavioral trait: for current provisions it warns about scheduled amendments. It stops short of describing return format, article-scope boundaries (e.g., whether 附則/別表 are excluded), or any retrieval constraints.
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?
Four short sentences with the return behavior front-loaded, followed by the asof nuance and the use case. Efficient and well ordered, with no filler.
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?
There is no output schema and no annotations, so the description must stand alone; it covers purpose, temporal semantics, the use case, and the amendment-notification behavior. It is largely complete for a 3-parameter read tool, though it omits return-format details and the exact scope of what '本則の条' excludes.
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 law, asof, and article formats and examples. The description reinforces the meaning of asof ('the version in force on that date') but adds little syntax or format detail beyond what the schema states, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('法令の条文(本則の条)を返します') and scopes it to main-body articles, which helps disambiguate. It is clear what the tool returns, though it does not explicitly name a sibling it replaces (e.g., law_history or compare_article).
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 use case: confirming the law that applied at the time of a disposition or application (行為時法). This clearly frames when asof matters, but provides no exclusions or pointers to alternative tools for related tasks like history comparison.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
law_history法令の改正履歴A
法令の改正履歴(2017-04-01 以降の版)を新しい順に返します。施行日・改正法令・現行/過去/未施行の区別。
| Name | Required | Description | Default |
|---|---|---|---|
| law | Yes | 法令名・略称・法令ID | |
| limit | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden and does disclose meaningful behavior beyond the schema: newest-first ordering, the 2017-04-01 coverage cutoff, and the categories returned (施行日/改正法令/現行・過去・未施行). It omits pagination/truncation behavior tied to the limit parameter, but the read-only nature is implied by 返します.
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?
Two compact, front-loaded sentences with no padding: purpose first, then ordering/scope and returned categories. Every clause earns its place.
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 2-parameter read tool with no output schema, the description covers purpose, ordering, time window, and returned field categories, which is enough to invoke it correctly. The remaining gap is the completely undocumented limit parameter, which leaves an agent unable to reason about result-set size.
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 50%: the law parameter is documented in the schema (法令名・略称・法令ID) but limit has no description anywhere. The description text mentions neither parameter, so it adds no semantics beyond the schema and fails to compensate for the undocumented limit/default/paging behavior.
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+resource: it returns the amendment history of a law, in newest-first order, with a clear temporal scope (2017-04-01 onward). This is distinguishable from siblings like find_law or get_article, though it never names an alternative explicitly.
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?
Usage is only implied: an agent can infer you call this to see a law's revision history, but the description offers no when-to-use statement, no prerequisites, and no routing against siblings such as find_law or compare_article.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_diet_records国会会議録の発言検索A
国会会議録(衆議院・参議院の本会議・委員会)の発言を検索します。法律の立法趣旨、政府答弁、条文の解釈についての国会での説明を確かめるときに使います。結果は発言ごとの抜粋と国会会議録検索システムへのリンクです。条件を少なくとも 1 つ指定してください。
| Name | Required | Description | Default |
|---|---|---|---|
| from | No | 開始日 YYYY-MM-DD | |
| house | No | 院 | |
| limit | No | 件数(1〜20) | |
| start | No | 開始位置(続きを読むとき) | |
| until | No | 終了日 YYYY-MM-DD | |
| keyword | No | 発言内容のキーワード。空白区切りは AND。例: 「行政手続法 理由の提示」 | |
| meeting | No | 会議名(部分一致)。例: 総務委員会 | |
| speaker | No | 発言者名(部分一致) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the behavioral burden. It discloses the output format (excerpts per speech plus links) and the cross-cutting constraint that at least one condition must be specified, which are meaningful behavioral facts. It does not explicitly state read-only nature or discuss pagination/rate limits, leaving minor gaps, but 'search' strongly implies a non-mutating read operation.
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?
Four well-structured sentences: purpose, when to use, return shape, and invocation constraint. No sentence is wasted, and the most important scoping and constraint details are front-loaded appropriately.
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 an 8-parameter search tool with no output schema, the description explains the return shape and the minimum-filter requirement, which are critical for correct use. The schema handles parameter details including pagination via start, though the description does not mention pagination explicitly; overall it is complete enough to call correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds a valuable cross-parameter constraint not enforced by the schema: at least one filter condition must be supplied. This helps an agent avoid a zero-parameter invocation that the schema would technically allow.
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: searching speeches in Diet proceedings (both houses, plenary and committee). This is clearly distinct from the law-text-oriented sibling tools such as find_law or get_article. An agent can tell what this tool does 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 clear context for use: checking legislative intent, government answers, and constitutional/provision interpretation in the Diet. It does not name alternatives or exclusions, but the domain is narrow enough that implicit contrast with law-text search is clear. The requirement to specify at least one filter is a useful usage constraint.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_law_text条文の全文検索A
法令の本文をキーワードで検索し、該当する法令と文を返します(e-Gov 法令API)。空白区切りは AND。上位の法令は、その文が第何条にあるかも調べます。言い回し(「理由を示さなければならない」など)を含む規定を横断的に探すときに使います。
| Name | Required | Description | Default |
|---|---|---|---|
| asof | No | 時点 YYYY-MM-DD。省略で現行 | |
| limit | No | 法令の件数 | |
| locate | No | 上位 3 法令で条番号を調べる | |
| keyword | Yes | キーワード。空白区切りは AND。例: 理由を示さなければならない 申請 | |
| law_type | No | 法令種別で絞る。例: ["Act"] |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden and does add real behavioral context: the e-Gov API source, space-delimited AND semantics, that results include both the law and the matching sentence, and that top-ranked laws additionally report the article number. It is silent on rate limits, result ordering, or what happens when nothing matches, which are secondary gaps for a read-only search tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences, front-loaded with what the tool does, then mechanics, then the usage cue. The only mild redundancy is restating the space-delimited AND and article-locating behavior that the schema already covers.
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?
There is no output schema, and the description compensates by stating what is returned (matching laws and sentences, plus article numbers for the top laws). Combined with 100% schema coverage of the five parameters, an agent has everything needed to call this correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so all five parameters including asof, limit, locate and law_type are already documented in the schema. The description's mentions of AND tokenization and article-number lookup duplicate the keyword and locate field descriptions rather than adding new meaning, making the baseline 3 appropriate.
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: full-text keyword search over law body text ('法令の本文をキーワードで検索'), returning matching laws and sentences. This implicitly separates it from siblings like find_law (law lookup) and get_article (single article retrieval), but it never names an alternative explicitly, so the differentiation is left partly to inference.
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 clear positive usage condition: use it to search cross-cutting provisions that share a phrasing such as '理由を示さなければならない'. It does not name when NOT to use it or point to a specific sibling for other cases, so it stops short of full routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
verify_citations法令引用の実在確認A
文章に含まれる法令引用(例: 行政手続法第八条第一項、所得税法(昭和四十年法律第三十三号)第五十七条の二)を取り出し、法令・条・項・号が実在するか確かめます。法令名の誤り、存在しない条、括弧内の法令番号と名称の食い違い、廃止された法令を知らせ、照合用に条文の抜粋を付けます。AI が書いた回答や文書の引用を確認するときに使います。法令を挙げて答えるときは、答えを返す前に、挙げた引用をまとめてこのツールに渡してください(存在しない条を含む答えを返さないため)。主張の内容が正しいかは判断しません。
| Name | Required | Description | Default |
|---|---|---|---|
| asof | No | この日に施行されていた版で確認(2017-04-01 以降)。省略で現行 | |
| text | Yes | 確認する文章 | |
| detail | No | 引用した項・号の本文を長く(600 字まで)返す。答えの内容が条文と合っているか突き合わせるとき | |
| default_law | No | 法令名のない「第N条」をどの法令として扱うか(法令名か法令ID) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full load and does well: it discloses what the response contains (error classes plus matched article excerpts for cross-checking) and draws a clear boundary that claim correctness is out of scope. It stops short of stating whether verification requires network/auth, rate limits, or how large result sets behave.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads purpose and examples, then moves to output contents, then to when to call it and the pre-answer workflow rule, ending with the scope limit. Every sentence adds a distinct fact with no repetition.
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?
No output schema and no annotations, so the description must cover behavior, which it largely does via the enumerated error classes and excerpt attachment. The only mild gap is lack of detail on response shape or handling of very large citation sets.
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 asof, text, detail, and default_law are already fully documented in the schema; the description adds no parameter-level detail beyond what structured data provides. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a concrete verb pair (extract citations, verify existence) with concrete examples of citation forms (行政手続法第八条第一項, 所得税法(昭和四十年法律第三十三号)第五十七条の二). It also enumerates the specific failure classes it detects (wrong law name, nonexistent article, law-number/name mismatch, repealed law), which clearly differentiates it from siblings like find_cited_provisions or search_law_text.
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 explicit usage contexts ('AI が書いた回答や文書の引用を確認するときに使います') and a concrete workflow instruction (pass all cited provisions to this tool before returning an answer). It also states an explicit exclusion ('主張の内容が正しいかは判断しません'), defining what the tool will not do, though it never names a sibling as an alternative.
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 tool update
v0.3.20261020- Changed
verify_citations1 field changed- added
Input schema / properties / detailAdded value: +{ + "default": false, + "description": "引用した項・号の本文を長く(600 字まで)返す。答えの内容が条文と合っているか突き合わせるとき", + "type": "boolean" +}
9 tool updates
v0.1.0- First observed
compare_article - First observed
find_cited_provisions - First observed
find_citing_provisions - First observed
find_law - First observed
get_article - First observed
law_history - First observed
search_diet_records - First observed
search_law_text - First observed
verify_citations
TDQS
Scored across 9 tools
Most tools target clearly different actions or resources, such as full-text search, article retrieval, history, citation verification, and Diet records. The main ambiguity is between find_cited_provisions and find_citing_provisions, whose names are very similar, though their descriptions clarify outgoing versus incoming citations.
The set mostly follows a verb_noun pattern: search_law_text, find_law, get_article, verify_citations, compare_article, and search_diet_records. Deviations include law_history, which is noun-only, and the mix of verbs find/get/search, but the naming remains predictable and readable.
Nine tools is well-scoped for a Japanese law research MCP server. Each tool supports a distinct legal-research operation, and there is no obvious padding.
The surface covers law lookup, article retrieval, historical versions, amendment history, citation verification, citation tracing in both directions, and Diet records. A minor gap is the lack of a tool to enumerate a law's article structure or table of contents, which can make browsing a law less direct.
Maintenance
Related MCP Connectors
Japan Law MCP — Japanese national laws & ordinances via the e-Gov Law API.
LawOracle — 20 legal AI tools: case law search, contracts, EU regulations, citation graph.
Verify legal citations and search case law and legislation from your AI assistant.
Resolve, search and verify legal citations against the official sources, with provenance.
Related MCP Servers
- AlicenseBqualityDmaintenanceEnables searching and retrieving Japanese legal information from the e-Gov Law API, including law searches by keyword, detailed law data retrieval, and revision history tracking.3967 npm49MIT
- AlicenseAqualityAmaintenanceEnables LLMs to search and retrieve Japanese laws from the e-Gov API v2, including keyword search, article fetching, table of contents, and revision history.739 npm2MIT
- AlicenseNot gradedqualityBmaintenanceEnables querying Japanese national laws and ordinances via the e-Gov Law API, allowing AI agents to access legal data through natural language questions.181 npmMIT
- 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