Skip to content

get_law_range ​

INFO

houki-egov-mcp v0.21.0 の tools/list と specs/current/get_law_range/spec.md から自動生成しました(仕様 ID 35 件・2026-10-12)。手で編集しないでください。再生成は node scripts/generate-reference.mjs です。

法令の編・章・節・款・目のいずれか、または附則 1 本を範囲にして、その中の条を本文ごと取得する。1 条ずつ引く get_law と、目次だけを返す get_toc の間を埋める(民法・会社法・消費税法のように get_law で 1 条ずつ引くと手数がかかり、法令全体では長すぎる場合に使う)。範囲は条の単位で文字数の上限まで返し、入り切らなかったときは truncated と続きの条番号(next_from_article)を返す。返した範囲(パス・見出し・条の数・最初と最後の条)は応答の range に入る。

利用者と得られる結果 ​

このツールの利用者と、利用者が渡すもの・得られる結果を示します。

  • MCP クライアント(Claude などの LLM、または CLI から呼ぶ人)。law_name と範囲(編・章・節の番号、get_toc の path、または附則の番号)を渡して、その範囲の条の本文を受け取る。範囲が長くて打ち切られたときは、応答の next_from_article を from_article に渡して続きを取る

引数 ​

呼び出すときに渡す値です。動いているサーバーの tools/list から写しています。

引数型必須既定値説明
law_namestring (minLength 1)必須法令名または略称。例: "民法", "会社法", "消法"
partstring | number任意編の番号。"3" / 3 / "三" / "第三編" / 枝番号は "2の2"。上位の階層は無いので単独で指定できる
chapterstring | number任意章の番号。章番号は編ごとに振り直されるため(民法には第一章が 5 つある)、編を持つ法令では part も指定する。指定が複数の範囲に当たるときは、候補のパスを付けた INVALID_ARGUMENT を返す
sectionstring | number任意節の番号。上位の part / chapter も指定すると範囲が一つに決まる
subsectionstring | number任意款の番号
divisionstring | number任意目の番号
pathstring任意範囲のパス。get_toc が返す toc[].path をそのまま渡せる。例: "Part3/Chapter2"(民法第三編第二章)、"Chapter2/Section1/Subsection2"。編・章・節の番号との同時指定はできない
suppl_indexinteger (≥ 1)任意附則の番号(1 以上の整数)。get_toc が返す suppl_provisions[].index と同じ番号で、search_fulltext が「附則(3) 1」と表示する番号でもある。条を持たず項だけで書かれた附則は、範囲の本文をそのまま返す
from_articlestring任意範囲の中のこの条から返す。前の応答が truncated だったときに next_from_article の値を渡して続きを取る。例: "561", "548の4", "第五百六十一条"
max_charsinteger (2000–120000)任意30000返す条本文の文字数の上限(デフォルト: 30000、2000〜120000)。条の途中では切らないため、1 条目だけは上限を超えても返す
atstring任意時点指定。YYYY-MM-DD 形式(get_law と同じ)

範囲の指定は 3 通り、同時には 1 つだけ

編・章・節・款・目の番号(part / chapter / section / subsection / division)、範囲のパス(path)、附則の番号(suppl_index)のいずれか 1 つを指定します。2 通り以上を渡すと INVALID_ARGUMENT になります。

呼び出し例 ​

実際に呼び出したときの引数と応答です。版と日付は実測したときのものです。

呼び出し例 — 「民法の契約の章をまとめて読みたい」
  • 実測: v0.20.0(2026-10-05)
  • 確かめた版: v0.20.1(2026-10-10)
  • ローカル DB: 不要

引数

jsonc
{ "law_name": "民法", "part": 3, "chapter": 2 }

返る JSON(抜粋)

jsonc
{
  "markdown": "# 民法 第三編 債権 第二章 契約\n\n## 第521条\n(契約の締結及び内容の自由)\n\n何人も、法令に特別の定めがある場合を除き、契約をするかどうかを自由に決定することができる。\n\n**第2項**\n契約の当事者は、法令の制限内において、契約の内容を自由に決定することができる。\n…",
  "range": {
    "path": "Part3/Chapter2",
    "titles": ["第三編 債権", "第二章 契約"],
    "tag": "Chapter",
    "article_count": 198,      // この章が持つ条の数
    "returned_count": 186,     // 本文を返した条の数
    "skipped_count": 0,
    "truncated": true,
    "body_chars": 29919,
    "max_chars": 30000,
    "first_article": "第521条",
    "last_article": "第684条",
    "next_from_article": "685",
    "note": "範囲の条 198 件のうち 186 件を返しました(第521条〜第684条)。本文 29,919 文字(上限 30,000 文字)。上限で打ち切りました。続きは from_article: \"685\" を付けて同じ範囲を呼び直してください。",
    "next_actions": [
      {
        "action": "get_law_range",
        "reason": "同じ範囲の続きの条から取れます",
        "example": { "law_name": "民法", "path": "Part3/Chapter2", "from_article": "685" }
      }
    ]
  },
  "articles": [
    { "num": "521", "label": "第521条", "caption": "(契約の締結及び内容の自由)" },
    { "num": "522", "label": "第522条", "caption": "(契約の成立と方式)" }
    // …計 186 件
  ],
  "meta": {
    "law_id": "129AC0000000089",
    "title": "民法",
    "law_num": "明治二十九年法律第八十九号",
    "retrieved_at": "2026-10-04T20:20:10.699Z",
    "url": "https://laws.e-gov.go.jp/law/129AC0000000089",
    "at": null
  }
}

