Skip to content

nta_inspect_pdf_meta ​

INFO

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

指定した文書の添付 PDF の一覧を返す。本文は読まない。各 PDF に kind(comparison=新旧対照表 / attachment=別紙・別表 / qa-pdf / related / notice / unknown)と、読み方(read_strategy: tables=表として取る / text=本文として読む / sample=先頭を見て決める、layout_note: 紙面の組み方)を付ける。save: true のときだけ PDF をサーバー側の保存先(既定は XDG_CACHE_HOME か ~/.cache の下の houki-nta-mcp/files/。環境変数 HOUKI_NTA_FILES_DIR で変更)に取得し、saved[] に絶対パスを返す。next_actions に pdf-reader-mcp の呼び出し例(保存済みなら extract_tables / read_text に file_path、未保存なら read_url に url)と、他の PDF 読み取りツール向けの汎用の 1 件を置く。読み手は固定しない。nta_get_* で全文を取得すると重い場合や、PDF だけを確認したい時に使う。

利用者と得られる結果 ​

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

  • MCP クライアント(Claude などの LLM、または CLI から呼ぶ人)。docType と docId を渡して、ローカル DB にあるその文書の添付 PDF の一覧(種別・読み方・URL)を受け取る。PDF の本文は受け取らない。save: true にすると PDF をサーバー側に保存した絶対パスも受け取り、pdf-reader-mcp などの PDF 読み取りツールにそのパスを渡す

引数 ​

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

引数型必須既定値説明
docType"kaisei" | "jimu-unei" | "bunshokaitou" | "tax-answer"必須文書種別。改正通達 (kaisei) / 事務運営指針 (jimu-unei) / 文書回答事例 (bunshokaitou) / タックスアンサー (tax-answer)。質疑応答事例 (qa-jirei) は PDF を持たないため対象外
docIdstring (minLength 1)必須文書 ID。各 docType の nta_search_* 結果や nta_get_* のレスポンスから得られる。全角の数字・ハイフンは半角に揃えて読む
kind"comparison" | "attachment" | "qa-pdf" | "related" | "notice" | "unknown"任意この種別の PDF だけを返す。改正点だけ見たいときは comparison。改正通達(kaisei)でタイトルが「別紙 N」だけの PDF は新旧対照表本体のことが多いので comparison として返す。省略すると全件
saveboolean任意true のとき、返す PDF をサーバー側の保存先に取得し、saved[] に絶対パスを返す。pdf-reader-mcp の extract_tables / read_text はローカルファイルしか読まないので、表として取るときに使う。既に保存済みなら再取得しない(saved[].cached が true)。既定 false

呼び出し例 ​

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

呼び出し例 — 「改正通達 0025004-026 の PDF は、どれをどう読めばよいか」
  • 実測: v0.25.0(2026-10-05)
  • 確かめた版: v0.27.0(2026-10-10)
  • ローカル DB: あり

引数

jsonc
{ "docType": "kaisei", "docId": "0025004-026" }

返る JSON(layout_note は先頭の 1 件だけ載せ、他は … で省略。3 件とも同じ文)

jsonc
{
  "docType": "kaisei",
  "docId": "0025004-026",
  "title": "消費税法基本通達の一部改正について(法令解釈通達)",
  "sourceUrl": "https://www.nta.go.jp/law/tsutatsu/kihon/shohi/kaisei/0025004-026/index.htm",
  "attachedPdfs": [
    {
      "title": "別紙1(PDF/221KB)",
      "url": "https://www.nta.go.jp/law/tsutatsu/kihon/shohi/kaisei/0025004-026/pdf/01.pdf",
      "sizeKb": 221,
      "kind": "comparison",
      "read_strategy": "tables",
      "layout_note": "改正後と改正前を左右 2 列に並べた表。国税庁の新旧対照表は左が改正後、右が改正前のことが多いが、見出し行で確かめる。変更箇所には下線が引かれる。改正前の側の「(同左)」は改正後と同じ文、両側の「(省略)」は改正に関係しない部分の省略。新設・削除の印は丸括弧「(新設)」「(削除)」のものと、墨付き括弧「【新設】」「【削除】」「【一部改正】」(改正前にもある項で内容が変わったもの)のものの 2 通りがある。どちらも新設の印は改正前の側、削除の印は改正後の側に置かれる。改正通達の「別紙 N」は本文の新旧対照表、「【参考】…対応表」は章の構成(通達番号)の対応表のことがある。表として取れるなら表で、取れないなら左右 2 列に分けて読む(1 列として読むと改正後と改正前の文が混ざる)"
    },
    { "title": "別紙2(PDF/449KB)", "url": "https://www.nta.go.jp/law/tsutatsu/kihon/shohi/kaisei/0025004-026/pdf/02.pdf", "sizeKb": 449, "kind": "comparison", "read_strategy": "tables", "layout_note": "…" },
    { "title": "【参考】… 新旧対応表 …(PDF/399KB)", "url": "https://www.nta.go.jp/law/tsutatsu/kihon/shohi/kaisei/pdf/b0025003-111.pdf", "sizeKb": 399, "kind": "comparison", "read_strategy": "tables", "layout_note": "…" }
  ],
  "index_status": null,
  "orphaned_at": null,
  "notice": null,
  "next_actions": [
    {
      "action": "pdf-reader-mcp:read_url",
      "reason": "新旧対照表を URL のまま本文として読む。左右の列が混ざらないよう split_columns: 2 を付ける。表として取るには、この tool を save: true で呼び直して saved[].path を extract_tables に渡す",
      "example": { "url": "https://www.nta.go.jp/law/tsutatsu/kihon/shohi/kaisei/0025004-026/pdf/01.pdf", "split_columns": 2 }
    },
    {
      "action": "read_pdf",
      "reason": "pdf-reader-mcp が無いときは、使っている PDF 読み取りツールに url(save: true で保存したときは path)を渡す。読み方は attachedPdfs[].read_strategy と layout_note のとおり",
      "example": { "url": "https://www.nta.go.jp/law/tsutatsu/kihon/shohi/kaisei/0025004-026/pdf/01.pdf" }
    }
  ],
  "legal_status": {
    "binds_citizens": false,
    "binds_courts": false,
    "binds_tax_office": true,
    "note": "通達は行政内部文書。納税者・裁判所には直接的拘束力なし。ただし税務署員は職務として守る義務あり(最高裁 昭和43.12.24)"
  }
}

