resolve_abbreviation の仕様
INFO
houki-nta-mcp v0.27.1 の specs/current/resolve_abbreviation/spec.md から自動生成しました(仕様 ID 8 件・2026-10-12)。手で編集しないでください。再生成は node scripts/generate-reference.mjs specs です。
略称・通称から辞書のエントリを 1 件解決する
使いどころ・引数・実測の呼び出し例は、ツールのページにあります。
最後に仕様が変わったのは v0.24.0 の「0.22.0 の取り込みで直し漏れた specs/current の文を、取り込んだ本文に合わせる(#123)」(2026-10-03 承認)です。それまでの経緯は承認の履歴にあります。
利用者と得られる結果
この機能の利用者と、利用者が渡すもの・得られる結果を示します。
- MCP クライアント(Claude などの LLM、または CLI から呼ぶ人)。
abbrを渡して、その略称・通称が houki-abbreviations の辞書でどの法令・通達を指すか、そしてその本文を houki-nta-mcp で取れるか(管轄か)を受け取る
入力
呼び出すときに渡す値です。
| 引数 | 必須 | 内容 |
|---|---|---|
abbr | 必須 | 略称・正式名称・別名(辞書の aliases)のどれか。例: 消基通 / 所基通 / 電帳法取通 / 消費税法基本通達。前後の空白は無視する。全角英数字・ダッシュ類・全角空白は半角に揃えてから照合する(008)。完全一致で引く(部分一致はしない) |
format は無い。応答は常に JSON。
扱わないこと
この機能が意図して扱わないことです。
- 部分一致やあいまい一致で探すこと(完全一致だけ。
消費税のような通称は辞書の別名に登録されているときだけ引ける) - 全角・半角の表記ゆれを吸収すること(
PL法は辞書に無い扱いになる。未決 2) - 解決した通達・法令の本文を返すこと(通達は
nta_get_tsutatsu、法令は管轄先の MCP) - 管轄外のエントリについて、管轄先の MCP の呼び出し方(
next_actions)を返すこと(hintの文で MCP 名を案内するだけ) - 1 回の呼び出しで複数の略称を解決すること
- 辞書に無い名前に対して、似た名前の候補を返すこと
- 辞書の版や更新日を返すこと
処理の流れ
呼び出しを受けてから応答を返すまでに、何をどの順で確かめるかを示します。図の中の番号は「できること」の仕様 ID の末尾 3 桁です。
仕様項目
この機能の仕様項目を、仕様 ID ごとに並べています。見出しは仕様項目を 1 文で表したもので、条件・応答の細部・例は「詳細」を開くと読めます。仕様 ID はそれぞれ受入テストと対応していて、テストの無い ID があると各リポジトリの CI が止まります。
SPEC-NTA-RESOLVE-ABBREVIATION-001 略称でも正式名称でも辞書のエントリを返す
詳細
abbr を houki-abbreviations の辞書で引き、見つかったエントリを応答の resolved に入れて返す。略称(消基通)でも正式名称(消費税法基本通達)でも同じエントリに解決される。応答の abbr には渡された値をそのまま返す。ローカル DB も国税庁サイトも引かない。
resolved は辞書のエントリそのままで、次のフィールドを持つ。
| フィールド | 内容 |
|---|---|
abbr | 辞書に登録された略称。正式名称で引いたときもこれは略称(消費税法基本通達 → 消基通) |
formal | 正式名称 |
law_id | e-Gov の法令 ID。通達など e-Gov に無いものは null |
law_num / law_type | 法令番号と法令種別。法令系のエントリにだけ付く |
domain | 分野。例: tax |
category | 種別。例: kihon-tsutatsu(基本通達)/ kobetsu-tsutatsu(個別通達)/ law(法律) |
source_mcp_hint | 本文を持つ MCP の名前。例: houki-nta / houki-egov |
aliases / note | 別名の一覧と備考。辞書にあるときだけ付く |
例: abbr: "消基通" の応答は abbr: "消基通"、resolved.formal: "消費税法基本通達"、resolved.law_id: null、resolved.category: "kihon-tsutatsu"、resolved.source_mcp_hint: "houki-nta"。
SPEC-NTA-RESOLVE-ABBREVIATION-002 houki-nta の管轄のエントリには in_scope: true を返す
詳細
解決したエントリの source_mcp_hint が houki-nta のとき、応答に in_scope: true を付ける。hint は付けない。基本通達(消基通 など)も個別通達(電帳法取通 など)も同じ。
例: abbr: "電帳法取通" の応答は resolved.category: "kobetsu-tsutatsu"、resolved.source_mcp_hint: "houki-nta"、in_scope: true で、hint は無い。
SPEC-NTA-RESOLVE-ABBREVIATION-003 管轄外のエントリには in_scope: false と、管轄の MCP への案内を返す
詳細
解決したエントリの source_mcp_hint が houki-nta でないとき(法律・政令・省令など)は、resolved にエントリを入れたうえで in_scope: false を付ける。エラーにはしない。hint と next_actions は、管轄の MCP サーバーが houki-hub family にあるかどうかで次のとおりにする。
source_mcp_hint | hint | next_actions |
|---|---|---|
houki-egov(family にある) | このエントリは houki-egov の管轄です。houki-egov-mcp で取得してください。 | { action: "delegate_to_mcp", reason: "houki-egov の管轄リソースです。該当 MCP に切り替えてください", example: { mcp: "houki-egov" } } の 1 件。nta_get_tsutatsu の OUT_OF_SCOPE(SPEC-NTA-GET-TSUTATSU-002)と同じ形 |
| それ以外(family にまだ無い) | このエントリは <source_mcp_hint> の管轄ですが、対応する MCP サーバーはまだありません。 | 付けない(切り替える先が無いため) |
<source_mcp_hint>-mcp の形で、まだ無い MCP サーバーの名前(houki-court-mcp など)を案内しない。houki-abbreviations 0.7.0 の辞書の source_mcp_hint は houki-egov と houki-nta の 2 つだけなので、2 行目は辞書に新しい管轄が足されたときの備えである。
例: abbr: "消法" の応答は resolved.formal: "消費税法"、resolved.source_mcp_hint: "houki-egov"、in_scope: false、hint: "このエントリは houki-egov の管轄です。houki-egov-mcp で取得してください。"、next_actions: [{ action: "delegate_to_mcp", reason: "houki-egov の管轄リソースです。該当 MCP に切り替えてください", example: { mcp: "houki-egov" } }](v0.22.0 では next_actions が無かった)。source_mcp_hint が houki-court のエントリを返すときは、hint は このエントリは houki-court の管轄ですが、対応する MCP サーバーはまだありません。 で、next_actions は無い。
SPEC-NTA-RESOLVE-ABBREVIATION-004 辞書に無い名前には resolved: null を返す
詳細
abbr が辞書のどのエントリの略称・正式名称・別名とも一致しないときは、エラーにせず resolved: null と note(「辞書に該当なし。フル法令名でお試しください」)を返す。応答の abbr には渡された値をそのまま返す。in_scope と hint は付かない。
例: abbr: "存在しない通達" の応答は { abbr: "存在しない通達", resolved: null, note: "辞書に該当なし。フル法令名でお試しください" }。
SPEC-NTA-RESOLVE-ABBREVIATION-005 inputSchema に合わない引数は INVALID_ARGUMENT で止める
詳細
abbr が文字列でない、abbr が無い、inputSchema に無い引数がある、のいずれかのときは、辞書を引かずにエラー INVALID_ARGUMENT を返す(isError: true)。エラーには tool: "resolve_abbreviation"、detail.issues(各要素に path と message。path は引数名)、hint(tools/list の inputSchema を確かめる案内)、next_actions(list_tools)が付く。
例: abbr: 123 を渡すと code: "INVALID_ARGUMENT"、tool: "resolve_abbreviation"、detail.issues[0].path: "abbr"。
SPEC-NTA-RESOLVE-ABBREVIATION-006 辞書の別名(aliases)でも同じエントリを返す
詳細
abbr が辞書のエントリの略称でも正式名称でもなく、そのエントリの aliases にある名前のときも、そのエントリを resolved に入れて返す(SPEC-NTA-RESOLVE-ABBREVIATION-001 と同じ形)。管轄の判定(SPEC-NTA-RESOLVE-ABBREVIATION-002・003)も同じように行う。
例: abbr: "電帳法取扱通達" は resolved.abbr: "電帳法取通"・resolved.source_mcp_hint: "houki-nta" のエントリに解決され、in_scope: true。abbr: "消費税" は resolved.abbr: "消法"・resolved.formal: "消費税法" のエントリに解決され、houki-egov の管轄なので in_scope: false と誘導の hint が付く。応答の abbr は渡した値のまま。
SPEC-NTA-RESOLVE-ABBREVIATION-007 abbr が空文字・空白だけのときは略称辞書を引かずに INVALID_ARGUMENT を返す
詳細
空文字は inputSchema の minLength: 1 の検査(SPEC-NTA-COMMON-ERRORS-013)で止まり、INVALID_ARGUMENT(tool: "resolve_abbreviation"、detail.issues: [{ path: "abbr", message: "空文字は指定できません" }])を返す。空白(半角スペース・全角スペース・タブ・改行)だけのときは、ツールの処理が略称辞書を引く前に、SPEC-NTA-COMMON-ERRORS-014 の形の INVALID_ARGUMENT(tool: "resolve_abbreviation"、error: "abbr が空です"、detail.issues: [{ path: "abbr", message: "空白だけは指定できません" }]、hint に略称・正式名称・別名を渡すよう書く)を返す。
例: abbr: "" は code: "INVALID_ARGUMENT"・detail.issues[0].message: "空文字は指定できません"。abbr: " "(全角スペース)と abbr: " \n" は code: "INVALID_ARGUMENT"・error: "abbr が空です"。どれも略称辞書は引かない。
v0.21.3 では空文字・空白だけの abbr に resolved: null と note(SPEC-NTA-RESOLVE-ABBREVIATION-004 の形)を返していたが、空の abbr は辞書に無い名前ではなく引数の誤りなので、004 の対象から外れる。houki-egov-mcp の resolve_abbreviation(SPEC-EGOV-RESOLVE-ABBREVIATION-010)と同じ。
SPEC-NTA-RESOLVE-ABBREVIATION-008 abbr の全角英数字・ダッシュ類・全角空白は半角に揃えてから辞書と照合する
詳細
abbr は、houki-abbreviations の resolveAbbreviation(name, { normalize: true }) の規則(全角英数字を半角に、ダッシュ類 - ‐ ‑ – — ― − を - に、全角チルダ ~ 〜 を ~ に、全角空白を半角空白にし、前後の空白を除く。罫線 ─ と長音 ー は変えない。大文字と小文字は区別する)で揃えてから、略称・正式名称・別名と照合する(SPEC-NTA-SEARCH-RULES-019)。応答の abbr は渡した値のまま。
例: abbr: "PL法" は resolved.formal: "製造物責任法"・in_scope: false で、応答の abbr は "PL法"(v0.21.3 では resolved: null だった)。abbr: "消基通 "(末尾が全角空白)は 消費税法基本通達・in_scope: true。abbr: "pl法" は大文字小文字が違うので resolved: null のまま。
実装する人に向けた情報
ここから下は、この機能を実装する人と、仕様の変更を追う人に向けた節です。使い方を知りたいだけなら、読まなくて構いません。
検討中のこと
仕様を書き起こしたときに見つかった項目のうち、扱いを Issue で検討しているものです。ここに挙げたことは、今後の版で変わることがあります。開くと、元の仕様書の記述をそのまま読めます。
仕様書の「未決」の節
初版起こしで見つけた、意図か不具合かを人が決める項目です。決まったら「できること」に ID を振るか、specs/changes/ の差分にします。
意図か不具合かの判断が要る項目は houki-nta-mcp の Issue に移し、ここには題と Issue の番号だけを残します。今の振る舞いのままでよくテストが無いだけの項目は、受入テストを書いてから「できること」に ID を振ります。
hintが案内する MCP 名。 → SPEC-NTA-RESOLVE-ABBREVIATION-003
承認の履歴
この機能の仕様が、いつ、どの変更で承認されたかを新しい順に並べています。各リポジトリの npx spec-ids history resolve_abbreviation と同じ内容です。変更の名前から、変更の理由と前後の振る舞いを書いた文書(GitHub)を開けます。
承認の履歴(9 件)
| 承認日 | 版 | 変更 | 仕様 PR |
|---|---|---|---|
| 2026-10-03 | v0.24.0 | 0.22.0 の取り込みで直し漏れた specs/current の文を、取り込んだ本文に合わせる(#123) | #132 |
| 2026-10-03 | v0.23.0 | hint・next_actions・説明文・CLI の使い方と実際の動きの食い違いを、行ごとに直す(T5 文書と実装の食い違い) | #126 |
| 2026-10-01 | v0.22.0 | 全角・半角・ダッシュ類の揃え方を houki-abbreviations 0.7.0 に一本化する(T3) | #119 |
| 2026-10-01 | v0.22.0 | 「見つからない」と「取得元の失敗」の code を分ける(T2) | #118 |
| 2026-10-01 | v0.22.0 | 引数の検査を inputSchema に書き、丸めずに INVALID_ARGUMENT にする(T1) | #117 |
| 2026-09-27 | v0.21.1 | 取得系ツールと nta_inspect_pdf_meta の応答の形に仕様 ID を振る | #89 |
| 2026-09-26 | v0.21.1 | 「未決」のうち判断が要る 45 件を Issue に移す | #74 |
| 2026-09-26 | v0.21.1 | 全 14 ツールの spec.md に「処理の流れ」の節を足す | #63 |
| 2026-09-26 | — | 初版 | #63 |
関連ページ
このページの元になった文書と、あわせて読むページです。