上限(既定 30,000 文字)に達したので、198 条のうち 186 条で打ち切っています。条の途中では切りません。続きは { "law_name": "民法", "path": "Part3/Chapter2", "from_article": "685" } で取れます(range.next_actions にそのまま入っています)。max_chars を渡したときは、example にも同じ max_chars が入ります。

呼び出し例 — 「遺留分の章だけ読みたい」(path で指定)
  • 実測: v0.20.0(2026-10-05)
  • 確かめた版: v0.20.1(2026-10-10)
  • ローカル DB: 不要

引数

jsonc
{ "law_name": "民法", "path": "Part5/Chapter9" }

path は get_toc の応答の toc[].path をそのまま渡した値です。

返る JSON(抜粋)

jsonc
{
  "range": {
    "path": "Part5/Chapter9",
    "titles": ["第五編 相続", "第九章 遺留分"],
    "tag": "Chapter",
    "article_count": 8,
    "returned_count": 8,
    "skipped_count": 0,
    "truncated": false,
    "body_chars": 2284,
    "max_chars": 30000,
    "first_article": "第1042条",
    "last_article": "第1049条",
    "note": "範囲の条 8 件のうち 8 件を返しました(第1042条〜第1049条)。本文 2,284 文字(上限 30,000 文字)。"
  },
  "articles": [
    { "num": "1042", "label": "第1042条", "caption": "(遺留分の帰属及びその割合)" },
    { "num": "1043", "label": "第1043条", "caption": "(遺留分を算定するための財産の価額)" },
    { "num": "1044", "label": "第1044条" },
    { "num": "1046", "label": "第1046条", "caption": "(遺留分侵害額の請求)" }
    // …計 8 件
  ]
}

条見出し(caption)が無い条もあります(第1044条)。truncated: false なら、その範囲の条はすべて返っています。

呼び出し例 — 「章だけ指定したら候補が返ってきた」
  • 実測: v0.20.0(2026-10-05)
  • 確かめた版: v0.20.1(2026-10-10)
  • ローカル DB: 不要

引数

jsonc
{ "law_name": "民法", "chapter": 2 }

返る JSON

jsonc
{
  "error": "指定された範囲が 5 か所あります。上位の階層も指定してください",
  "code": "INVALID_ARGUMENT",
  "hint": "該当するパス: Part1/Chapter2, Part2/Chapter2, Part3/Chapter2, Part4/Chapter2, Part5/Chapter2(Chapter@Num は編ごとに振り直されます)",
  "next_actions": [
    { "action": "get_law_range", "reason": "第一編 総則 第二章 人",
      "example": { "law_name": "民法", "path": "Part1/Chapter2" } },
    { "action": "get_law_range", "reason": "第二編 物権 第二章 占有権",
      "example": { "law_name": "民法", "path": "Part2/Chapter2" } },
    { "action": "get_law_range", "reason": "第三編 債権 第二章 契約",
      "example": { "law_name": "民法", "path": "Part3/Chapter2" } }
    // …計 5 件(第四編・第五編の第二章が続く)
  ]
}

章番号は編ごとに振り直されます。民法には第一章が 5 つ、第一節が 19、会社法には第一節が 22 あります。どれか 1 つを推測で選ばず、候補の見出しとパスを返します。next_actions の example をそのまま次の呼び出しに使えます。

呼び出し例 — 「附則の 7 本目を読む」
  • 実測: v0.20.0(2026-10-05)
  • 確かめた版: v0.20.1(2026-10-10)
  • ローカル DB: 不要

引数

jsonc
{ "law_name": "消費税法", "suppl_index": 7 }

suppl_index は get_toc の suppl_provisions[].index(search_fulltext が「附則(7) 1」と表示する番号)と同じです。

返る JSON

