Reported issues for houki-egov-mcp
Pod holds 18 of 30 GitHub reports that passed its relevance review. This can include external user reports, maintainer-confirmed bugs, and concrete feature gaps. Treat them as evidence to inspect, not a count of distinct defects.
Back to houki-egov-mcp.
Most discussed
引数の検査の INVALID_ARGUMENT の detail が読み取りにくく、返さない code が語彙に残っている
引数の検査で返す INVALID_ARGUMENT の detail の形と、エラー code の語彙が、houki-nta-mcp や family の約束と揃っていません。呼び出し側(LLM や houki-research-skill)が、どの引数が悪かったかを機械的に読み取りにくくなっています。
いまの状態(v0.15.1)
toolが付かない: houki-nta-mcp は inputSchema の検査のINVALID_ARGUMENTに呼んだツールの名前をtoolで付けるが、houki-egov-mcp は付けない- 必須の引数が無いときの
path:detail.issues[0].pathが空文字で、どの引数が無いかはmessage(must have required property 'name')の中にしか無い messageの言語: 型・enum の違反のmessageは英語(must be string、`must be equal to…
Read the thread · 2026-09-27 · open · 1 comment
limit・latest・depth の上限・整数を約束しておらず、get_law が範囲表記の article を黙って受け付ける
数値の引数に、上限・整数・0 以下の扱いが約束されていません。inputSchema の型は number だけで、説明に書いた上限をかけていない引数や、説明に無い形を受け付ける引数があります。paragraph の同じ問題は #48 で扱います。
いまの状態(v0.15.1)
| ツール | 引数 | 起きること |
|---|---|---|
search_law |
limit |
説明は「最大: 50」だが、値をそのまま e-Gov に渡す。keyword: "法", limit: 100 で 100 件返る。0・負の数・小数の扱いも決まっていない |
get_law_revisions |
latest |
0 や負の数なら全件を返し、2.5 は切り捨てた 2 件になる。エラーにしない |
get_toc |
depth |
depth: 1.5 は depth: 2 と同じ結果になる |
get_law |
article |
"534:535" や… |
Read the thread · 2026-09-27 · open · 1 comment
施行令・施行規則の関連付け
背景
kuro6061/e-gov-mcp の follow_law_chain / explain_law_article / find_related_laws に相当する処理がありません。「この条が指す施行令はどれか」をサーバーが解決しないため、LLM が次の search_law を自分で組み立てています。
houki-hub#8(法令グラフ)との関係 — 2026-09-14 に決定
対象が重なっていても、MCP のツールとして実装します。理由は次のとおりです。
- RAG は Claude のサービスに入っており、自分で組むなら API 経由になる
- GraphRAG も、エンティティと関係の抽出は Claude API に頼ることになる
- MCP が出すべきなのは、LLM の判断を挟まずに引ける参照関係
そのうえで層を分けます。
| 層 | 返すもの | 作り方 |
|---|---|---|
| 本 Issue(MCP) | 法令 XML と法令名の規則から決定論的に引ける参照。同じ入力に同じ出力 | … |
Read the thread · 2026-09-14 · closed · 1 comment
houki-egov-mcp、ブラウザから条文をそのまま引ける入口 — 同僚や受験生に送ればすぐ試せる
@shuji-bonji
MCP を作りながら、ユーザー側の入口を一緒に育てているソフトウェア開発者です。Qiita の設計ノートと houki-egov-mcp の README を読みました。
search_law / get_law / get_law_revisions の 7 ツール構成が良いと思いました。特に、略称解決(消法→消費税法)と at での経時参照を最初から分けた設計が、法令を素朴に LLM に投げると壊れる箇所をきちんと押さえています。
docs/ERROR-CODES.md の SOURCE_* 共通語彙と next_actions を family で揃える方針も筋が良いです。将来 nta / mhlw が並んだときに LLM 側の分岐が綺麗になります。
ひとつだけ気になったのが導入の段差です。条文を引きたい同僚・法学生・法務担当の多くは、Claude Desktop に claude_desktop_config.json を書く前に止まります。「LLM…
Read the thread · 2026-05-25 · closed · external user · 1 comment
取得の進捗が、終わった時点で 100% にならない(SPEC-EGOV-CLI-BULK-DOWNLOAD-006 と実装の食い違い)
current の SPEC-EGOV-CLI-BULK-DOWNLOAD-006 は「取得が終わった時点の表示は 100%」と書いていますが、実装はそうなっていません。推定より小さい zip では、取得が終わったときの表示が 100% になりません。
いまの状態(v0.15.1)
- 取得中の割合は「取得したバイト数 / 推定の総バイト数」(全件は約 290 MB、1 日分の差分は約 5 MB)。100% を超えないように止めるが、終わったときに 100% に切り上げない
- 2.2 KB の zip(テスト用)では、終わったときの表示が
( 0.0%)になる - 006 の既存のテスト(
src/services/bulk/zip-fetcher.test.ts)は、進捗の通知が出ることと、推定より大きい zip で 100% を超えないことだけを確かめていて、「終わった時点は 100%」を確かめていない
決めること
- 実装を直して、取得が終わった時点で 100% を表示するか
- 仕様を直して、「終わった時点は 100%」を外すか
###…
Read the thread · 2026-09-27 · open · 0 comments
--status の件数の区切り文字が環境の言語設定で変わる
--status の件数の区切り文字が、実行する環境の言語設定で変わります。同じ DB でも、表示を読むスクリプトや利用者の環境によって 1,234,567 と 1.234.567 が混ざります。
いまの状態(v0.15.1)
laws:とarticles:の件数をtoLocaleString()で表示している(src/cli/index.tsの 334・335 行目)- 既定の言語設定では
1,234,567、LANG=de_DE.UTF-8では1.234.567になる
決めること
- 区切りを固定するか(
toLocaleString('en-US')、または区切りなし)
完了条件
- 決めた表示が
specs/current/cli_status/spec.mdに書かれ、受入テストがある
出典: cli_status 1 の一部(差分 20260928-untested-behaviors で約束にしなかった部分)
Read the thread · 2026-09-27 · open · 0 comments
explain_law_type が toString・constructor で found: true を返し、info が無い
explain_law_type に name: "toString" や "constructor" を渡すと、found: true を返します。応答の JSON には info がありません。
いまの状態(v0.15.1)
- 収録している種別の表を、オブジェクトのキーで引いている。そのため
toString・constructor・hasOwnPropertyなどObject.prototypeのプロパティの名前が「見つかった」扱いになる - 応答は
found: trueだが、infoは JSON にならない関数なので消え、利用者は種別の解説を受け取れない
決めること
- 不具合として直すか(
Object.hasOwnやMapで引く)。直すならfound: falseと候補の一覧を返す
完了条件
name: "toString"/"constructor"でfound: falseになることが…
Read the thread · 2026-09-27 · open · 0 comments
附則の別表・様式にある図の location が附則全体になり、見出しが付かない
附則の中の別表・様式にある図の置き場所(location)が、附則全体({ tag: "SupplProvision" })になり、見出し(例: 附則別表第一)が付きません。利用者は、どの別表の図かを list_attachments の応答から読み取れません。
いまの状態(v0.15.1)
- e-Gov の XML は、附則の別表・様式を
SupplProvisionAppdxTable/SupplProvisionAppdxStyle/SupplProvisionAppdxのタグで返す - 図の置き場所を決める処理は、本則の
AppdxTable/AppdxStyle/AppdxFormat/AppdxFig/Appdxしか知らない(srcとspecsのどこにもSupplProvisionAppdxの語が無い) - 見出し
附則別表第一を持つSupplProvisionAppdxTableの中の図は、`{ tag: "SupplProvision",…
Read the thread · 2026-09-27 · open · 0 comments
Most recent
verify_citations で同じ未知の law_id が並ぶと、2 件目以降の search_law の keyword が law_name にならない
verify_citations で、同じ(e-Gov が知らない)law_id の件が 1 回の呼び出しに並ぶと、2 件目以降の next_actions が 1 件目の判定を使い回します。law_name を書いた件でも、search_law の keyword が law_id になります。
いまの状態(v0.15.1)
SPEC-EGOV-VERIFY-CITATIONS-027 は「e-Gov が知らない law_id の件の example は { keyword: <law_name> }、law_name が無ければ { keyword: <law_id> }」と書いています。1 件だけで渡すとこのとおりになります。
{ "citations": [
{ "law_id": "999AC0000000999", "article": "1" },
{ "law_name": "所得税法", "law_id": "999AC0000000999", "article": "1" }
]…
[Read the thread](https://github.com/shuji-bonji/houki-egov-mcp/issues/70) · 2026-09-27 · open · 0 comments
### e-Gov に接続できないとき SOURCE_UNAVAILABLE を返さず、SOURCE_API_ERROR(fetch failed)になる
e-Gov に接続できないとき(名前解決の失敗・接続の拒否)に返すはずの `SOURCE_UNAVAILABLE` が、実際には返りません。README とエラー code の語彙は `SOURCE_UNAVAILABLE` を「e-Gov に届かない」ときの code としていますが、利用者(LLM)は代わりに `SOURCE_API_ERROR`(e-Gov がエラーを返した)を受け取り、ネットワークの問題と e-Gov 側の問題を見分けられません。
### いまの状態(v0.15.1)
- Node 22 の `fetch` は、名前解決の失敗や接続の拒否を、message が `fetch failed` の `TypeError` で投げる。`ENOTFOUND`・`ECONNREFUSED` などの原因は `err.cause` にだけ入る
- エラーを code に変える処理(`src/services/law-service.ts` の 133 行目付近)は `err.message` の中に…
[Read the thread](https://github.com/shuji-bonji/houki-egov-mcp/issues/69) · 2026-09-27 · open · 0 comments
### 添付・本文ファイルの保存で、同名の添付を黙って選び、法令履歴 ID の欄に法令 ID が入る
添付ファイルと法令本文ファイルの保存で、ファイル名の決め方に曖昧な点があります。名前の重なりで別のファイルを返したり、法令履歴 ID の欄に法令 ID が入ったりします。
### いまの状態(v0.15.1)
- **同じファイル名の添付(`get_attachment`):** SPEC-EGOV-GET-ATTACHMENT-002 のファイル名だけでの照合は、同じファイル名が別のディレクトリの `src` に複数あっても、一覧で先にあるものを黙って返す
- **Content-Disposition が無いとき(`get_law_file`):** `<law_id>.<file_type>` の名前で保存する。`saved.file_name` は `null` だが、`saved.law_revision_id` にはこの名前の拡張子より前、つまり法令 ID(例: `129AC0000000089`)が入り、保存先のディレクトリも法令 ID の名前になる。inputSchema と応答の型の説明は `law_revision_id` を法令履歴 ID…
[Read the thread](https://github.com/shuji-bonji/houki-egov-mcp/issues/66) · 2026-09-27 · open · 0 comments
### 目次の meta の at、補った項番号、続きの呼び出し例の max_chars が付かない
同じ種類の応答なのに、場合によってフィールドが付いたり付かなかったりします。呼び出し側(LLM)は、応答の形からは値の有無の理由を読み取れず、打ち切りの続きを取るときに条件が変わることもあります。
### いまの状態(v0.15.1)
| ツール | 場面 | 起きること |
|---|---|---|
| `get_law` | 目次(`format: "toc"`、または `article` 省略) | 条文の応答の `meta` には `at` が付くが、目次の `meta` には付かない(Markdown の `時点:` の行は付く) |
| `get_law` | `item` だけを指定し、項が 1 つの条の号を返したとき(SPEC-EGOV-GET-LAW-011) | json の `data.paragraph_num` が付かず、`data.node` は号。補った項番号(`1`)を返さない |
| `get_law_range` | 打ち切ったとき(SPEC-EGOV-GET-LAW-RANGE-008) |…
[Read the thread](https://github.com/shuji-bonji/houki-egov-mcp/issues/64) · 2026-09-27 · open · 0 comments
### explain_law_type が「通知」と一部の法令種別コードで期待どおりの解説を返さない
`explain_law_type` が、一部の種別名と法令種別コードで期待どおりの解説を返しません。`get_law` などの応答にある `law_type` をそのまま渡しても、解説が返らない種別があります。
### いまの状態(v0.15.1)
- **`通知`:** 収録している種別は 9 種のほかに `通知` があり(計 10 種)、`通達` の別名にも `通知` がある。名前の一致を別名より先に確かめるので、`name: "通知"` は `info.name: "通知"` を返し、`通達` の別名の `通知` は使われない
- **法令種別コード:** コードで引けるのは `Act`・`CabinetOrder`・`MinisterialOrdinance` だけ。`search_law` の `law_type` が受け付ける `Rule`・`ImperialOrdinance` と、e-Gov が返す `Constitution` は `found: false`。`規則` にはコードが結び付いていない
### 決めること
- `通知`…
[Read the thread](https://github.com/shuji-bonji/houki-egov-mcp/issues/62) · 2026-09-27 · open · 0 comments
### 新しい版の DB を古い版で開くと消え、MCP サーバーと --status が DB を作る
ローカル DB を作る・作り直す・消す場面の約束が、README と実際で違います。利用者が houki-egov-mcp を古い版に戻すと、約 290 MB の取り込みが消えることがあります。
### いまの状態(v0.15.1)
- **古い版のサーバーで新しい版の DB を開く:** 作り直しは DB の版がサーバーと「違う」ときに起き、DB の版がサーバーより新しいときも全テーブルを消す。取り込みをやり直すことになる
- **MCP サーバーが DB に書き込む:** README は「書き込みは CLI だけが行い、MCP server は読むだけ」と書くが、`search_fulltext` が DB を開くと、DB ファイルやディレクトリが無ければ作り、スキーマを作り、版が違えば作り直す
- **`--status` が DB を作る:** 状態を見るだけのコマンドだが、DB ファイル(とそのフォルダー)が無いときは作ってから件数 0 を表示し、ファイルが残る
- **`sync_state.schema_version` 列:** 既定値は 2…
[Read the thread](https://github.com/shuji-bonji/houki-egov-mcp/issues/60) · 2026-09-27 · open · 0 comments
### 段落だけの本則を取り込まず、作れない公布日に 0001-01-01 を入れる
全件取り込み・差分取り込みで、一部の法令の本文や公布日が DB に正しく入りません。本文が入らない法令は `search_fulltext` で本文から見つからず、公布日は実在しない日付になります。
### いまの状態(v0.15.1)
- **条を持たない法令:** 本則が条(`Article`)でなく段落(`Paragraph`)だけの法令(例: 改暦ノ布告)は、法令としては取り込むが条の本文を 1 つも作らない。テスト `Article がない場合でも articles=[] でパースできる (本文 Paragraph 直下)` はこの動きを確かめている
- **公布日:** 元号・年・月・日のどれかが XML に無いとき、または元号が明治・大正・昭和・平成・令和のどれでもないときは、公布日を `0001-01-01` にする
### 決めること
- 段落だけの本則も本文として取り込むか(条番号の無い本文を `search_fulltext` でどう返すか)
- 公布日が作れないときに空(`NULL`)にするか
### 完了条件
- 決めた規則が…
[Read the thread](https://github.com/shuji-bonji/houki-egov-mcp/issues/59) · 2026-09-27 · open · 0 comments
### 日次差分の last_sync_date の決め方と差分の無い日の扱いで、取り込んでいない日を最新と扱う
日次差分の取り込みで、`last_sync_date` の決め方と、差分の無い日の HTTP 500 の扱いが、`--sync` と `--bulk-download-by-date` で揃っていません。取り込んでいない日を「最新」と扱うことがあり、DB の法令が古いまま検索結果に出ます。
### いまの状態(v0.15.1)
- **`--bulk-download-by-date` の `last_sync_date`:** 指定した日ではなく実行した日にする。今日 `--bulk-download-by-date 20260801` を実行すると `last_sync_date` が今日になり、その後の `--sync` は今日からしか確かめないので、8 月 2 日から昨日までの差分を取り込まないまま「最新」と扱う
- **`last_sync_date` の日付:** 取り込みを始めた時刻を UTC の日時で持ち、その先頭 10 文字を `last_sync_date` にする。日本時間の 0 時から 9 時の間に実行すると前日の日付になる。`--sync`…
[Read the thread](https://github.com/shuji-bonji/houki-egov-mcp/issues/58) · 2026-09-27 · open · 0 comments
### search_law の domain が絞り込まず、total_count が総数でなく、0 件のときに次の手を返さない
`search_law` の `domain` は説明どおりに絞り込まず、`total_count` は名前と違う値を返し、0 件のときは次に何をすればよいかを返しません。利用者(LLM)は、絞り込んだつもりの結果や、総数と読める件数をそのまま使うおそれがあります。
### いまの状態(v0.15.1)
- **`domain`:** inputSchema の説明は「分野タグで絞り込み(略称辞書ベース)」だが、e-Gov の検索にも結果の選別にも使わず、応答の `query` にも入れない。`keyword: "労働基準", domain: "tax", law_type: "Act"` で `労働基準法`(労働分野)が返る
- **`search_fulltext` の `domain`:** 説明は「v0.5.0 では受け付けるが絞り込みは行わない」、応答の `filters.domain.note` は「v0.5.0 では未実効」と書く。今の版は v0.15.1
- **`total_count`:** `results` の件数と同じで、`limit`…
[Read the thread](https://github.com/shuji-bonji/houki-egov-mcp/issues/55) · 2026-09-27 · open · 0 comments
### 必須の文字列の引数に空文字を渡したときの code がツールごとに違う
必須の文字列の引数に空文字(または空白だけ)を渡したときの応答が、ツールごとに違います。inputSchema の検査は空文字を通すので、各ツールの処理がそれぞれ別の code を返しています。
### いまの状態(v0.15.1)
| ツール | 入力 | 結果 |
|---|---|---|
| `search_law` | `keyword: ""` | `INVALID_ARGUMENT`(SPEC-EGOV-SEARCH-LAW-001) |
| `get_law` | `law_name: ""` | `LAW_NOT_FOUND` |
| `resolve_abbreviation` | `abbr: ""` | エラーにせず `resolved: null` と、`example: { keyword: "" }` の `search_law` の案内。この案内どおりに呼ぶと `search_law` は `INVALID_ARGUMENT` を返す |
| `search_fulltext` | `keyword: ""`(空白だけを含む) | DB…
[Read the thread](https://github.com/shuji-bonji/houki-egov-mcp/issues/53) · 2026-09-27 · open · 0 comments
The remaining reports are on [the project's issue tracker](https://github.com/shuji-bonji/houki-egov-mcp/issues).