building-standards-act-mcp 1.1.1 → 1.1.2
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/dist/lib/mlit-client.js +11 -2
- package/dist/lib/mlit-client.js.map +1 -1
- package/dist/lib/pdf-extractor.d.ts +1 -0
- package/dist/lib/pdf-extractor.js +51 -8
- package/dist/lib/pdf-extractor.js.map +1 -1
- package/dist/tools/get-kokuji.js +25 -3
- package/dist/tools/get-kokuji.js.map +1 -1
- package/package.json +1 -1
package/dist/lib/mlit-client.js
CHANGED
|
@@ -4,6 +4,8 @@ const MLIT_NOTICE_URL = "https://www.mlit.go.jp/notice/";
|
|
|
4
4
|
const EXCEL_URL_CACHE_TTL = 6 * 60 * 60 * 1000; // 6 hours
|
|
5
5
|
const EXCEL_DATA_CACHE_TTL = 6 * 60 * 60 * 1000; // 6 hours
|
|
6
6
|
const REQUEST_TIMEOUT = 30_000; // 30 seconds
|
|
7
|
+
// User-Agent for MLIT requests — some government sites block requests without it
|
|
8
|
+
const MLIT_USER_AGENT = "BuildingStandardsActMCP/1.1 (https://github.com/Sora-bluesky/building-standards-act-mcp)";
|
|
7
9
|
// Column indices in the Excel spreadsheet (0-based)
|
|
8
10
|
const COL_TITLE = 0;
|
|
9
11
|
const COL_DOCUMENT_NUMBER = 1;
|
|
@@ -15,6 +17,7 @@ const excelUrlCache = createCache("mlit-excel-url", EXCEL_URL_CACHE_TTL);
|
|
|
15
17
|
const excelDataCache = createCache("mlit-excel-data", EXCEL_DATA_CACHE_TTL);
|
|
16
18
|
const EXCEL_URL_CACHE_KEY = "mlit:excel_url";
|
|
17
19
|
const EXCEL_DATA_CACHE_KEY = "mlit:excel_data";
|
|
20
|
+
const FETCH_HEADERS = { "User-Agent": MLIT_USER_AGENT };
|
|
18
21
|
/**
|
|
19
22
|
* Fetch binary data from a URL with timeout and abort handling.
|
|
20
23
|
*/
|
|
@@ -22,7 +25,10 @@ async function fetchBuffer(url) {
|
|
|
22
25
|
const controller = new AbortController();
|
|
23
26
|
const timeout = setTimeout(() => controller.abort(), REQUEST_TIMEOUT);
|
|
24
27
|
try {
|
|
25
|
-
const response = await fetch(url, {
|
|
28
|
+
const response = await fetch(url, {
|
|
29
|
+
signal: controller.signal,
|
|
30
|
+
headers: FETCH_HEADERS,
|
|
31
|
+
});
|
|
26
32
|
if (!response.ok) {
|
|
27
33
|
return null;
|
|
28
34
|
}
|
|
@@ -42,7 +48,10 @@ async function fetchText(url) {
|
|
|
42
48
|
const controller = new AbortController();
|
|
43
49
|
const timeout = setTimeout(() => controller.abort(), REQUEST_TIMEOUT);
|
|
44
50
|
try {
|
|
45
|
-
const response = await fetch(url, {
|
|
51
|
+
const response = await fetch(url, {
|
|
52
|
+
signal: controller.signal,
|
|
53
|
+
headers: FETCH_HEADERS,
|
|
54
|
+
});
|
|
46
55
|
if (!response.ok) {
|
|
47
56
|
return null;
|
|
48
57
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mlit-client.js","sourceRoot":"","sources":["../../src/lib/mlit-client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEzC,MAAM,eAAe,GAAG,gCAAgC,CAAC;AACzD,MAAM,mBAAmB,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,UAAU;AAC1D,MAAM,oBAAoB,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,UAAU;AAC3D,MAAM,eAAe,GAAG,MAAM,CAAC,CAAC,aAAa;
|
|
1
|
+
{"version":3,"file":"mlit-client.js","sourceRoot":"","sources":["../../src/lib/mlit-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Download a PDF from a URL and extract its text content.
|
|
3
|
+
* Uses pdfjs-dist directly with worker configured for serverless compatibility.
|
|
3
4
|
* Results are cached for 24 hours to avoid redundant downloads.
|
|
4
5
|
*
|
|
5
6
|
* @param pdfUrl - The URL of the PDF to download and parse
|
|
@@ -1,6 +1,31 @@
|
|
|
1
1
|
import { createCache } from "./cache.js";
|
|
2
|
+
// Polyfill DOMMatrix for serverless environments (Vercel Node 20/22).
|
|
3
|
+
// pdfjs-dist uses DOMMatrix for text position calculations during extraction.
|
|
4
|
+
// A minimal stub is sufficient — we only need the raw text, not coordinates.
|
|
5
|
+
if (typeof globalThis.DOMMatrix === "undefined") {
|
|
6
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
7
|
+
globalThis.DOMMatrix = class DOMMatrix {
|
|
8
|
+
m11 = 1;
|
|
9
|
+
m12 = 0;
|
|
10
|
+
m21 = 0;
|
|
11
|
+
m22 = 1;
|
|
12
|
+
m41 = 0;
|
|
13
|
+
m42 = 0;
|
|
14
|
+
constructor(init) {
|
|
15
|
+
if (init && init.length >= 6) {
|
|
16
|
+
this.m11 = init[0];
|
|
17
|
+
this.m12 = init[1];
|
|
18
|
+
this.m21 = init[2];
|
|
19
|
+
this.m22 = init[3];
|
|
20
|
+
this.m41 = init[4];
|
|
21
|
+
this.m42 = init[5];
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
}
|
|
2
26
|
const PDF_TEXT_CACHE_TTL = 24 * 60 * 60 * 1000; // 24 hours
|
|
3
27
|
const REQUEST_TIMEOUT = 30_000; // 30 seconds
|
|
28
|
+
const PDF_USER_AGENT = "BuildingStandardsActMCP/1.1 (https://github.com/Sora-bluesky/building-standards-act-mcp)";
|
|
4
29
|
const pdfTextCache = createCache("pdf-text", PDF_TEXT_CACHE_TTL);
|
|
5
30
|
/**
|
|
6
31
|
* Fetch a PDF binary from a URL with timeout handling.
|
|
@@ -13,7 +38,10 @@ async function fetchPdfBuffer(url) {
|
|
|
13
38
|
const controller = new AbortController();
|
|
14
39
|
const timeout = setTimeout(() => controller.abort(), REQUEST_TIMEOUT);
|
|
15
40
|
try {
|
|
16
|
-
const response = await fetch(url, {
|
|
41
|
+
const response = await fetch(url, {
|
|
42
|
+
signal: controller.signal,
|
|
43
|
+
headers: { "User-Agent": PDF_USER_AGENT },
|
|
44
|
+
});
|
|
17
45
|
if (!response.ok) {
|
|
18
46
|
throw new Error(`PDF取得に失敗しました (HTTP ${response.status}): ${url}`);
|
|
19
47
|
}
|
|
@@ -43,6 +71,7 @@ function normalizeText(raw) {
|
|
|
43
71
|
}
|
|
44
72
|
/**
|
|
45
73
|
* Download a PDF from a URL and extract its text content.
|
|
74
|
+
* Uses pdfjs-dist directly with worker configured for serverless compatibility.
|
|
46
75
|
* Results are cached for 24 hours to avoid redundant downloads.
|
|
47
76
|
*
|
|
48
77
|
* @param pdfUrl - The URL of the PDF to download and parse
|
|
@@ -56,13 +85,27 @@ export async function extractTextFromPdf(pdfUrl) {
|
|
|
56
85
|
return cached;
|
|
57
86
|
}
|
|
58
87
|
const data = await fetchPdfBuffer(pdfUrl);
|
|
59
|
-
// Lazy import:
|
|
60
|
-
//
|
|
61
|
-
const
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
88
|
+
// Lazy import: pdfjs-dist may need native-like APIs (DOMMatrix, etc.).
|
|
89
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
90
|
+
const pdfjsLib = await import("pdfjs-dist/legacy/build/pdf.mjs");
|
|
91
|
+
// Resolve worker path relative to the pdfjs-dist package.
|
|
92
|
+
// import.meta.resolve returns a file:// URL that works across platforms.
|
|
93
|
+
// In test environments (vitest) import.meta.resolve may not exist.
|
|
94
|
+
if (typeof import.meta.resolve === "function") {
|
|
95
|
+
const workerSrc = import.meta
|
|
96
|
+
.resolve("pdfjs-dist/legacy/build/pdf.worker.mjs");
|
|
97
|
+
pdfjsLib.GlobalWorkerOptions.workerSrc = workerSrc;
|
|
98
|
+
}
|
|
99
|
+
const doc = await pdfjsLib.getDocument({ data }).promise;
|
|
100
|
+
let fullText = "";
|
|
101
|
+
for (let i = 1; i <= doc.numPages; i++) {
|
|
102
|
+
const page = await doc.getPage(i);
|
|
103
|
+
const content = await page.getTextContent();
|
|
104
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
105
|
+
const pageText = content.items.map((item) => item.str).join("");
|
|
106
|
+
fullText += pageText + "\n";
|
|
107
|
+
}
|
|
108
|
+
const text = normalizeText(fullText);
|
|
66
109
|
if (!text) {
|
|
67
110
|
throw new Error(`PDFからテキストを抽出できませんでした: ${pdfUrl}`);
|
|
68
111
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pdf-extractor.js","sourceRoot":"","sources":["../../src/lib/pdf-extractor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEzC,MAAM,kBAAkB,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,WAAW;AAC3D,MAAM,eAAe,GAAG,MAAM,CAAC,CAAC,aAAa;
|
|
1
|
+
{"version":3,"file":"pdf-extractor.js","sourceRoot":"","sources":["../../src/lib/pdf-extractor.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/get-kokuji.js
CHANGED
|
@@ -14,16 +14,28 @@ const schema = {
|
|
|
14
14
|
* Attempt to fetch kokuji text via the MLIT pipeline:
|
|
15
15
|
* 1. Find the PDF URL from the MLIT Excel notice database
|
|
16
16
|
* 2. Download the PDF and extract text
|
|
17
|
+
*
|
|
18
|
+
* Returns the text on success, or null with diagnostic info on failure.
|
|
17
19
|
*/
|
|
18
|
-
async function fetchViaMlit(title) {
|
|
20
|
+
async function fetchViaMlit(title, diagnostic) {
|
|
19
21
|
const pdfUrl = await findKokujiPdfUrl(title);
|
|
22
|
+
if (diagnostic) {
|
|
23
|
+
diagnostic.pdfUrl = pdfUrl;
|
|
24
|
+
}
|
|
20
25
|
if (!pdfUrl) {
|
|
26
|
+
if (diagnostic) {
|
|
27
|
+
diagnostic.error = "MLIT Excel から PDF URL が見つかりませんでした";
|
|
28
|
+
}
|
|
21
29
|
return null;
|
|
22
30
|
}
|
|
23
31
|
try {
|
|
24
32
|
return await extractTextFromPdf(pdfUrl);
|
|
25
33
|
}
|
|
26
|
-
catch {
|
|
34
|
+
catch (err) {
|
|
35
|
+
if (diagnostic) {
|
|
36
|
+
diagnostic.error =
|
|
37
|
+
err instanceof Error ? err.message : "PDF テキスト抽出に失敗";
|
|
38
|
+
}
|
|
27
39
|
return null;
|
|
28
40
|
}
|
|
29
41
|
}
|
|
@@ -57,7 +69,8 @@ export function registerGetKokujiTool(server) {
|
|
|
57
69
|
const preset = registry.findByName(kokuji_name);
|
|
58
70
|
if (preset) {
|
|
59
71
|
// Step 2a: Try MLIT pipeline (Excel → PDF → text)
|
|
60
|
-
const
|
|
72
|
+
const diag = { pdfUrl: null, error: null };
|
|
73
|
+
const mlitText = await fetchViaMlit(preset.title, diag);
|
|
61
74
|
if (mlitText) {
|
|
62
75
|
const text = [
|
|
63
76
|
`【告示】${preset.title}`,
|
|
@@ -95,6 +108,13 @@ export function registerGetKokujiTool(server) {
|
|
|
95
108
|
}
|
|
96
109
|
}
|
|
97
110
|
// Preset found but no text available from any source
|
|
111
|
+
const diagLines = [];
|
|
112
|
+
if (diag.pdfUrl) {
|
|
113
|
+
diagLines.push(`PDF URL: ${diag.pdfUrl}`);
|
|
114
|
+
}
|
|
115
|
+
if (diag.error) {
|
|
116
|
+
diagLines.push(`原因: ${diag.error}`);
|
|
117
|
+
}
|
|
98
118
|
const text = [
|
|
99
119
|
`【告示】${preset.title}`,
|
|
100
120
|
`法令番号: ${preset.law_num}`,
|
|
@@ -103,6 +123,8 @@ export function registerGetKokujiTool(server) {
|
|
|
103
123
|
"告示本文の取得に失敗しました。",
|
|
104
124
|
"国土交通省の告示データベース(PDF)および e-Gov 法令検索の",
|
|
105
125
|
"いずれからも取得できませんでした。",
|
|
126
|
+
...(diagLines.length > 0 ? ["", "診断情報:", ...diagLines] : []),
|
|
127
|
+
"",
|
|
106
128
|
"ネットワーク接続を確認するか、時間をおいて再度お試しください。",
|
|
107
129
|
].join("\n");
|
|
108
130
|
return { content: [{ type: "text", text }] };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-kokuji.js","sourceRoot":"","sources":["../../src/tools/get-kokuji.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAErD,MAAM,QAAQ,GAAG,IAAI,cAAc,EAAE,CAAC;AAEtC,MAAM,MAAM,GAAG;IACb,WAAW,EAAE,CAAC;SACX,MAAM,EAAE;SACR,QAAQ,CAAC,kCAAkC,CAAC;CAChD,CAAC;
|
|
1
|
+
{"version":3,"file":"get-kokuji.js","sourceRoot":"","sources":["../../src/tools/get-kokuji.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "building-standards-act-mcp",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.2",
|
|
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",
|