Skip to content

get_toc ​

INFO

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

法令の目次(編・章・節・条の構造)のみを取得する。トークン節約用。本則は toc、附則は改正法ごとに suppl_provisions へ分けて返す(現行の規定と、改正法ごとの施行日・経過措置を混ぜないため)。既定では附則は見出しと条数だけを返し、suppl: "full" で附則の中の条まで返す。depth で階層を浅く打ち切れる(民法・会社法のような大規模法令の概観把握向け)。打ち切ったときは truncated: true と truncated_by: "depth" を返す。truncated が true になるのは depth で刈ったときだけで、応答の大きさでは打ち切らない(get_law_range の truncated は文字数の上限の意味)。応答の toc[].path(例 "Part3/Chapter2")は get_law_range にそのまま渡せる。

利用者と得られる結果 ​

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

  • MCP クライアント(Claude などの LLM、または CLI から呼ぶ人)。law_name を渡して、法令の編・章・節・条の目次(本則)と、改正法ごとの附則の目次を受け取る。受け取った toc[].path や suppl_provisions[].index を get_law_range に渡して、範囲の本文を取る

引数 ​

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

引数型必須既定値説明
law_namestring (minLength 1)必須法令名または略称
atstring任意時点指定(YYYY-MM-DD)
depthinteger (≥ 1)任意本則の構造階層(編・章・節・款・目)を上から何階層まで返すか(1 以上の整数)。最上位の階層から数えるので、編を持つ法令(民法など)では 1 が編まで、章から始まる法令(消費税法など)では 1 が章までです。省略時は全階層
suppl"list" | "full" | "none"任意"list"附則をどこまで返すか。"list"(デフォルト)=改正法ごとの見出しと条数だけ、"full"=附則の中の条まで、"none"=附則を返さない。附則は改正法ごとに積み上がり、所得税法は 352 本・条 983 件あるため、既定では見出しだけを返す
with_amend_titlesboolean任意false附則に改正法の題名を付ける(デフォルト: false)。附則の属性には法令番号しか無いため、改正履歴(get_law_revisions と同じ e-Gov の応答)を 1 回引いて法令番号で照合する。e-Gov の改正履歴は近年の改正が中心なので、それより古い改正法の題名は付かない(付いた本数と付かなかった本数は応答の suppl.amend_law_titles に入る)

本則と附則は別に返ります(v0.13.0)

本則は toc、附則は改正法ごとに suppl_provisions へ分かれます。既定(suppl: "list")では附則は見出しと条数だけで、中の条は返りません。toc の構造ノードに付く path(例 Part3/Chapter2)は、get_law_range にそのまま渡して章・節の条文を取れます(v0.14.0)。

呼び出し例 ​

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

呼び出し例 — 「民法の大区分だけ見たい」
  • 実測: v0.20.0(2026-10-05)
  • 確かめた版: v0.20.1(2026-10-10)
  • ローカル DB: 不要

引数

jsonc
{ "law_name": "民法", "depth": 1 }

返る JSON(抜粋)

jsonc
{
  "markdown": "# 民法 — 目次\n\n## 本則\n\n- 第一編 総則\n- 第二編 物権\n- 第三編 債権\n- 第四編 親族\n- 第五編 相続\n\n## 附則(67 本・条 201 件)\n\n- 附則(1) 大正一五年四月二四日法律第六九号 — 項のみ\n…",
  "toc": [
    { "tag": "Part", "num": "1", "title": "第一編 総則", "path": "Part1", "children": [] },
    { "tag": "Part", "num": "2", "title": "第二編 物権", "path": "Part2", "children": [] },
    { "tag": "Part", "num": "3", "title": "第三編 債権", "path": "Part3", "children": [] },
    { "tag": "Part", "num": "4", "title": "第四編 親族", "path": "Part4", "children": [] },
    { "tag": "Part", "num": "5", "title": "第五編 相続", "path": "Part5", "children": [] }
  ],
  "suppl_provisions": [
    {
      "index": 1,
      "label": "附則",
      "amend_law_num": "大正一五年四月二四日法律第六九号",
      "extract": false,
      "article_count": 0,
      "paragraph_only": true,   // 条を立てず項だけで書かれた附則
      "children": []
    },
    {
      "index": 3,
      "label": "附則",
      "amend_law_num": "昭和二二年四月一六日法律第六一号",
      "extract": true,          // 抄(改正法の附則の一部だけを載せた形)
      "article_count": 1,
      "paragraph_only": false,
      "children": []
    }
    // …計 67 件
  ],
  "suppl": {
    "mode": "list",
    "count": 67,
    "article_count": 201,
    "note": "附則 67 本の見出しと条数だけを返しました(条は合計 201 件)。中の条まで要るときは suppl: \"full\" を指定してください"
  },
  "meta": {
    "law_id": "129AC0000000089",
    "title": "民法",
    "law_num": "明治二十九年法律第八十九号",
    "retrieved_at": "2026-10-04T20:20:23.578Z",
    "url": "https://laws.e-gov.go.jp/law/129AC0000000089",
    "at": null
  },
  "node_count": 5,
  "truncated": true
}

