building-standards-act-mcp 1.9.0 → 1.9.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/README.md +18 -4
- package/dist/lib/egov-client.d.ts +1 -0
- package/dist/lib/egov-client.js +15 -3
- package/dist/lib/egov-client.js.map +1 -1
- package/dist/lib/resilience.js +1 -1
- package/dist/lib/resilience.js.map +1 -1
- package/dist/lib/tool-helpers.d.ts +7 -0
- package/dist/lib/tool-helpers.js +18 -5
- package/dist/lib/tool-helpers.js.map +1 -1
- package/dist/lib/types.d.ts +10 -0
- package/dist/lib/version.d.ts +1 -1
- package/dist/lib/version.js +1 -1
- package/dist/server.js +3 -3
- package/dist/tools/get-law.js +60 -7
- package/dist/tools/get-law.js.map +1 -1
- package/dist/tools/get-laws-batch.js +91 -7
- package/dist/tools/get-laws-batch.js.map +1 -1
- package/dist/tools/search-articles.js +11 -4
- package/dist/tools/search-articles.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -138,13 +138,13 @@ npm run build
|
|
|
138
138
|
|
|
139
139
|
| ツール | 説明 |
|
|
140
140
|
| ------------------- | --------------------------------------------------------------------------------------------------------------- |
|
|
141
|
-
| `get_law` |
|
|
141
|
+
| `get_law` | 条番号を指定して条文を取得する。`format=text` は本文と参照一覧(`references`)を合わせて `max_chars`(既定 100,000)で制限し、本文の続きは `offset` で取得 |
|
|
142
142
|
| `get_full_law` | 法令の全文を取得する。`max_chars`(既定 100,000)で区切り、続きは `offset` で取る |
|
|
143
143
|
| `search_law` | 法令名(タイトル)で建築関連法令を検索する。略称マップと e-Gov API の両方を検索。条文本文の検索は `search_articles` |
|
|
144
|
-
| `search_articles` | 条文本文をキーワードで全文検索する(e-Gov `/keyword
|
|
144
|
+
| `search_articles` | 条文本文をキーワードで全文検索する(e-Gov `/keyword`)。半角スペース区切りで AND 検索。AND・OR・NOT は演算子ではなく検索語として扱われる。全角スペースは半角に直して送る。法令名で絞り込み可。条番号は `get_law` で確定する |
|
|
145
145
|
| `get_kokuji` | 建築基準法が技術基準を委任している告示の全文を取得する(省エネ告示は国交省 PDF から直接取得) |
|
|
146
146
|
| `check_law_updates` | 法令の改正状況を e-Gov API で確認する。`since`(既定は 12 か月前)より後の改正だけを「改正あり」にする |
|
|
147
|
-
| `get_laws_batch` |
|
|
147
|
+
| `get_laws_batch` | 複数条文を一括取得(最大20件)。`max_chars_per_item`(最大 30,000、既定 8,000)で切り詰め、`max_total_chars`(既定 40,000)を超える後続本文は省略。長い条(例: 建築基準法施行規則 第1条の3)は `get_law` で個別に取得 |
|
|
148
148
|
| `verify_citation` | AIの回答に含まれる法令引用を検証する(条文存在確認・テキスト照合、最大10件) |
|
|
149
149
|
| `suggest_related` | 指定した条文の関連法令・委任先・同法令内参照を自動抽出して提案する |
|
|
150
150
|
| `analyze_article` | 条文の構造解析メタデータ(項数・号数・参照統計・プレビュー)をJSON形式で返す |
|
|
@@ -159,6 +159,12 @@ npm run build
|
|
|
159
159
|
| `law_name` | 法令名(正式名称または略称) | `建築基準法`, `建基法` |
|
|
160
160
|
| `article_number` | 条文番号(附則・別表にも対応) | `第20条`, `附則`, `別表第一` |
|
|
161
161
|
| `format` | 出力形式(`text` または `structured`、省略時は `text`) | `structured` |
|
|
162
|
+
| `max_chars` | 本文と参照一覧(`references`)を合わせた最大文字数(1,000〜500,000、既定 100,000)。`format=text` のみ | `8000` |
|
|
163
|
+
| `offset` | 本文内の開始位置(既定 0)。`format=text` のみ。続きは `next_offset` を指定 | `8000` |
|
|
164
|
+
|
|
165
|
+
`offset` は見出し・参照・出典を含まない本文内の文字位置です。`get_laws_batch` の `next_offset` をそのまま指定できます。
|
|
166
|
+
|
|
167
|
+
参照一覧はページ内の本文に現れる参照に絞ったうえで、本文と参照のJSONの長さの合計が `max_chars` に収まる順序どおりの先頭部分だけを表示し、表示が0件なら `article` の `references` キーを省略します。参照を省略した場合は `references_total` と `references_truncated: true`、表示件数の案内を返し、関連法令の一覧は `suggest_related` でも確認できます。
|
|
162
168
|
|
|
163
169
|
#### `get_full_law`
|
|
164
170
|
|
|
@@ -178,11 +184,13 @@ npm run build
|
|
|
178
184
|
|
|
179
185
|
| パラメータ | 説明 | 例 |
|
|
180
186
|
| ----------- | ------------------------------------------------------------ | ---------------------- |
|
|
181
|
-
| `keyword` |
|
|
187
|
+
| `keyword` | 条文本文に含まれる語。半角スペース区切りで AND 検索。AND・OR・NOT は演算子ではなく検索語として扱われる。全角スペースは半角に直して送る。`*` `?` のワイルドカードが使える | `準耐火構造 外壁`, `壁量` |
|
|
182
188
|
| `law_title` | 法令名または略称で絞り込み(省略時は e-Gov の全法令) | `建築基準法` |
|
|
183
189
|
| `limit` | 返す該当文の数(既定 10、最大 50) | `20` |
|
|
184
190
|
| `offset` | 続きを取るときの開始位置(応答の `next_offset` を渡す) | `10` |
|
|
185
191
|
|
|
192
|
+
連続する空白は半角スペース1つにまとめ、前後の空白を除いて検索します。正規化後に検索語が空の場合は入力エラーを返し、検索結果が0件の場合は通信エラーと区別して「該当する条文はありませんでした。」と返します。
|
|
193
|
+
|
|
186
194
|
#### `get_kokuji`
|
|
187
195
|
|
|
188
196
|
| パラメータ | 説明 | 例 |
|
|
@@ -205,6 +213,12 @@ npm run build
|
|
|
205
213
|
| パラメータ | 説明 | 例 |
|
|
206
214
|
| ---------- | ---------------------------------------------------------------------- | --- |
|
|
207
215
|
| `requests` | 取得対象の配列。各要素に `law_name`, `article_number`, `format` を指定 | — |
|
|
216
|
+
| `max_chars_per_item` | 条文ごとの最大文字数(1,000〜30,000、既定 8,000)。構造化形式はJSONの長さを基準に項単位で切り詰め | `8000` |
|
|
217
|
+
| `max_total_chars` | 応答全体のJSONの最大文字数(10,000〜500,000、既定 40,000)。超過する後続本文は省略 | `40000` |
|
|
218
|
+
|
|
219
|
+
切り詰めたテキストの続きは、案内された `offset` を `get_law` に指定して取得します。本文を省略した結果は `omitted: true` と省略一覧で示します。取得の成功・失敗件数は本文の省略によって変わりません。
|
|
220
|
+
|
|
221
|
+
長い条(例: 建築基準法施行規則 第1条の3)は `get_law` で個別に取得してください。
|
|
208
222
|
|
|
209
223
|
#### `verify_citation`
|
|
210
224
|
|
|
@@ -17,6 +17,7 @@ export declare function getLawData(lawId: string): Promise<EgovLawDataResponse>;
|
|
|
17
17
|
export declare function getLawArticle(lawId: string, elm: string): Promise<EgovLawDataResponse | null>;
|
|
18
18
|
/** Revision IDs use the same endpoint and cache as law IDs. */
|
|
19
19
|
export declare function getLawDataByRevision(revisionId: string): Promise<EgovLawDataResponse>;
|
|
20
|
+
export declare function normalizeKeyword(keyword: string): string;
|
|
20
21
|
/** Search article text, with pagination measured in sentences. */
|
|
21
22
|
export declare function searchKeyword(params: {
|
|
22
23
|
keyword: string;
|
package/dist/lib/egov-client.js
CHANGED
|
@@ -35,7 +35,7 @@ async function fetchJsonRaw(url) {
|
|
|
35
35
|
});
|
|
36
36
|
if (!response.ok) {
|
|
37
37
|
let egovCode;
|
|
38
|
-
if (response.status === 400) {
|
|
38
|
+
if (response.status === 400 || response.status === 404) {
|
|
39
39
|
try {
|
|
40
40
|
const body = await response.json();
|
|
41
41
|
if (body && typeof body === "object" &&
|
|
@@ -144,10 +144,13 @@ export async function getLawArticle(lawId, elm) {
|
|
|
144
144
|
export function getLawDataByRevision(revisionId) {
|
|
145
145
|
return getLawData(revisionId);
|
|
146
146
|
}
|
|
147
|
+
export function normalizeKeyword(keyword) {
|
|
148
|
+
return keyword.replace(/\s+/g, " ").trim();
|
|
149
|
+
}
|
|
147
150
|
/** Search article text, with pagination measured in sentences. */
|
|
148
151
|
export async function searchKeyword(params) {
|
|
149
152
|
const query = new URLSearchParams({
|
|
150
|
-
keyword: params.keyword,
|
|
153
|
+
keyword: normalizeKeyword(params.keyword),
|
|
151
154
|
limit: String(params.limit),
|
|
152
155
|
offset: String(params.offset),
|
|
153
156
|
sentence_text_size: String(params.sentenceTextSize ?? 200),
|
|
@@ -160,7 +163,16 @@ export async function searchKeyword(params) {
|
|
|
160
163
|
recordCacheHit("keyword", !!cached);
|
|
161
164
|
if (cached)
|
|
162
165
|
return cached;
|
|
163
|
-
|
|
166
|
+
let result;
|
|
167
|
+
try {
|
|
168
|
+
result = await fetchJson(`${BASE_URL}/keyword?${cacheKey}`);
|
|
169
|
+
}
|
|
170
|
+
catch (error) {
|
|
171
|
+
if (!(error instanceof EgovApiError && error.statusCode === 404 && error.egovCode === "404001")) {
|
|
172
|
+
throw error;
|
|
173
|
+
}
|
|
174
|
+
result = { total_count: 0, sentence_count: 0, next_offset: null, items: [] };
|
|
175
|
+
}
|
|
164
176
|
result.next_offset = result.next_offset ?? null;
|
|
165
177
|
keywordCache.set(cacheKey, result);
|
|
166
178
|
return result;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"egov-client.js","sourceRoot":"","sources":["../../src/lib/egov-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC7D,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAQ5D,MAAM,QAAQ,GAAG,gCAAgC,CAAC;AAClD,MAAM,gBAAgB,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,aAAa;AACtD,MAAM,kBAAkB,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,WAAW;AAC3D,MAAM,mBAAmB,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,SAAS;AACrD,MAAM,eAAe,GACnB,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,IAAI,MAAM,CAAC,CAAC,aAAa;AAE3E,MAAM,WAAW,GAAG,WAAW,CAC7B,QAAQ,EACR,gBAAgB,CACjB,CAAC;AACF,MAAM,YAAY,GAAG,WAAW,CAC9B,UAAU,EACV,kBAAkB,CACnB,CAAC;AACF,MAAM,cAAc,GAAG,WAAW,CAChC,WAAW,EACX,mBAAmB,CACpB,CAAC;AACF,MAAM,YAAY,GAAG,WAAW,CAC9B,SAAS,EACT,gBAAgB,CACjB,CAAC;AAEF,MAAM,cAAc,GAAG,IAAI,cAAc,EAAE,CAAC;AAE5C,2CAA2C;AAC3C,IAAI,YAAY,GAAoD,EAAE,CAAC;AAEvE,mDAAmD;AACnD,MAAM,UAAU,gBAAgB,CAC9B,IAAqD;IAErD,YAAY,GAAG,IAAI,CAAC;AACtB,CAAC;AAED,sDAAsD;AACtD,MAAM,UAAU,oBAAoB;IAClC,cAAc,CAAC,KAAK,EAAE,CAAC;AACzB,CAAC;AAED,KAAK,UAAU,YAAY,CAAI,GAAW;IACxC,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;IACzC,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,eAAe,CAAC,CAAC;IAEtE,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;YAChC,MAAM,EAAE,UAAU,CAAC,MAAM;YACzB,OAAO,EAAE;gBACP,MAAM,EAAE,kBAAkB;aAC3B;SACF,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,IAAI,QAA4B,CAAC;YACjC,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"egov-client.js","sourceRoot":"","sources":["../../src/lib/egov-client.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/resilience.js
CHANGED
|
@@ -85,7 +85,7 @@ export class CircuitBreaker {
|
|
|
85
85
|
return result;
|
|
86
86
|
}
|
|
87
87
|
catch (error) {
|
|
88
|
-
if (!(error instanceof EgovApiError && error.statusCode === 400)) {
|
|
88
|
+
if (!(error instanceof EgovApiError && (error.statusCode === 400 || (error.statusCode === 404 && error.egovCode)))) {
|
|
89
89
|
this.onFailure();
|
|
90
90
|
}
|
|
91
91
|
throw error;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resilience.js","sourceRoot":"","sources":["../../src/lib/resilience.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"resilience.js","sourceRoot":"","sources":["../../src/lib/resilience.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAW3C,MAAM,qBAAqB,GAAiB;IAC1C,UAAU,EAAE,CAAC;IACb,cAAc,EAAE,IAAI;IACpB,UAAU,EAAE,CAAC;IACb,MAAM,EAAE,IAAI;CACb,CAAC;AAEF,qDAAqD;AACrD,MAAM,sBAAsB,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;AAElE,SAAS,gBAAgB,CAAC,KAAc;IACtC,IAAI,KAAK,YAAY,YAAY,IAAI,KAAK,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;QACpE,OAAO,sBAAsB,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IACtD,CAAC;IACD,gDAAgD;IAChD,IAAI,KAAK,YAAY,YAAY,IAAI,KAAK,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;QACpE,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,cAAc,CAAC,OAAe,EAAE,OAAqB;IAC5D,MAAM,SAAS,GAAG,OAAO,CAAC,cAAc,GAAG,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC;IACzE,MAAM,WAAW,GAAG,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC;IAC/C,MAAM,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,WAAW,CAAC;IACrD,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC,CAAC;AACzC,CAAC;AAED,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;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,EAAoB,EACpB,UAAiC,EAAE;IAEnC,MAAM,IAAI,GAAG,EAAE,GAAG,qBAAqB,EAAE,GAAG,OAAO,EAAE,CAAC;IACtD,IAAI,SAAkB,CAAC;IAEvB,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,IAAI,CAAC,UAAU,EAAE,OAAO,EAAE,EAAE,CAAC;QAC5D,IAAI,CAAC;YACH,OAAO,MAAM,EAAE,EAAE,CAAC;QACpB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,SAAS,GAAG,KAAK,CAAC;YAElB,IAAI,OAAO,IAAI,IAAI,CAAC,UAAU,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC3D,MAAM,KAAK,CAAC;YACd,CAAC;YAED,MAAM,KAAK,GAAG,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YAC5C,MAAM,KAAK,CAAC,KAAK,CAAC,CAAC;QACrB,CAAC;IACH,CAAC;IAED,MAAM,SAAS,CAAC;AAClB,CAAC;AAWD,MAAM,kBAAkB,GAA0B;IAChD,gBAAgB,EAAE,CAAC;IACnB,cAAc,EAAE,MAAM;CACvB,CAAC;AAEF,MAAM,OAAO,cAAc;IACjB,KAAK,GAAiB,QAAQ,CAAC;IAC/B,YAAY,GAAG,CAAC,CAAC;IACjB,eAAe,GAAG,CAAC,CAAC;IACX,OAAO,CAAwB;IAEhD,YAAY,UAA0C,EAAE;QACtD,IAAI,CAAC,OAAO,GAAG,EAAE,GAAG,kBAAkB,EAAE,GAAG,OAAO,EAAE,CAAC;IACvD,CAAC;IAED,QAAQ;QACN,IAAI,IAAI,CAAC,KAAK,KAAK,MAAM,EAAE,CAAC;YAC1B,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,eAAe,CAAC;YAClD,IAAI,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC;gBAC3C,IAAI,CAAC,KAAK,GAAG,WAAW,CAAC;YAC3B,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,OAAO,CAAI,EAAoB;QACnC,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QAErC,IAAI,YAAY,KAAK,MAAM,EAAE,CAAC;YAC5B,MAAM,IAAI,YAAY,CACpB,4CAA4C,EAC5C,SAAS,EACT,SAAS,CACV,CAAC;QACJ,CAAC;QAED,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,EAAE,EAAE,CAAC;YAC1B,IAAI,CAAC,SAAS,EAAE,CAAC;YACjB,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,CAAC,KAAK,YAAY,YAAY,IAAI,CACrC,KAAK,CAAC,UAAU,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,KAAK,GAAG,IAAI,KAAK,CAAC,QAAQ,CAAC,CACzE,CAAC,EAAE,CAAC;gBACH,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAEO,SAAS;QACf,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;QACtB,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC;IACxB,CAAC;IAEO,SAAS;QACf,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAElC,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC;YACvD,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC;QACtB,CAAC;IACH,CAAC;IAED,iDAAiD;IACjD,KAAK;QACH,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC;QACtB,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;QACtB,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC;IAC3B,CAAC;CACF"}
|
|
@@ -11,6 +11,13 @@ export declare function paginateText(text: string, offset: number, maxChars: num
|
|
|
11
11
|
offset: number;
|
|
12
12
|
next_offset: number | null;
|
|
13
13
|
};
|
|
14
|
+
/** Prefer a line boundary in the second half of the page, without adding a note. */
|
|
15
|
+
export declare function paginateAtLineBoundary(text: string, offset: number, maxChars: number): {
|
|
16
|
+
text: string;
|
|
17
|
+
total_chars: number;
|
|
18
|
+
offset: number;
|
|
19
|
+
next_offset: number | null;
|
|
20
|
+
};
|
|
14
21
|
export declare const TOOL_ANNOTATIONS: {
|
|
15
22
|
readonly readOnlyHint: true;
|
|
16
23
|
readonly destructiveHint: false;
|
package/dist/lib/tool-helpers.js
CHANGED
|
@@ -8,8 +8,7 @@ import { recordToolCall } from "./metrics.js";
|
|
|
8
8
|
import { LawNotFoundError, ArticleNotFoundError, KokujiNotFoundError, } from "./errors.js";
|
|
9
9
|
import { EgovApiError } from "./errors.js";
|
|
10
10
|
export const DEFAULT_MAX_CHARS = 100_000;
|
|
11
|
-
|
|
12
|
-
export function paginateText(text, offset, maxChars) {
|
|
11
|
+
function paginate(text, offset, maxChars, atLineBoundary) {
|
|
13
12
|
const total_chars = text.length;
|
|
14
13
|
if (offset >= total_chars && total_chars > 0) {
|
|
15
14
|
return {
|
|
@@ -32,11 +31,25 @@ export function paginateText(text, offset, maxChars) {
|
|
|
32
31
|
// A one-unit page must still advance past a complete pair.
|
|
33
32
|
end += end - offset === 1 ? 1 : -1;
|
|
34
33
|
}
|
|
34
|
+
if (atLineBoundary && end < total_chars) {
|
|
35
|
+
const newline = text.lastIndexOf("\n", end - 1);
|
|
36
|
+
if (newline > offset + maxChars / 2)
|
|
37
|
+
end = newline + 1;
|
|
38
|
+
}
|
|
35
39
|
const next_offset = end < total_chars ? end : null;
|
|
36
|
-
|
|
40
|
+
return { text: text.slice(offset, end), total_chars, offset, next_offset };
|
|
41
|
+
}
|
|
42
|
+
/** Paginate UTF-16 text without cutting a surrogate pair. */
|
|
43
|
+
export function paginateText(text, offset, maxChars) {
|
|
44
|
+
const page = paginate(text, offset, maxChars, false);
|
|
45
|
+
const note = page.next_offset === null
|
|
37
46
|
? ""
|
|
38
|
-
: `\n\n(続きがあります。offset=${next_offset} を指定して続きを取得してください。全体 ${total_chars} 文字)`;
|
|
39
|
-
return { text: text
|
|
47
|
+
: `\n\n(続きがあります。offset=${page.next_offset} を指定して続きを取得してください。全体 ${page.total_chars} 文字)`;
|
|
48
|
+
return { ...page, text: page.text + note };
|
|
49
|
+
}
|
|
50
|
+
/** Prefer a line boundary in the second half of the page, without adding a note. */
|
|
51
|
+
export function paginateAtLineBoundary(text, offset, maxChars) {
|
|
52
|
+
return paginate(text, offset, maxChars, true);
|
|
40
53
|
}
|
|
41
54
|
export const TOOL_ANNOTATIONS = {
|
|
42
55
|
readOnlyHint: true,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-helpers.js","sourceRoot":"","sources":["../../src/lib/tool-helpers.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,MAAM,CAAC,MAAM,iBAAiB,GAAG,OAAO,CAAC;AAEzC,
|
|
1
|
+
{"version":3,"file":"tool-helpers.js","sourceRoot":"","sources":["../../src/lib/tool-helpers.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/types.d.ts
CHANGED
|
@@ -135,12 +135,22 @@ export interface BatchFetchItem {
|
|
|
135
135
|
structured?: StructuredArticle;
|
|
136
136
|
revision_note?: string;
|
|
137
137
|
error_message?: string;
|
|
138
|
+
truncated?: boolean;
|
|
139
|
+
next_offset?: number | null;
|
|
140
|
+
total_chars?: number;
|
|
141
|
+
omitted?: boolean;
|
|
142
|
+
note?: string;
|
|
138
143
|
}
|
|
139
144
|
export interface BatchFetchResult {
|
|
140
145
|
total: number;
|
|
141
146
|
success: number;
|
|
142
147
|
failed: number;
|
|
143
148
|
results: BatchFetchItem[];
|
|
149
|
+
omitted?: Array<{
|
|
150
|
+
law_name: string;
|
|
151
|
+
article_number: string;
|
|
152
|
+
}>;
|
|
153
|
+
note?: string;
|
|
144
154
|
}
|
|
145
155
|
export interface CitationVerification {
|
|
146
156
|
law_name: string;
|
package/dist/lib/version.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/** Must match package.json `version`; a unit test enforces this. */
|
|
2
|
-
export declare const SERVER_VERSION = "1.9.
|
|
2
|
+
export declare const SERVER_VERSION = "1.9.2";
|
package/dist/lib/version.js
CHANGED
package/dist/server.js
CHANGED
|
@@ -15,16 +15,16 @@ const SERVER_NAME = "building-standards-act-mcp";
|
|
|
15
15
|
const INSTRUCTIONS = `あなたは建築確認申請の法規照合アシスタントです。
|
|
16
16
|
|
|
17
17
|
## 利用可能なツール
|
|
18
|
-
- get_law: 条番号を指定して条文を取得(例: 建築基準法 第20
|
|
18
|
+
- get_law: 条番号を指定して条文を取得(例: 建築基準法 第20条、附則、別表第一)。format=text は本文と参照一覧(references)を合わせて max_chars(既定100,000)で制限し、本文の続きは offset で取得。参照の省略時は references_total と references_truncated で通知
|
|
19
19
|
- 別表: 「別表第一」「別表第二」等で数値基準を含む別表を取得可能
|
|
20
20
|
- 改正附則: 「附則(令和○年政令第○号)」で特定改正の経過措置を取得可能。法令番号は check_law_updates で確認
|
|
21
21
|
- get_full_law: 法令全文を取得(例: 建築基準法施行令)
|
|
22
22
|
- search_law: 法令名(タイトル)を検索する。条文本文の検索には search_articles を使う
|
|
23
|
-
- search_articles:
|
|
23
|
+
- search_articles: 条文本文を検索する。半角スペース区切りで AND 検索。AND・OR・NOT は演算子ではなく検索語として扱われる。全角スペースは半角に直して送る。keyword 必須、law_title で法令名・略称による絞り込みが可能。条番号は返らないので get_law で確定する
|
|
24
24
|
- get_kokuji: 告示の全文を国土交通省の告示データベース(PDF)から動的に取得する。正式名称またはキーワードで指定可能(例: 耐火構造の構造方法を定める件)。
|
|
25
25
|
※ 国交省データベースに未収録の告示は取得できません。取得失敗時は類似告示を提案します
|
|
26
26
|
- check_law_updates: 法令の改正状況を確認する(法令名指定で単体チェック、グループ指定でバッチチェック、show_historyで改正履歴表示)
|
|
27
|
-
- get_laws_batch: 複数の法令・条文を一括取得する(最大20件、e-Gov
|
|
27
|
+
- get_laws_batch: 複数の法令・条文を一括取得する(最大20件、e-Govから条単位取得)。max_chars_per_item(1,000〜30,000、既定8,000)と max_total_chars(既定40,000)で応答量を制限。長い条(例: 建築基準法施行規則 第1条の3)は get_law で個別に取得
|
|
28
28
|
- verify_citation: AIの回答に含まれる法令引用を検証する(条文存在確認・テキスト照合、最大10件)
|
|
29
29
|
- suggest_related: 指定した条文の関連法令・委任先・同法令内参照を自動抽出して提案する
|
|
30
30
|
- analyze_article: 条文の構造解析メタデータ(項数・号数・参照統計・プレビュー)をJSON形式で返す
|
package/dist/tools/get-law.js
CHANGED
|
@@ -2,7 +2,7 @@ import { z } from "zod";
|
|
|
2
2
|
import { resolveLawId } from "../lib/law-resolver.js";
|
|
3
3
|
import { fetchParsedArticle } from "../lib/article-fetcher.js";
|
|
4
4
|
import { LawNotFoundError, ArticleNotFoundError } from "../lib/errors.js";
|
|
5
|
-
import { TOOL_ANNOTATIONS, wrapToolHandler } from "../lib/tool-helpers.js";
|
|
5
|
+
import { DEFAULT_MAX_CHARS, paginateAtLineBoundary, TOOL_ANNOTATIONS, wrapToolHandler, } from "../lib/tool-helpers.js";
|
|
6
6
|
import { parsedArticleSchema, structuredArticleSchema, } from "../lib/article-schemas.js";
|
|
7
7
|
const schema = {
|
|
8
8
|
law_name: z
|
|
@@ -17,6 +17,19 @@ const schema = {
|
|
|
17
17
|
.enum(["text", "structured"])
|
|
18
18
|
.default("text")
|
|
19
19
|
.describe("出力形式。text: 従来のテキスト形式、structured: 条→項→号の階層を持つJSON構造化形式"),
|
|
20
|
+
max_chars: z
|
|
21
|
+
.number()
|
|
22
|
+
.int()
|
|
23
|
+
.min(1_000)
|
|
24
|
+
.max(500_000)
|
|
25
|
+
.default(DEFAULT_MAX_CHARS)
|
|
26
|
+
.describe("本文と参照一覧(references)を合わせた最大文字数(1,000〜500,000)。省略時は100,000文字。format=text のみ適用。"),
|
|
27
|
+
offset: z
|
|
28
|
+
.number()
|
|
29
|
+
.int()
|
|
30
|
+
.min(0)
|
|
31
|
+
.default(0)
|
|
32
|
+
.describe("本文の取得開始位置(0から始まる文字位置)。続きは案内された offset を指定。format=text のみ適用。"),
|
|
20
33
|
};
|
|
21
34
|
const outputSchema = {
|
|
22
35
|
law_title: z.string(),
|
|
@@ -24,6 +37,12 @@ const outputSchema = {
|
|
|
24
37
|
source: z.literal("e-Gov法令検索"),
|
|
25
38
|
format: z.enum(["text", "structured"]),
|
|
26
39
|
article: z.union([parsedArticleSchema, structuredArticleSchema]),
|
|
40
|
+
total_chars: z.number().optional(),
|
|
41
|
+
offset: z.number().optional(),
|
|
42
|
+
next_offset: z.number().nullable().optional(),
|
|
43
|
+
truncated: z.boolean().optional(),
|
|
44
|
+
references_total: z.number().optional(),
|
|
45
|
+
references_truncated: z.boolean().optional(),
|
|
27
46
|
note: z.string().optional(),
|
|
28
47
|
revision_note: z.string().optional(),
|
|
29
48
|
revision: z.object({
|
|
@@ -39,7 +58,7 @@ export function registerGetLawTool(server) {
|
|
|
39
58
|
inputSchema: schema,
|
|
40
59
|
annotations: TOOL_ANNOTATIONS,
|
|
41
60
|
outputSchema,
|
|
42
|
-
}, wrapToolHandler("get_law", async ({ law_name, article_number, format }) => {
|
|
61
|
+
}, wrapToolHandler("get_law", async ({ law_name, article_number, format, max_chars = DEFAULT_MAX_CHARS, offset = 0, }) => {
|
|
43
62
|
const resolved = await resolveLawId(law_name);
|
|
44
63
|
if (!resolved) {
|
|
45
64
|
throw new LawNotFoundError(law_name);
|
|
@@ -73,19 +92,42 @@ export function registerGetLawTool(server) {
|
|
|
73
92
|
],
|
|
74
93
|
};
|
|
75
94
|
}
|
|
76
|
-
//
|
|
95
|
+
// Offsets address only the article body, matching get_laws_batch.
|
|
77
96
|
const fetched = await fetchParsedArticle(resolved.law_id, article_number, "text");
|
|
78
97
|
const article = fetched?.article;
|
|
79
98
|
if (!article) {
|
|
80
99
|
throw new ArticleNotFoundError(article_number, resolved.title);
|
|
81
100
|
}
|
|
101
|
+
const { references: articleReferences, ...articleWithoutReferences } = article;
|
|
102
|
+
const page = paginateAtLineBoundary(article.text, offset, max_chars);
|
|
103
|
+
const pageReferences = offset > 0 || page.next_offset !== null
|
|
104
|
+
? articleReferences?.filter((ref) => page.text.includes(ref.raw_text))
|
|
105
|
+
: articleReferences;
|
|
106
|
+
let references = pageReferences;
|
|
107
|
+
if (pageReferences) {
|
|
108
|
+
let referenceChars = 2;
|
|
109
|
+
let keep = 0;
|
|
110
|
+
for (const ref of pageReferences) {
|
|
111
|
+
const candidateChars = referenceChars + JSON.stringify(ref).length + (keep > 0 ? 1 : 0);
|
|
112
|
+
if (page.text.length + candidateChars > max_chars)
|
|
113
|
+
break;
|
|
114
|
+
referenceChars = candidateChars;
|
|
115
|
+
keep++;
|
|
116
|
+
}
|
|
117
|
+
references = pageReferences.slice(0, keep);
|
|
118
|
+
}
|
|
119
|
+
const referencesTotal = pageReferences?.length ?? 0;
|
|
120
|
+
const referencesTruncated = (references?.length ?? 0) < referencesTotal;
|
|
82
121
|
const lines = [
|
|
83
122
|
`【${resolved.title}】${article.article_title}`,
|
|
84
123
|
article.article_caption ? article.article_caption : "",
|
|
85
124
|
"",
|
|
86
|
-
|
|
125
|
+
page.text,
|
|
87
126
|
].filter((line) => line !== undefined);
|
|
88
|
-
if (
|
|
127
|
+
if (page.next_offset !== null) {
|
|
128
|
+
lines.push(`(続きがあります。offset=${page.next_offset} を指定して続きを取得してください。本文全体 ${page.total_chars} 文字)`);
|
|
129
|
+
}
|
|
130
|
+
if (references && references.length > 0) {
|
|
89
131
|
const refLabels = {
|
|
90
132
|
cross_law: "他法令",
|
|
91
133
|
same_law: "同法令",
|
|
@@ -95,11 +137,14 @@ export function registerGetLawTool(server) {
|
|
|
95
137
|
};
|
|
96
138
|
lines.push("");
|
|
97
139
|
lines.push("■ 検出された参照:");
|
|
98
|
-
for (const ref of
|
|
140
|
+
for (const ref of references) {
|
|
99
141
|
const label = refLabels[ref.ref_type] ?? ref.ref_type;
|
|
100
142
|
lines.push(` - [${label}] ${ref.raw_text}`);
|
|
101
143
|
}
|
|
102
144
|
}
|
|
145
|
+
if (referencesTruncated) {
|
|
146
|
+
lines.push(`(参照 ${referencesTotal} 件のうち ${references?.length ?? 0} 件を表示。本文と合わせて max_chars を超える分は省略しました。参照は本文中の記述から抽出したもので、関連法令の一覧は suggest_related でも確認できます)`);
|
|
147
|
+
}
|
|
103
148
|
lines.push("");
|
|
104
149
|
lines.push(`出典: e-Gov法令検索(法令番号: ${resolved.law_num})`);
|
|
105
150
|
if (resolved.source === "egov_search") {
|
|
@@ -115,7 +160,15 @@ export function registerGetLawTool(server) {
|
|
|
115
160
|
law_num: resolved.law_num,
|
|
116
161
|
source: "e-Gov法令検索",
|
|
117
162
|
format: "text",
|
|
118
|
-
article,
|
|
163
|
+
article: { ...articleWithoutReferences, text: page.text, ...(references?.length ? { references } : {}) },
|
|
164
|
+
total_chars: page.total_chars,
|
|
165
|
+
offset: page.offset,
|
|
166
|
+
next_offset: page.next_offset,
|
|
167
|
+
truncated: page.next_offset !== null,
|
|
168
|
+
...(referencesTruncated ? {
|
|
169
|
+
references_total: referencesTotal,
|
|
170
|
+
references_truncated: true,
|
|
171
|
+
} : {}),
|
|
119
172
|
...(fetched?.revision
|
|
120
173
|
? { revision: fetched.revision, revision_note: fetched.revisionNote }
|
|
121
174
|
: {}),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-law.js","sourceRoot":"","sources":["../../src/tools/get-law.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAC1E,OAAO,
|
|
1
|
+
{"version":3,"file":"get-law.js","sourceRoot":"","sources":["../../src/tools/get-law.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,9 +2,11 @@ import { z } from "zod";
|
|
|
2
2
|
import { resolveLawId } from "../lib/law-resolver.js";
|
|
3
3
|
import { fetchParsedArticle } from "../lib/article-fetcher.js";
|
|
4
4
|
import { ArticleNotFoundError, formatArticleRef } from "../lib/errors.js";
|
|
5
|
-
import { TOOL_ANNOTATIONS, wrapToolHandler } from "../lib/tool-helpers.js";
|
|
5
|
+
import { paginateAtLineBoundary, TOOL_ANNOTATIONS, wrapToolHandler, } from "../lib/tool-helpers.js";
|
|
6
6
|
import { structuredArticleSchema } from "../lib/article-schemas.js";
|
|
7
7
|
const MAX_REQUESTS = 20;
|
|
8
|
+
const DEFAULT_MAX_CHARS_PER_ITEM = 8_000;
|
|
9
|
+
const DEFAULT_MAX_TOTAL_CHARS = 40_000;
|
|
8
10
|
const schema = {
|
|
9
11
|
requests: z
|
|
10
12
|
.array(z.object({
|
|
@@ -20,6 +22,20 @@ const schema = {
|
|
|
20
22
|
}))
|
|
21
23
|
.max(20)
|
|
22
24
|
.describe("取得対象の条文リスト(最大20件)"),
|
|
25
|
+
max_chars_per_item: z
|
|
26
|
+
.number()
|
|
27
|
+
.int()
|
|
28
|
+
.min(1_000)
|
|
29
|
+
.max(30_000)
|
|
30
|
+
.default(DEFAULT_MAX_CHARS_PER_ITEM)
|
|
31
|
+
.describe("条文ごとの最大文字数(1,000〜30,000)。省略時は8,000文字。"),
|
|
32
|
+
max_total_chars: z
|
|
33
|
+
.number()
|
|
34
|
+
.int()
|
|
35
|
+
.min(10_000)
|
|
36
|
+
.max(500_000)
|
|
37
|
+
.default(DEFAULT_MAX_TOTAL_CHARS)
|
|
38
|
+
.describe("応答全体のJSONの最大文字数(10,000〜500,000)。省略時は40,000文字。超過分の本文は省略。"),
|
|
23
39
|
};
|
|
24
40
|
const outputSchema = {
|
|
25
41
|
total: z.number(),
|
|
@@ -38,16 +54,26 @@ const outputSchema = {
|
|
|
38
54
|
structured: structuredArticleSchema.optional(),
|
|
39
55
|
error_message: z.string().optional(),
|
|
40
56
|
revision_note: z.string().optional(),
|
|
57
|
+
truncated: z.boolean().optional(),
|
|
58
|
+
next_offset: z.number().nullable().optional(),
|
|
59
|
+
total_chars: z.number().optional(),
|
|
60
|
+
omitted: z.boolean().optional(),
|
|
61
|
+
note: z.string().optional(),
|
|
41
62
|
})),
|
|
63
|
+
omitted: z.array(z.object({
|
|
64
|
+
law_name: z.string(),
|
|
65
|
+
article_number: z.string(),
|
|
66
|
+
})).optional(),
|
|
67
|
+
note: z.string().optional(),
|
|
42
68
|
};
|
|
43
69
|
export function registerGetLawsBatchTool(server) {
|
|
44
70
|
server.registerTool("get_laws_batch", {
|
|
45
71
|
title: "条文一括取得",
|
|
46
|
-
description: "複数の法令・条文を一括取得する。各条文をe-Govから個別に条単位取得する。最大20
|
|
72
|
+
description: "複数の法令・条文を一括取得する。各条文をe-Govから個別に条単位取得する。最大20件。長い条(例: 建築基準法施行規則 第1条の3)は get_law で個別に取得。",
|
|
47
73
|
inputSchema: schema,
|
|
48
74
|
annotations: TOOL_ANNOTATIONS,
|
|
49
75
|
outputSchema,
|
|
50
|
-
}, wrapToolHandler("get_laws_batch", async ({ requests }) => {
|
|
76
|
+
}, wrapToolHandler("get_laws_batch", async ({ requests, max_chars_per_item = DEFAULT_MAX_CHARS_PER_ITEM, max_total_chars = DEFAULT_MAX_TOTAL_CHARS, }) => {
|
|
51
77
|
if (requests.length > MAX_REQUESTS) {
|
|
52
78
|
return {
|
|
53
79
|
content: [
|
|
@@ -103,11 +129,26 @@ export function registerGetLawsBatchTool(server) {
|
|
|
103
129
|
});
|
|
104
130
|
}
|
|
105
131
|
else {
|
|
132
|
+
const truncated = JSON.stringify(structured).length > max_chars_per_item;
|
|
133
|
+
const limited = truncated ? { ...structured, paragraphs: [] } : structured;
|
|
134
|
+
if (truncated) {
|
|
135
|
+
for (const paragraph of structured.paragraphs) {
|
|
136
|
+
const candidate = { ...limited, paragraphs: [...limited.paragraphs, paragraph] };
|
|
137
|
+
if (JSON.stringify(candidate).length > max_chars_per_item)
|
|
138
|
+
break;
|
|
139
|
+
limited.paragraphs = candidate.paragraphs;
|
|
140
|
+
}
|
|
141
|
+
}
|
|
106
142
|
results.push({
|
|
107
143
|
law_name: resolvedInfo.title,
|
|
108
144
|
article_number: req.article_number,
|
|
109
145
|
status: "success",
|
|
110
|
-
structured,
|
|
146
|
+
structured: limited,
|
|
147
|
+
...(truncated ? {
|
|
148
|
+
truncated: true,
|
|
149
|
+
next_offset: null,
|
|
150
|
+
note: `構造化形式は項単位で切り詰めました。全文は get_law("${resolvedInfo.title}", "${req.article_number}", format="text", offset=0) から offset で順に取得してください。`,
|
|
151
|
+
} : {}),
|
|
111
152
|
...(fetched?.revisionNote ? { revision_note: fetched.revisionNote } : {}),
|
|
112
153
|
});
|
|
113
154
|
}
|
|
@@ -124,11 +165,24 @@ export function registerGetLawsBatchTool(server) {
|
|
|
124
165
|
});
|
|
125
166
|
}
|
|
126
167
|
else {
|
|
168
|
+
const page = paginateAtLineBoundary(article.text, 0, max_chars_per_item);
|
|
169
|
+
const truncated = page.next_offset !== null;
|
|
170
|
+
let text = page.text;
|
|
171
|
+
if (truncated) {
|
|
172
|
+
text += `\n\n(続きは get_law("${resolvedInfo.title}", "${req.article_number}", offset=${page.next_offset}, max_chars=${max_chars_per_item}) で取得。本文全体 ${page.total_chars} 文字)`;
|
|
173
|
+
}
|
|
174
|
+
if (fetched?.revisionNote)
|
|
175
|
+
text += `\n\n${fetched.revisionNote}`;
|
|
127
176
|
results.push({
|
|
128
177
|
law_name: resolvedInfo.title,
|
|
129
178
|
article_number: req.article_number,
|
|
130
179
|
status: "success",
|
|
131
|
-
text
|
|
180
|
+
text,
|
|
181
|
+
...(truncated ? {
|
|
182
|
+
truncated: true,
|
|
183
|
+
next_offset: page.next_offset,
|
|
184
|
+
total_chars: page.total_chars,
|
|
185
|
+
} : {}),
|
|
132
186
|
});
|
|
133
187
|
}
|
|
134
188
|
}
|
|
@@ -145,18 +199,48 @@ export function registerGetLawsBatchTool(server) {
|
|
|
145
199
|
}
|
|
146
200
|
}
|
|
147
201
|
const successCount = results.filter((r) => r.status === "success").length;
|
|
148
|
-
|
|
202
|
+
let response = {
|
|
149
203
|
total: results.length,
|
|
150
204
|
success: successCount,
|
|
151
205
|
failed: results.length - successCount,
|
|
152
206
|
results,
|
|
153
207
|
};
|
|
208
|
+
// Measure the final JSON, including omission metadata, for each prefix.
|
|
209
|
+
let text = JSON.stringify(response, null, 2);
|
|
210
|
+
if (text.length > max_total_chars) {
|
|
211
|
+
for (let keep = results.length - 1; keep >= 0; keep--) {
|
|
212
|
+
const omitted = results.slice(keep).map(({ law_name, article_number }) => ({
|
|
213
|
+
law_name, article_number,
|
|
214
|
+
}));
|
|
215
|
+
response = {
|
|
216
|
+
...response,
|
|
217
|
+
results: results.map((item, index) => {
|
|
218
|
+
if (index < keep)
|
|
219
|
+
return item;
|
|
220
|
+
const omittedItem = { ...item, omitted: true };
|
|
221
|
+
delete omittedItem.text;
|
|
222
|
+
delete omittedItem.structured;
|
|
223
|
+
delete omittedItem.revision_note;
|
|
224
|
+
delete omittedItem.truncated;
|
|
225
|
+
delete omittedItem.next_offset;
|
|
226
|
+
delete omittedItem.total_chars;
|
|
227
|
+
delete omittedItem.note;
|
|
228
|
+
return omittedItem;
|
|
229
|
+
}),
|
|
230
|
+
omitted,
|
|
231
|
+
note: `応答全体の上限(max_total_chars=${max_total_chars})に達したため、次の ${omitted.length} 件は本文を省略しました。未取得: ${omitted.map((item) => `${item.law_name} ${item.article_number}`).join(", ")} 。get_law で個別に取得するか、件数を減らして再実行してください。`,
|
|
232
|
+
};
|
|
233
|
+
text = JSON.stringify(response, null, 2);
|
|
234
|
+
if (text.length <= max_total_chars)
|
|
235
|
+
break;
|
|
236
|
+
}
|
|
237
|
+
}
|
|
154
238
|
return {
|
|
155
239
|
structuredContent: { ...response },
|
|
156
240
|
content: [
|
|
157
241
|
{
|
|
158
242
|
type: "text",
|
|
159
|
-
text
|
|
243
|
+
text,
|
|
160
244
|
},
|
|
161
245
|
],
|
|
162
246
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-laws-batch.js","sourceRoot":"","sources":["../../src/tools/get-laws-batch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAC1E,OAAO,
|
|
1
|
+
{"version":3,"file":"get-laws-batch.js","sourceRoot":"","sources":["../../src/tools/get-laws-batch.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
-
import { searchKeyword } from "../lib/egov-client.js";
|
|
2
|
+
import { normalizeKeyword, searchKeyword } from "../lib/egov-client.js";
|
|
3
3
|
import { resolveLawId } from "../lib/law-resolver.js";
|
|
4
4
|
import { LawNotFoundError } from "../lib/errors.js";
|
|
5
5
|
import { TOOL_ANNOTATIONS, wrapToolHandler } from "../lib/tool-helpers.js";
|
|
6
6
|
const inputSchema = {
|
|
7
|
-
keyword: z.string().max(200).describe("
|
|
7
|
+
keyword: z.string().max(200).describe("本文の検索語。半角スペース区切りで AND 検索。AND・OR・NOT は演算子ではなく検索語として扱われる。全角スペースは半角に直して送る。*・? のワイルドカードが使用可能"),
|
|
8
8
|
law_title: z.string().max(200).optional().describe("法令名または略称で絞り込み"),
|
|
9
9
|
limit: z.number().int().min(1).max(50).default(10).describe("取得する文の数(最大50)"),
|
|
10
10
|
offset: z.number().int().min(0).default(0).describe("検索開始位置(文単位)"),
|
|
@@ -27,11 +27,18 @@ const outputSchema = {
|
|
|
27
27
|
export function registerSearchArticlesTool(server) {
|
|
28
28
|
server.registerTool("search_articles", {
|
|
29
29
|
title: "条文本文検索",
|
|
30
|
-
description: "
|
|
30
|
+
description: "条文本文をキーワードで検索する。半角スペース区切りで AND 検索。AND・OR・NOT は演算子ではなく検索語として扱われる。全角スペースは半角に直して送る。*・? のワイルドカードに対応。法令名・略称で絞り込み可能。検索結果は節名と抜粋のみで条番号は返らないため、正確な条文は get_law で確認してください。",
|
|
31
31
|
inputSchema,
|
|
32
32
|
outputSchema,
|
|
33
33
|
annotations: TOOL_ANNOTATIONS,
|
|
34
34
|
}, wrapToolHandler("search_articles", async ({ keyword, law_title, limit, offset }) => {
|
|
35
|
+
keyword = normalizeKeyword(keyword);
|
|
36
|
+
if (!keyword) {
|
|
37
|
+
return {
|
|
38
|
+
isError: true,
|
|
39
|
+
content: [{ type: "text", text: "検索語が空です。半角スペース区切りで語を指定してください。" }],
|
|
40
|
+
};
|
|
41
|
+
}
|
|
35
42
|
const resolved = law_title !== undefined
|
|
36
43
|
? await resolveLawId(law_title)
|
|
37
44
|
: undefined;
|
|
@@ -71,7 +78,7 @@ export function registerSearchArticlesTool(server) {
|
|
|
71
78
|
lines.push(`次の offset: ${result.next_offset}`);
|
|
72
79
|
}
|
|
73
80
|
if (hits.length === 0) {
|
|
74
|
-
lines.push("
|
|
81
|
+
lines.push("該当する条文はありませんでした。", "検索語は半角スペース区切りで AND 検索します。AND・OR・NOT は演算子ではなく検索語として扱われます。");
|
|
75
82
|
}
|
|
76
83
|
for (const hit of hits) {
|
|
77
84
|
lines.push(`- **${hit.law_title}** [${hit.position}] ${hit.text}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search-articles.js","sourceRoot":"","sources":["../../src/tools/search-articles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"search-articles.js","sourceRoot":"","sources":["../../src/tools/search-articles.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.9.
|
|
3
|
+
"version": "1.9.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
|
"repository": {
|
|
6
6
|
"type": "git",
|