npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@shuji-bonji/houki-egov-mcp

v0.3.1

Published

MCP server for Japanese laws and regulations — e-Gov 法令API v2 client. Part of the houki-hub MCP family.

Downloads

324

Readme

Houki e-Gov MCP Server

CI npm version License: MIT Node

日本の法令(憲法・法律・政令・省令・規則)を e-Gov 法令API v2 経由で取得する MCP サーバ。

LLM が条文をキーワード・略称・分野で検索したり、特定の条項を Markdown / JSON で取得したり、改正履歴を引いたりできるようにする。

提供ツール

| Tool | 用途 | |---|---| | search_law | 法令タイトルでキーワード検索(略称→正式名解決済み) | | get_law | 条/項/号レベルで本文取得(Markdown / JSON / TOC) | | get_toc | 目次のみ取得(トークン節約) | | get_law_revisions | 改正履歴を取得(公布日・施行日・状態) | | search_fulltext | 全文検索(Phase 2 まで search_law にフォールバック) | | resolve_abbreviation | 略称→正式名解決の診断 | | explain_law_type | 法令種別(憲法・法律・政令・省令・通達 等)の解説 |

略称辞書(165エントリ・6分野)は @shuji-bonji/houki-abbreviations を内部で利用しています。

インストール

Claude Desktop で使う

// claude_desktop_config.json
{
  "mcpServers": {
    "houki-egov": {
      "command": "npx",
      "args": ["-y", "@shuji-bonji/houki-egov-mcp"]
    }
  }
}

ローカル開発

git clone [email protected]:shuji-bonji/houki-egov-mcp.git
cd houki-egov-mcp
npm install
npm run build
npm test
// 開発中の動作確認 (.mcp.json)
{
  "mcpServers": {
    "houki-egov-local": {
      "command": "node",
      "args": ["/absolute/path/to/houki-egov-mcp/dist/index.js"]
    }
  }
}

使用例

# LLM への問いかけ → MCP ツール呼び出し

「消費税法30条1項を見せて」
  → get_law(law_name="消法", article="30", paragraph=1)

「労働基準法の目次を取得」
  → get_toc(law_name="労基法")

「個人情報保護法の改正履歴を最新5件」
  → get_law_revisions(law_name="個情法", latest=5)

「電帳法って正式名称なに?」
  → resolve_abbreviation(abbr="電帳法")
  → 電子計算機を使用して作成する国税関係帳簿書類の保存方法等の特例に関する法律

「政令と省令の違いは?」
  → explain_law_type(name="政令")

CLI(ローカル DB の構築 — v0.3.1+)

全文検索用のローカル DB(SQLite FTS5)は、e-Gov の bulk ダウンロード zip から構築します。MCP server として常駐する通常起動とは別に、フラグ付きで起動すると CLI モードで動作します。

# 全法令 zip (約 290 MB) を DL して DB に取り込む
npx @shuji-bonji/houki-egov-mcp --bulk-download-everything

# DB の件数と鮮度 (freshness) を表示
npx @shuji-bonji/houki-egov-mcp --status

DB のデフォルト配置は ${XDG_CACHE_HOME:-~/.cache}/houki-egov-mcp/laws.dbHOUKI_EGOV_DB_PATH で変更可)。

: v0.3.1 時点で DB は取り込みまで。search_fulltext ツールから FTS5 を引くのは Phase 2-7(次リリース)です。現状の search_fulltextsearch_law(タイトル一致)にフォールバックします。

状態

