@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
Maintainers
Readme
Houki e-Gov MCP Server
日本の法令(憲法・法律・政令・省令・規則)を 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 --statusDB のデフォルト配置は ${XDG_CACHE_HOME:-~/.cache}/houki-egov-mcp/laws.db(HOUKI_EGOV_DB_PATH で変更可)。
注: v0.3.1 時点で DB は取り込みまで。
search_fulltextツールから FTS5 を引くのは Phase 2-7(次リリース)です。現状のsearch_fulltextはsearch_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 層は一貫したロジックで解釈できます。
docs/ERROR-CODES.md— 共通エラーコード語彙の正典 (houki-research-skill)docs/ERROR-HANDLING.md— 解釈ポリシー / next_actions テンプレ
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_lawのlaw_nameに渡すと、next_actions[0].example.mcp = "houki-nta"を含むOUT_OF_SCOPEが返されるので、Skill 層は houki-nta-mcp に切り替えてください。
ドキュメント
docs/LAW-HIERARCHY.md— 法令種別の階層リファレンス(専門家でない利用者向け)docs/USE-CASES.md— プロダクト開発の典型ユースケース(電帳法・電子契約・個情法・e-KYC)docs/DESIGN.md— 設計原則・houki-hub family のロードマップ・業法との関係DISCLAIMER.md— 利用上の注意(業法との関係)CONTRIBUTING.md— 貢献方法CHANGELOG.md— リリースノート
業法との関係
本MCPは 一次情報の取得・提示のみ を担います。分析は LLM、判断は利用者(または有資格者)の責任です。業としての法律事務・税務業務への利用は想定外です — 詳細は DISCLAIMER.md 参照。
デジタル庁公式 MCP との関係
デジタル庁は 2025年12月〜2026年3月の「法令×デジタル」ハッカソンで法令API / MCP のプロトタイプを試行提供した。将来一般公開された場合は、本 MCP のコアを公式 MCP に委譲し、houki-hub family 全体は 公式が手を出さないレイヤ(通達・裁決・判例の横断インデックス、業法対応 Skill 等) に注力する方針。
ライセンス
MIT — 個人利用・学習用途のフォーク・改変・再配布を自由に許可します。
ただし、業としての使用(弁護士法72条・税理士法52条・社労士法27条が定める独占業務) については想定外であり、作者は一切の責任を負いません。DISCLAIMER.md を必ずご確認ください。
