building-standards-act-mcp 1.4.0 → 1.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md
CHANGED
|
@@ -560,6 +560,15 @@ e-Gov API は告示を収録していないため、`get_kokuji` は国土交通
|
|
|
560
560
|
| Vercel デプロイ | 対応(MCP-over-HTTP + REST API) |
|
|
561
561
|
| Node.js | >= 20.0.0 |
|
|
562
562
|
|
|
563
|
+
## セキュリティ
|
|
564
|
+
|
|
565
|
+
- **読み取り専用**: 本サーバーは法令テキストの取得のみを行い、書き込み・変更・削除操作は一切ありません
|
|
566
|
+
- **公開データのみ**: e-Gov 法令 API および国土交通省告示データベースから公開情報を取得します。API キーや認証情報は不要です
|
|
567
|
+
- **入力バリデーション**: 全ツールの入力パラメータに文字数上限を設定しています(OWASP MCP Top 10 MCP05 対応)
|
|
568
|
+
- **SSRF 対策**: PDF 取得先を政府ドメイン(`www.mlit.go.jp`)に限定しています
|
|
569
|
+
- **キャッシュ制限**: インメモリキャッシュにエントリ数上限と TTL 自動失効を設定し、メモリ枯渇を防止しています
|
|
570
|
+
- **引用検証**: `verify_citation` ツールで AI が生成した法令引用を条文原文と照合できます
|
|
571
|
+
|
|
563
572
|
## データソース
|
|
564
573
|
|
|
565
574
|
- 法令: [e-Gov 法令検索](https://laws.e-gov.go.jp/)(デジタル庁)
|
|
@@ -20,7 +20,8 @@ export async function checkLawUpdate(resolved) {
|
|
|
20
20
|
// Revisions are sorted newest-first by the API
|
|
21
21
|
const latest = revisions[0];
|
|
22
22
|
// Check for repeal
|
|
23
|
-
if (latest.repeal_status !== "" &&
|
|
23
|
+
if (latest.repeal_status !== "" &&
|
|
24
|
+
latest.repeal_status.toLowerCase() !== "none") {
|
|
24
25
|
return {
|
|
25
26
|
title: resolved.title,
|
|
26
27
|
law_id: resolved.law_id,
|
|
@@ -72,7 +73,9 @@ export async function getLawRevisionHistory(resolved) {
|
|
|
72
73
|
const response = await getLawRevisions(resolved.law_id);
|
|
73
74
|
const latest = response.revisions[0];
|
|
74
75
|
const amendmentDate = latest?.amendment_promulgate_date ?? "";
|
|
75
|
-
const isRepealed = latest &&
|
|
76
|
+
const isRepealed = latest &&
|
|
77
|
+
latest.repeal_status !== "" &&
|
|
78
|
+
latest.repeal_status.toLowerCase() !== "none";
|
|
76
79
|
const hasRevisions = !isRepealed && amendmentDate !== "";
|
|
77
80
|
return {
|
|
78
81
|
title: resolved.title,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"revision-tracker.js","sourceRoot":"","sources":["../../src/lib/revision-tracker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAGnD,MAAM,mBAAmB,GAAG,GAAG,CAAC;AAEhC,SAAS,KAAK,CAAC,EAAU;IACvB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AAC3D,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,QAAqB;IAErB,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,eAAe,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACxD,MAAM,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC;QAErC,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3B,OAAO;gBACL,KAAK,EAAE,QAAQ,CAAC,KAAK;gBACrB,MAAM,EAAE,QAAQ,CAAC,MAAM;gBACvB,MAAM,EAAE,SAAS;aAClB,CAAC;QACJ,CAAC;QAED,+CAA+C;QAC/C,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;QAE5B,mBAAmB;QACnB,
|
|
1
|
+
{"version":3,"file":"revision-tracker.js","sourceRoot":"","sources":["../../src/lib/revision-tracker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAGnD,MAAM,mBAAmB,GAAG,GAAG,CAAC;AAEhC,SAAS,KAAK,CAAC,EAAU;IACvB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AAC3D,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,QAAqB;IAErB,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,eAAe,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACxD,MAAM,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC;QAErC,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3B,OAAO;gBACL,KAAK,EAAE,QAAQ,CAAC,KAAK;gBACrB,MAAM,EAAE,QAAQ,CAAC,MAAM;gBACvB,MAAM,EAAE,SAAS;aAClB,CAAC;QACJ,CAAC;QAED,+CAA+C;QAC/C,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;QAE5B,mBAAmB;QACnB,IACE,MAAM,CAAC,aAAa,KAAK,EAAE;YAC3B,MAAM,CAAC,aAAa,CAAC,WAAW,EAAE,KAAK,MAAM,EAC7C,CAAC;YACD,OAAO;gBACL,KAAK,EAAE,QAAQ,CAAC,KAAK;gBACrB,MAAM,EAAE,QAAQ,CAAC,MAAM;gBACvB,MAAM,EAAE,UAAU;gBAClB,qBAAqB,EAAE,MAAM,CAAC,yBAAyB;gBACvD,oBAAoB,EAClB,MAAM,CAAC,mBAAmB,IAAI,MAAM,CAAC,iBAAiB;aACzD,CAAC;QACJ,CAAC;QAED,iCAAiC;QACjC,MAAM,aAAa,GAAG,MAAM,CAAC,yBAAyB,CAAC;QACvD,MAAM,YAAY,GAAG,aAAa,KAAK,EAAE,CAAC;QAE1C,OAAO;YACL,KAAK,EAAE,QAAQ,CAAC,KAAK;YACrB,MAAM,EAAE,QAAQ,CAAC,MAAM;YACvB,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS;YAClD,qBAAqB,EAAE,aAAa,IAAI,SAAS;YACjD,oBAAoB,EAClB,MAAM,CAAC,mBAAmB,IAAI,MAAM,CAAC,iBAAiB,IAAI,SAAS;SACtE,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO;YACL,KAAK,EAAE,QAAQ,CAAC,KAAK;YACrB,MAAM,EAAE,QAAQ,CAAC,MAAM;YACvB,MAAM,EAAE,OAAO;YACf,aAAa,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;SACtE,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,YAA2B;IAE3B,MAAM,OAAO,GAA2B,EAAE,CAAC;IAE3C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC7C,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;QACrD,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAErB,kEAAkE;QAClE,IAAI,CAAC,GAAG,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAChC,MAAM,KAAK,CAAC,mBAAmB,CAAC,CAAC;QACnC,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,QAAqB;IAErB,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,eAAe,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAExD,MAAM,MAAM,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QACrC,MAAM,aAAa,GAAG,MAAM,EAAE,yBAAyB,IAAI,EAAE,CAAC;QAC9D,MAAM,UAAU,GACd,MAAM;YACN,MAAM,CAAC,aAAa,KAAK,EAAE;YAC3B,MAAM,CAAC,aAAa,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC;QAChD,MAAM,YAAY,GAAG,CAAC,UAAU,IAAI,aAAa,KAAK,EAAE,CAAC;QAEzD,OAAO;YACL,KAAK,EAAE,QAAQ,CAAC,KAAK;YACrB,MAAM,EAAE,QAAQ,CAAC,MAAM;YACvB,MAAM,EAAE,UAAU;gBAChB,CAAC,CAAC,UAAU;gBACZ,CAAC,CAAC,YAAY;oBACZ,CAAC,CAAC,eAAe;oBACjB,CAAC,CAAC,SAAS;YACf,qBAAqB,EAAE,aAAa,IAAI,SAAS;YACjD,oBAAoB,EAClB,MAAM,EAAE,mBAAmB,IAAI,MAAM,EAAE,iBAAiB,IAAI,SAAS;YACvE,SAAS,EAAE,QAAQ,CAAC,SAAS;SAC9B,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO;YACL,KAAK,EAAE,QAAQ,CAAC,KAAK;YACrB,MAAM,EAAE,QAAQ,CAAC,MAAM;YACvB,MAAM,EAAE,OAAO;YACf,aAAa,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;SACtE,CAAC;IACJ,CAAC;AACH,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "building-standards-act-mcp",
|
|
3
|
-
"version": "1.4.
|
|
3
|
+
"version": "1.4.1",
|
|
4
4
|
"description": "MCP server for Japanese building regulations — fetches law text from e-Gov API v2 to prevent AI hallucination in building permit reviews",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|