v0.3.1 (2026-07-14)

  • [x] e-Gov 法令API v2 クライアント(searchLaws / getLawData / getLawRevisions
  • [x] 法令ツリー走査(条/項/号、目次抽出)+ LRU cache
  • [x] 7ツール本実装
  • [x] 略称辞書を @shuji-bonji/houki-abbreviations ^0.4.1 に分離
  • [x] 法令階層ナレッジ(憲法・法律・政令・省令・規則・条例・告示・訓令・通達・通知 の10種別)
  • [x] houki-hub family 共通の error contract(SOURCE_* / OUT_OF_SCOPE)に準拠
  • [x] Phase 2 基盤:bulk DL → SQLite FTS5 の取り込みパイプライン(schema / CSV・XML parser / zip fetcher / ingester / freshness / CLI)
  • [x] Trusted Publisher (OIDC) で publish
  • [x] テストスイート(193 tests

計画中

  • [ ] Phase 2-7: search_fulltext を FTS5 バックエンドに接続(現状は search_law にフォールバック)
  • [ ] Phase 2-8: 差分同期(--bulk-download-incremental
  • [ ] Phase 2-13: API enrichment(category / 改正履歴 / 廃止ステータスの精緻化)
  • [ ] 漢数字対応(「第三十条」を 30 に変換)
  • [ ] 大規模法令の応答サイズ対策(民法・会社法)

houki-hub MCP family

houki-egov-mcp は 単体で利用可能ですが、houki-hub MCP family の一員でもあります。同じ family 内の他 MCP(計画中)と組み合わせると、通達・判例等まで横断的に扱えます。

| パッケージ | 役割 | 状態 | |---|---|---| | @shuji-bonji/houki-abbreviations | 略称辞書(共有ライブラリ) | ✅ v0.1.0 | | @shuji-bonji/houki-egov-mcp | e-Gov 法令API クライアント(このリポジトリ) | ✅ v0.2.0 | | @shuji-bonji/houki-nta-mcp | 国税庁通達・Q&A・タックスアンサー | 計画中 | | @shuji-bonji/houki-mhlw-mcp | 厚労省通達・通知 | 計画中 | | @shuji-bonji/houki-court-mcp | 判例(裁判所サイト) | 構想中 | | @shuji-bonji/houki-saiketsu-mcp | 国税不服審判所裁決 | 構想中 | | @shuji-bonji/houki-hub | meta-package(一括 install) | 計画中 |

family 全体の設計思想・想定利用シーン・業法との関係は docs/DESIGN.md を参照。

エラー応答 (houki-hub family contract)

v0.3.0 より、本 MCP のエラー応答は houki-hub family 共通契約に完全準拠します。code 文字列は family 全体で統一された語彙を使用するため、複数の MCP を併用しても LLM・Skill 層は一貫したロジックで解釈できます。

houki-egov-mcp の src/errors.ts は family 全体の リファレンス実装として位置付けられています。他 MCP は同じ code 語彙を共有しつつ、共通パッケージへの依存は持たずに独立実装します。

{
  "error": "法令『消費税法』第3000条は存在しません",
  "code": "ARTICLE_NOT_FOUND",
  "hint": "条番号を get_toc で確認してください",
  "next_actions": [
    { "action": "get_toc", "reason": "目次で正しい条番号を特定", "example": { "law_name": "消費税法" } }
  ],
  "retryable": false
}

本 MCP で使用するコード

| code | 用途 | retryable | |---|---|---| | INVALID_ARGUMENT | キーワード未指定など引数バリデーション失敗 | false | | INVALID_ARTICLE_NUM | 条番号フォーマットが不正 (例: 未対応の漢数字) | false | | OUT_OF_SCOPE | 通達名で get_law を呼んだ等、別 MCP の管轄リソースが要求された | false | | LAW_NOT_FOUND | 略称解決・検索のいずれでも法令が見つからない | false | | ARTICLE_NOT_FOUND | 指定された条/項/号が見つからない | false | | SOURCE_API_ERROR | e-Gov API がエラー応答 (4xx/5xx) | 状況による | | SOURCE_TIMEOUT | e-Gov API がタイムアウト | true | | SOURCE_RATE_LIMITED | e-Gov API がレート制限 (HTTP 429) | true | | SOURCE_UNAVAILABLE | DNS 失敗 / ECONNREFUSED 等で e-Gov に到達不能 | true | | INTERNAL_ERROR | 内部エラー (バグ・予期せぬ例外) | false | | UNKNOWN_TOOL | 存在しない tool 名が呼ばれた | false |

Migration (v0.2.x → v0.3.0)

  • v0.2.x までは EGOV_API_ERROR / EGOV_TIMEOUT / EGOV_RATE_LIMITED を返していました。v0.3.0 からは family 共通の SOURCE_API_ERROR / SOURCE_TIMEOUT / SOURCE_RATE_LIMITED に切替。
  • EGOV_*LawErrorCode の型としては残置していますが、本 MCP からはもう発行しません。次のメジャー (v1.0.0) で削除予定。
  • 構造化エラーの形 ({ error, code, hint?, next_actions?, retryable?, detail? }) は不変。クライアント側で code 文字列の比較をしている場合は SOURCE_* を受け付けるよう更新してください。
  • OUT_OF_SCOPE を新たに受け取る可能性があります。例えば「消基通」(消費税法基本通達 / 国税庁の通達) を get_lawlaw_name に渡すと、next_actions[0].example.mcp = "houki-nta" を含む OUT_OF_SCOPE が返されるので、Skill 層は houki-nta-mcp に切り替えてください。

ドキュメント

業法との関係

本MCPは 一次情報の取得・提示のみ を担います。分析は LLM、判断は利用者(または有資格者)の責任です。業としての法律事務・税務業務への利用は想定外です — 詳細は DISCLAIMER.md 参照。

デジタル庁公式 MCP との関係

デジタル庁は 2025年12月〜2026年3月の「法令×デジタル」ハッカソンで法令API / MCP のプロトタイプを試行提供した。将来一般公開された場合は、本 MCP のコアを公式 MCP に委譲し、houki-hub family 全体は 公式が手を出さないレイヤ(通達・裁決・判例の横断インデックス、業法対応 Skill 等) に注力する方針。

ライセンス

MIT — 個人利用・学習用途のフォーク・改変・再配布を自由に許可します。

ただし、業としての使用(弁護士法72条・税理士法52条・社労士法27条が定める独占業務) については想定外であり、作者は一切の責任を負いません。DISCLAIMER.md を必ずご確認ください。