jsonc
{
  "markdown": "# 消費税法 附則(7) 平成二年六月二二日法律第三六号(抄)\n\nこの法律は、平成二年十月一日から施行する。\n…",
  "range": {
    "suppl_index": 7,
    "titles": ["附則(7) 平成二年六月二二日法律第三六号(抄)"],
    "tag": "SupplProvision",
    "article_count": 0,
    "returned_count": 0,
    "skipped_count": 0,
    "truncated": false,
    "body_chars": 21,
    "max_chars": 30000,
    "note": "この範囲は条を持たず項だけで書かれているため、範囲の本文をそのまま返しました(21 文字)"
  },
  "articles": []
}

条を立てず項だけで書かれた附則(消費税法に 9 本あります)は article_count: 0 になり、範囲の本文をそのまま返します。

扱わないこと ​

このツールが意図して扱わないことです。

  • 条より細かい単位(項・号)で範囲を指すこと(1 条の項・号は get_law)
  • 複数の附則や、本則と附則をまたいだ範囲を 1 回で返すこと
  • 条の途中で打ち切ること(上限を超えても 1 条目は丸ごと返し、2 条目以降は条の単位で打ち切る)
  • 範囲の目次だけを返すこと(目次は get_toc)
  • format を選ぶこと(応答は markdown と range・articles の両方を常に返す)

処理の流れ ​

仕様書の「処理の流れ」の節を、図も含めてそのまま写しています。図が大きいので畳んでいます。

処理の流れの図(仕様書の写し)

呼び出しを受けてから応答を返すまでに、何をどの順で確かめるかを示します。図の中の番号は「できること」の仕様 ID の末尾 3 桁です。

仕様項目の一覧 ​

このツールの仕様項目 35 件の見出しです。仕様項目は受入テストと 1 対 1 で対応していて、条件と例は仕様書ページで読めます。

仕様項目の見出し(35 件)
仕様 ID仕様項目
001指定した範囲の条を本文ごと返し、範囲の内訳を range に入れる
002編・章・節の番号はいくつかの書き方で受ける
003path で範囲を指す
004上位を省いた指定が複数の範囲に当たるときは、候補のパスを返す
005範囲が無いときは RANGE_NOT_FOUND を返す
006範囲の指定が無いとき、2 通り以上を同時に指定したときはエラーにする
007読めない path はエラーにする
008文字数の上限を超える範囲は条の単位で打ち切り、続きの条番号と、同じ条件で呼び直す例を返す
009from_article から続きを返す
0101 条だけで上限を超えるときも、その 1 条は返す
011範囲に無い条を from_article に渡すと ARTICLE_NOT_FOUND を返す
012suppl_index で附則 1 本を範囲にする
013条を持たず項だけの附則は、本文をそのまま返す
014無い附則の番号は RANGE_NOT_FOUND を返す
015本則の範囲には附則の条を入れない
016削除された条をまとめた条も 1 条として返し、そこから続きを取れる
017法令が見つからないときは LAW_NOT_FOUND を返す
018houki-egov の管轄外の名前には OUT_OF_SCOPE を返す
019法令本文の取得で e-Gov が失敗したときのエラー
020読めない編・章・節・款・目の番号は、e-Gov に問い合わせる前に INVALID_ARGUMENT を返す
021読めない from_article は INVALID_ARTICLE_NUM を返す
022max_chars を省くと 30,000 文字で、適用した上限を range.max_chars に入れる
023範囲外の max_chars は tools/call で INVALID_ARGUMENT にする
024款・目(subsection / division)で範囲を指す
025応答の meta
026markdown の末尾に range.note と出典を書く
027at で時点を指定する
028候補が 6 か所以上のとき、hint には全部、next_actions には先頭の 5 件を入れる
029law_name が空文字・空白だけのときは略称辞書と e-Gov に問い合わせずに INVALID_ARGUMENT を返す
030suppl_index は 1 以上の整数で、0・負の数・小数は INVALID_ARGUMENT にして法令を取らない
031at は YYYY-MM-DD の形だけを受け付け、形に合わない値と暦に無い日付は INVALID_ARGUMENT
032法令名の検索が通信の失敗で終わったときは LAW_NOT_FOUND ではなく SOURCE_* を返す
033law_name の全角英数字・ダッシュ類・全角空白は半角に揃えてから略称辞書と照合する
034法令名が完全一致しないときは、範囲の条を返さず候補を付けた LAW_NOT_FOUND を返す
035法令本文の取得で e-Gov が 404・時点の 400 を返したときは LAW_NOT_FOUND・INVALID_ARGUMENT

関連ページ ​

このページの元になった文書と、あわせて読むページです。

本サイトの内容は調査の出発点であり、法的助言ではありません。個別の事案は資格を持つ専門家に相談してください。免責事項と利用範囲