attachedPdfs[].kind は PDF のタイトルから分類したもので、read_strategy と layout_note はその kind に応じた読み方です。道具の名前を含まないので、pdf-reader-mcp 以外の PDF 読み取りツールでもそのまま使えます。next_actions は kind ごとに 1 件(同じ kind が複数あれば先頭の PDF)と、最後に pdf-reader-mcp が無い環境向けの read_pdf が付きます。save を付けていないので、pdf-reader-mcp 向けの例は URL のまま読む read_url です。本文は含まないので、全文が要るときは nta_get_kaisei_tsutatsu を使います。index_status・orphaned_at・notice は nta_get_kaisei_tsutatsu と同じ索引の印で、文書が国税庁の索引に載っている間は null です。

「別紙1」「別紙2」は本文の新旧対照表で、「【参考】… 新旧対応表」は第 8 章の通達番号の対応表です。v0.20.0 から、改正通達(kaisei)でタイトルが「別紙」と番号だけの PDF は comparison として返します(houki-nta-mcp#44)。v0.19.0 では別紙 1・2 が attachment になり、kind: "comparison" で絞ると参考の対応表だけが返っていました。DB の中身は変えていないので、再投入は要りません。

v0.18.3 までは next_actions の代わりに reader_hints が付いていました。その examples[].args は { "url": … } で extract_tables を指していましたが、pdf-reader-mcp の extract_tables は file_path しか受け取らないため、そのままでは呼べませんでした。

呼び出し例 — 「新旧対照表だけを保存して、表として取る」
  • 実測: v0.25.0(2026-10-05)
  • 確かめた版: v0.27.0(2026-10-10)
  • ローカル DB: あり

引数

jsonc
{ "docType": "kaisei", "docId": "0025004-026", "kind": "comparison", "save": true }

返る JSON(attachedPdfs と legal_status は上と同じなので省略。保存先は既定の ~/.cache の形で書いた)

jsonc
{
  "docType": "kaisei",
  "docId": "0025004-026",
  "attachedPdfs": [ { "kind": "comparison", "read_strategy": "tables", "…": "…" }, { "…": "…" }, { "…": "…" } ],
  "saved": [
    {
      "url": "https://www.nta.go.jp/law/tsutatsu/kihon/shohi/kaisei/0025004-026/pdf/01.pdf",
      "path": "~/.cache/houki-nta-mcp/files/kaisei/0025004-026/01.pdf",
      "bytes": 225944,
      "cached": true
    },
    {
      "url": "https://www.nta.go.jp/law/tsutatsu/kihon/shohi/kaisei/0025004-026/pdf/02.pdf",
      "path": "~/.cache/houki-nta-mcp/files/kaisei/0025004-026/02.pdf",
      "bytes": 459477,
      "cached": true
    },
    {
      "url": "https://www.nta.go.jp/law/tsutatsu/kihon/shohi/kaisei/pdf/b0025003-111.pdf",
      "path": "~/.cache/houki-nta-mcp/files/kaisei/0025004-026/b0025003-111.pdf",
      "bytes": 408826,
      "cached": true
    }
  ],
  "index_status": null,
  "orphaned_at": null,
  "notice": null,
  "next_actions": [
    {
      "action": "pdf-reader-mcp:extract_tables",
      "reason": "新旧対照表を表として取る。タグ付き PDF なら行と列がそのまま返る。表が 0 件(タグ無し)なら read_text に split_columns: 2 を付けて同じ file_path を読む",
      "example": { "file_path": "~/.cache/houki-nta-mcp/files/kaisei/0025004-026/01.pdf" }
    },
    {
      "action": "read_pdf",
      "reason": "pdf-reader-mcp が無いときは、使っている PDF 読み取りツールに url(save: true で保存したときは path)を渡す。読み方は attachedPdfs[].read_strategy と layout_note のとおり",
      "example": {
        "url": "https://www.nta.go.jp/law/tsutatsu/kihon/shohi/kaisei/0025004-026/pdf/01.pdf",
        "path": "~/.cache/houki-nta-mcp/files/kaisei/0025004-026/01.pdf"
      }
    }
  ]
}

kind: "comparison" で新旧対照表 3 件(別紙 1・別紙 2・参考の対応表)に絞り、save: true でサーバー側の保存先(HOUKI_NTA_FILES_DIR、無ければ ${XDG_CACHE_HOME:-~/.cache}/houki-nta-mcp/files/<docType>/<docId>/)に置きます。saved[].path は絶対パスで返るので、next_actions[0].example をそのまま pdf-reader-mcp の extract_tables に渡せます。next_actions は kind ごとに 1 件なので、example に入るのは先頭の別紙 1 だけです。別紙 2 と参考の対応表は saved[1].path / saved[2].path を同じ extract_tables に渡します。上の実測は同じ PDF を前に保存していたので saved[].cached が true になっています。初めて呼んだときは取得して false になり、同じ引数でもう一度呼ぶと再取得はせず true になります。取得に失敗した PDF は saved[].path が null になり、error(HTTP 404、PDF ではありません(Content-Type: text/html) など)と、note に件数が入ります。その PDF は URL のまま読みます。

別紙 1(本文の新旧対照表)はタグ付きなので extract_tables が見出し行「改正後 | 改正前」の表を返します。参考の対応表はタグ無しで extract_tables が 0 件になるので、read_text に split_columns: 2 を付けて同じ file_path を読みます。新旧対照表から改正点を取り出す手順(左右どちらが改正後かを見出し行で確かめる、「(同左)」「(省略)」「(新設)」「(削除)」と「【新設】」「【削除】」「【一部改正】」の扱い)は houki-research-skill の鉄則 3 にあります。

扱わないこと ​

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

  • PDF の本文を読むこと・要約すること(読むのは pdf-reader-mcp などの PDF 読み取りツール。このツールは一覧・種別・読み方・保存だけ)
  • 質疑応答事例(qa-jirei)と基本通達の条項(nta_get_tsutatsu の対象)の PDF を扱うこと(docType に無い)
  • ローカル DB に無い文書を国税庁サイトから取ること(先に --bulk-download-<docType> か nta_get_* で DB に入れる)
  • 保存した PDF を更新すること・消すこと(同じパスにあれば常にそれを使う)
  • 50MB を超える PDF を保存すること
  • 種別や読み方を DB に書き戻すこと(応答のときに決めるだけ)

処理の流れ ​

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

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

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

仕様項目の一覧 ​

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

仕様項目の見出し(20 件)
仕様 ID仕様項目
001ローカル DB に無い文書は取りに行かない
002文書の添付 PDF の一覧を種別の順に返し、索引から消えた文書には印を付ける
003種別の無い PDF は題名から種別を決める
004改正通達の「別紙 N」だけの題名は comparison として返す
005各 PDF に読み方(read_strategy と layout_note)を付ける
006kind で絞る
007絞った結果が 0 件のときは空の一覧と、ある種別の注記を返す
008改正通達で comparison が無く attachment があるときは別紙を読むよう注記する
009next_actions に kind ごとの呼び出し例と汎用の 1 件を付ける
010save: true で PDF を保存し、saved[] に絶対パスを返す。保存する PDF が 0 件でも saved: [] を返す
011保存に失敗した PDF は saved[] に error 付きで残す
012保存した PDF の next_actions は file_path を渡す形にする
013保存済みの PDF は取りに行かない
014保存した unknown の PDF の next_actions は、先に中身を確かめる形にする
015取得の応答が PDF でない、大きすぎる、取得できないときも saved[] に error 付きで残す
016legal_status は docType ごとの資料の位置付けを返す
017DB の添付 PDF の記録が読めない文書は、PDF が無い文書として返す
018同じ文書の中で最後のパス要素が同じ URL は、前のパス要素を付けて区別する
019docId が空文字・空白だけのときはDBを引かずに INVALID_ARGUMENT を返す
020docId は半角に揃えてから形を確かめる

関連ページ ​

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

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