node_count は本則のノード数、truncated: true は depth で本則の階層を打ち切ったことを示します(附則の本数は depth では変わりません)。toc[].path を get_law_range に渡すと、その編・章の条文を本文ごと取れます。特定の条を探すだけなら、get_toc より search_fulltext に「民法 不法行為」のように法令名と語を渡す方が短く済みます。

扱わないこと ​

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

  • 条の本文を返すこと(範囲の本文は get_law_range、1 条ずつは get_law)
  • 附則の中に path を付けること(附則は suppl_provisions[].index で指す)
  • 題名が e-Gov の改正履歴に無い古い改正法に、題名を付けること
  • format を選ぶこと(応答は markdown と構造化した目次の両方を常に返す)
  • 応答の大きさや文字数で目次を打ち切ること(truncated は depth で刈ったときだけ true。文字数の上限で打ち切るのは get_law_range の range.truncated)

処理の流れ ​

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

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

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

仕様項目の一覧 ​

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

仕様項目の見出し(29 件)
仕様 ID仕様項目
001本則を toc、附則を suppl_provisions に分けて返す
002toc のノードの形
003本則の構造ノードに、get_law_range にそのまま渡せる path を付ける
004既定(suppl: "list")では附則の見出しと条数だけを返す
005suppl_provisions の各要素の形
006suppl: "full" では附則の中の条まで返す
007suppl: "none" では附則を返さず、本数と条数だけを返す
008既定では改正履歴を引かない
009with_amend_titles: true で附則に改正法の題名を付ける
010depth で本則の階層を上から打ち切る
011markdown の目次
012法令が見つからないときは LAW_NOT_FOUND を返す
013houki-egov の管轄外の名前には OUT_OF_SCOPE を返す
014法令本文の取得で e-Gov が失敗したときのエラー
015応答の meta
016node_count は返した本則の目次のノード数
017markdown の見出しと末尾の出典
018at で時点を指定する
019suppl: "full" と depth を一緒に渡すと、附則の中の目次も打ち切る
020改正履歴が取れなかったときは、題名なしの目次を返す
021suppl: "none" のときは with_amend_titles を渡しても改正履歴を引かない
023depth は 1 以上の整数で、0・負の数・小数は INVALID_ARGUMENT にして法令を取らない
024at は YYYY-MM-DD の形だけを受け付け、形に合わない値と暦に無い日付は INVALID_ARGUMENT
025law_name が空文字・空白だけのときは e-Gov に問い合わせずに INVALID_ARGUMENT を返す
026法令名の検索が通信の失敗で終わったときは LAW_NOT_FOUND ではなく SOURCE_* を返す
027law_name の全角英数字・ダッシュ類・全角空白は半角に揃えてから略称辞書と照合する
028法令名が完全一致しないときは、目次を返さず候補を付けた LAW_NOT_FOUND を返す
029法令本文の取得で e-Gov が 404・時点の 400 を返したときは LAW_NOT_FOUND・INVALID_ARGUMENT
030truncated_by で、truncated の理由を返す

関連ページ ​

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

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