building-standards-act-mcp 1.5.0 → 1.7.0

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.
@@ -2,7 +2,7 @@ import type { KokujiPreset } from "./types.js";
2
2
  /**
3
3
  * Registry for looking up kokuji (ministerial notification) presets.
4
4
  *
5
- * Contains 9 major kokuji relevant to building standards law.
5
+ * Contains 11 major kokuji relevant to building standards law.
6
6
  * These are sourced from the MLIT pipeline since e-Gov API v2
7
7
  * does not include kokuji in its law search endpoint.
8
8
  */
@@ -59,6 +59,20 @@ const ALL_KOKUJI_PRESETS = [
59
59
  abbrev: ["許容応力度告示"],
60
60
  delegated_by: "建築基準法施行令",
61
61
  },
62
+ {
63
+ law_id: "",
64
+ law_num: "平成十二年建設省告示第千三百五十二号",
65
+ title: "木造建築物の軸組の設置の基準を定める件",
66
+ abbrev: ["壁量バランス告示", "軸組設置基準告示"],
67
+ delegated_by: "建築基準法施行令",
68
+ },
69
+ {
70
+ law_id: "",
71
+ law_num: "令和六年国土交通省告示第四百四十七号",
72
+ title: "建築基準法施行令第四十六条第四項表一(一)項から(七)項までに掲げる軸組と同等以上の耐力を有する軸組及び当該軸組に係る倍率の数値を定める件等の一部を改正する告示",
73
+ abbrev: ["壁量改正告示", "令和7年壁量告示"],
74
+ delegated_by: "建築基準法施行令",
75
+ },
62
76
  {
63
77
  law_id: "",
64
78
  law_num: "平成二十八年国土交通省告示第二百六十五号",
@@ -79,7 +93,7 @@ const ALL_KOKUJI_PRESETS = [
79
93
  /**
80
94
  * Registry for looking up kokuji (ministerial notification) presets.
81
95
  *
82
- * Contains 9 major kokuji relevant to building standards law.
96
+ * Contains 11 major kokuji relevant to building standards law.
83
97
  * These are sourced from the MLIT pipeline since e-Gov API v2
84
98
  * does not include kokuji in its law search endpoint.
85
99
  */
@@ -1 +1 @@
1
- {"version":3,"file":"kokuji-registry.js","sourceRoot":"","sources":["../../src/lib/kokuji-registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"kokuji-registry.js","sourceRoot":"","sources":["../../src/lib/kokuji-registry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Shared utilities for MCP tool handlers:
3
+ * - Error sanitization (Measure 5: hide internal details from client)
4
+ * - Audit logging (Measure 6: log tool invocations and results)
5
+ */
6
+ /** MCP CallToolResult shape (minimal interface to avoid SDK dependency). */
7
+ interface ToolResult {
8
+ [key: string]: unknown;
9
+ content: Array<{
10
+ type: "text";
11
+ text: string;
12
+ }>;
13
+ isError?: boolean;
14
+ }
15
+ /** Generic tool handler function signature. */
16
+ type ToolHandler<T> = (params: T, extra?: unknown) => Promise<ToolResult>;
17
+ /**
18
+ * Classify an error and return a sanitized user-facing message.
19
+ * Known user-friendly errors pass through; unknown errors are replaced
20
+ * with a generic message. Full details are always logged server-side.
21
+ */
22
+ export declare function handleToolError(toolName: string, error: unknown): ToolResult;
23
+ /**
24
+ * Wrap a tool handler with audit logging and error sanitization.
25
+ *
26
+ * - On entry: logs tool invocation with input params
27
+ * - On success: logs result status and duration, records metrics
28
+ * - On thrown error: sanitizes response, logs full details, records metrics
29
+ */
30
+ export declare function wrapToolHandler<T>(toolName: string, handler: ToolHandler<T>): ToolHandler<T>;
31
+ export {};
@@ -0,0 +1,107 @@
1
+ /**
2
+ * Shared utilities for MCP tool handlers:
3
+ * - Error sanitization (Measure 5: hide internal details from client)
4
+ * - Audit logging (Measure 6: log tool invocations and results)
5
+ */
6
+ import { logger } from "./logger.js";
7
+ import { recordToolCall } from "./metrics.js";
8
+ import { LawNotFoundError, ArticleNotFoundError, KokujiNotFoundError, } from "./errors.js";
9
+ import { EgovApiError } from "./errors.js";
10
+ /**
11
+ * Classify an error and return a sanitized user-facing message.
12
+ * Known user-friendly errors pass through; unknown errors are replaced
13
+ * with a generic message. Full details are always logged server-side.
14
+ */
15
+ export function handleToolError(toolName, error) {
16
+ const isError = error instanceof Error;
17
+ const message = isError ? error.message : String(error);
18
+ const stack = isError ? error.stack : undefined;
19
+ const errorType = isError ? error.constructor.name : typeof error;
20
+ // Always log full details server-side
21
+ logger.error("tool_error", {
22
+ tool: toolName,
23
+ errorType,
24
+ message,
25
+ ...(stack ? { stack } : {}),
26
+ ...(error instanceof EgovApiError && error.statusCode !== undefined
27
+ ? { statusCode: error.statusCode }
28
+ : {}),
29
+ ...(error instanceof EgovApiError && error.endpoint !== undefined
30
+ ? { endpoint: error.endpoint }
31
+ : {}),
32
+ });
33
+ // Known user-friendly errors: pass through their message
34
+ if (error instanceof LawNotFoundError ||
35
+ error instanceof ArticleNotFoundError ||
36
+ error instanceof KokujiNotFoundError) {
37
+ return {
38
+ content: [{ type: "text", text: `エラー: ${error.message}` }],
39
+ isError: true,
40
+ };
41
+ }
42
+ // EgovApiError: hide status code and endpoint
43
+ if (error instanceof EgovApiError) {
44
+ return {
45
+ content: [
46
+ {
47
+ type: "text",
48
+ text: "エラー: e-Gov APIとの通信中にエラーが発生しました。時間をおいて再度お試しください。",
49
+ },
50
+ ],
51
+ isError: true,
52
+ };
53
+ }
54
+ // Generic Error: hide internal details
55
+ if (isError) {
56
+ return {
57
+ content: [
58
+ {
59
+ type: "text",
60
+ text: "エラー: 内部エラーが発生しました。時間をおいて再度お試しください。",
61
+ },
62
+ ],
63
+ isError: true,
64
+ };
65
+ }
66
+ // Non-Error throw
67
+ return {
68
+ content: [
69
+ { type: "text", text: "エラー: 予期しないエラーが発生しました。" },
70
+ ],
71
+ isError: true,
72
+ };
73
+ }
74
+ /**
75
+ * Wrap a tool handler with audit logging and error sanitization.
76
+ *
77
+ * - On entry: logs tool invocation with input params
78
+ * - On success: logs result status and duration, records metrics
79
+ * - On thrown error: sanitizes response, logs full details, records metrics
80
+ */
81
+ export function wrapToolHandler(toolName, handler) {
82
+ return async (params, extra) => {
83
+ const start = Date.now();
84
+ logger.info("tool_call", {
85
+ tool: toolName,
86
+ params: params,
87
+ });
88
+ try {
89
+ const result = await handler(params, extra);
90
+ const durationMs = Date.now() - start;
91
+ const hasError = result.isError === true;
92
+ logger.info("tool_result", {
93
+ tool: toolName,
94
+ durationMs,
95
+ isError: hasError,
96
+ });
97
+ recordToolCall(toolName, durationMs, !hasError);
98
+ return result;
99
+ }
100
+ catch (error) {
101
+ const durationMs = Date.now() - start;
102
+ recordToolCall(toolName, durationMs, false);
103
+ return handleToolError(toolName, error);
104
+ }
105
+ };
106
+ }
107
+ //# sourceMappingURL=tool-helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-helpers.js","sourceRoot":"","sources":["../../src/lib/tool-helpers.ts"],"names":[],"mappings":"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"}
package/dist/server.js CHANGED
@@ -10,13 +10,16 @@ import { registerSuggestRelatedTool } from "./tools/suggest-related.js";
10
10
  import { registerAnalyzeArticleTool } from "./tools/analyze-article.js";
11
11
  import { registerGetMetricsTool } from "./tools/get-metrics.js";
12
12
  const SERVER_NAME = "building-standards-act-mcp";
13
- const SERVER_VERSION = "0.5.3";
13
+ const SERVER_VERSION = "1.7.0";
14
14
  const INSTRUCTIONS = `あなたは建築確認申請の法規照合アシスタントです。
15
15
 
16
16
  ## 利用可能なツール
17
17
  - get_law: 条番号を指定して条文を取得(例: 建築基準法 第20条、附則、別表第一)
18
+ - 別表: 「別表第一」「別表第二」等で数値基準を含む別表を取得可能
19
+ - 改正附則: 「附則(令和○年政令第○号)」で特定改正の経過措置を取得可能。法令番号は check_law_updates で確認
18
20
  - get_full_law: 法令全文を取得(例: 建築基準法施行令)
19
- - search_law: キーワードで法令を横断検索(例: 耐火構造)
21
+ - search_law: 法令名(タイトル)で建築関連法令を検索する。条文本文のキーワード検索は不可。
22
+ - 条文内の用語(壁量、経過措置等)を探す場合は get_law で条番号を直接指定するか、get_full_law で全文取得してください
20
23
  - get_kokuji: 告示の全文を取得(例: 耐火構造の構造方法を定める件)※国土交通省の告示データベース(PDF)から取得
21
24
  - check_law_updates: 法令の改正状況を確認する(法令名指定で単体チェック、グループ指定でバッチチェック、show_historyで改正履歴表示)
22
25
  - get_laws_batch: 複数の法令・条文を一括取得する(最大20件、同一法令は1回のAPI呼び出しで効率処理)
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAE9D,OAAO,EAAE,2BAA2B,EAAE,MAAM,8BAA8B,CAAC;AAC3E,OAAO,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,EAAE,0BAA0B,EAAE,MAAM,4BAA4B,CAAC;AACxE,OAAO,EAAE,0BAA0B,EAAE,MAAM,4BAA4B,CAAC;AACxE,OAAO,EAAE,0BAA0B,EAAE,MAAM,4BAA4B,CAAC;AACxE,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAEhE,MAAM,WAAW,GAAG,4BAA4B,CAAC;AACjD,MAAM,cAAc,GAAG,OAAO,CAAC;AAE/B,MAAM,YAAY,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;8CA0ByB,CAAC;AAE/C,MAAM,UAAU,YAAY;IAC1B,MAAM,MAAM,GAAG,IAAI,SAAS,CAC1B;QACE,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE,cAAc;KACxB,EACD;QACE,YAAY,EAAE,YAAY;KAC3B,CACF,CAAC;IAEF,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAC3B,sBAAsB,CAAC,MAAM,CAAC,CAAC;IAC/B,qBAAqB,CAAC,MAAM,CAAC,CAAC;IAC9B,qBAAqB,CAAC,MAAM,CAAC,CAAC;IAC9B,2BAA2B,CAAC,MAAM,CAAC,CAAC;IACpC,wBAAwB,CAAC,MAAM,CAAC,CAAC;IACjC,0BAA0B,CAAC,MAAM,CAAC,CAAC;IACnC,0BAA0B,CAAC,MAAM,CAAC,CAAC;IACnC,0BAA0B,CAAC,MAAM,CAAC,CAAC;IACnC,sBAAsB,CAAC,MAAM,CAAC,CAAC;IAE/B,OAAO,MAAM,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAE9D,OAAO,EAAE,2BAA2B,EAAE,MAAM,8BAA8B,CAAC;AAC3E,OAAO,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,EAAE,0BAA0B,EAAE,MAAM,4BAA4B,CAAC;AACxE,OAAO,EAAE,0BAA0B,EAAE,MAAM,4BAA4B,CAAC;AACxE,OAAO,EAAE,0BAA0B,EAAE,MAAM,4BAA4B,CAAC;AACxE,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAEhE,MAAM,WAAW,GAAG,4BAA4B,CAAC;AACjD,MAAM,cAAc,GAAG,OAAO,CAAC;AAE/B,MAAM,YAAY,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8CA6ByB,CAAC;AAE/C,MAAM,UAAU,YAAY;IAC1B,MAAM,MAAM,GAAG,IAAI,SAAS,CAC1B;QACE,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE,cAAc;KACxB,EACD;QACE,YAAY,EAAE,YAAY;KAC3B,CACF,CAAC;IAEF,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAC3B,sBAAsB,CAAC,MAAM,CAAC,CAAC;IAC/B,qBAAqB,CAAC,MAAM,CAAC,CAAC;IAC9B,qBAAqB,CAAC,MAAM,CAAC,CAAC;IAC9B,2BAA2B,CAAC,MAAM,CAAC,CAAC;IACpC,wBAAwB,CAAC,MAAM,CAAC,CAAC;IACjC,0BAA0B,CAAC,MAAM,CAAC,CAAC;IACnC,0BAA0B,CAAC,MAAM,CAAC,CAAC;IACnC,0BAA0B,CAAC,MAAM,CAAC,CAAC;IACnC,sBAAsB,CAAC,MAAM,CAAC,CAAC;IAE/B,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -1,5 +1,6 @@
1
1
  import { z } from "zod";
2
2
  import { analyzeArticle } from "../lib/article-analyzer.js";
3
+ import { wrapToolHandler } from "../lib/tool-helpers.js";
3
4
  const schema = {
4
5
  law_name: z
5
6
  .string()
@@ -8,25 +9,16 @@ const schema = {
8
9
  article_number: z.string().max(100).describe("条文番号(例: 第20条、20)"),
9
10
  };
10
11
  export function registerAnalyzeArticleTool(server) {
11
- server.tool("analyze_article", "条文の構造を解析し、項数・号数・参照統計・プレビューなどのメタデータをJSON形式で返す。AIが要約・解説を生成する際の素材データとして活用。", schema, async ({ law_name, article_number }) => {
12
- try {
13
- const analysis = await analyzeArticle(law_name, article_number);
14
- return {
15
- content: [
16
- {
17
- type: "text",
18
- text: JSON.stringify(analysis, null, 2),
19
- },
20
- ],
21
- };
22
- }
23
- catch (error) {
24
- const message = error instanceof Error ? error.message : String(error);
25
- return {
26
- content: [{ type: "text", text: `エラー: ${message}` }],
27
- isError: true,
28
- };
29
- }
30
- });
12
+ server.tool("analyze_article", "条文の構造を解析し、項数・号数・参照統計・プレビューなどのメタデータをJSON形式で返す。AIが要約・解説を生成する際の素材データとして活用。", schema, wrapToolHandler("analyze_article", async ({ law_name, article_number }) => {
13
+ const analysis = await analyzeArticle(law_name, article_number);
14
+ return {
15
+ content: [
16
+ {
17
+ type: "text",
18
+ text: JSON.stringify(analysis, null, 2),
19
+ },
20
+ ],
21
+ };
22
+ }));
31
23
  }
32
24
  //# sourceMappingURL=analyze-article.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"analyze-article.js","sourceRoot":"","sources":["../../src/tools/analyze-article.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAE5D,MAAM,MAAM,GAAG;IACb,QAAQ,EAAE,CAAC;SACR,MAAM,EAAE;SACR,GAAG,CAAC,GAAG,CAAC;SACR,QAAQ,CAAC,6BAA6B,CAAC;IAC1C,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,kBAAkB,CAAC;CACjE,CAAC;AAEF,MAAM,UAAU,0BAA0B,CAAC,MAAiB;IAC1D,MAAM,CAAC,IAAI,CACT,iBAAiB,EACjB,yEAAyE,EACzE,MAAM,EACN,KAAK,EAAE,EAAE,QAAQ,EAAE,cAAc,EAAE,EAAE,EAAE;QACrC,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;YAEhE,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;qBACxC;iBACF;aACF,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACvE,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,QAAQ,OAAO,EAAE,EAAE,CAAC;gBAC7D,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"analyze-article.js","sourceRoot":"","sources":["../../src/tools/analyze-article.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD,MAAM,MAAM,GAAG;IACb,QAAQ,EAAE,CAAC;SACR,MAAM,EAAE;SACR,GAAG,CAAC,GAAG,CAAC;SACR,QAAQ,CAAC,6BAA6B,CAAC;IAC1C,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,kBAAkB,CAAC;CACjE,CAAC;AAEF,MAAM,UAAU,0BAA0B,CAAC,MAAiB;IAC1D,MAAM,CAAC,IAAI,CACT,iBAAiB,EACjB,yEAAyE,EACzE,MAAM,EACN,eAAe,CAAC,iBAAiB,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,cAAc,EAAE,EAAE,EAAE;QACxE,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;QAEhE,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAe;oBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;iBACxC;aACF;SACF,CAAC;IACJ,CAAC,CAAC,CACH,CAAC;AACJ,CAAC"}
@@ -3,6 +3,7 @@ import { LawRegistry } from "../lib/law-registry.js";
3
3
  import { resolveLawId } from "../lib/law-resolver.js";
4
4
  import { checkLawUpdate, checkLawUpdates, getLawRevisionHistory, mapWithConcurrency, RATE_LIMIT_DELAY_MS, CONCURRENCY, sleep, } from "../lib/revision-tracker.js";
5
5
  import { hasSearchCached } from "../lib/egov-client.js";
6
+ import { wrapToolHandler } from "../lib/tool-helpers.js";
6
7
  const registry = new LawRegistry();
7
8
  const schema = {
8
9
  law_name: z
@@ -90,58 +91,49 @@ function formatHistory(result) {
90
91
  return lines.join("\n");
91
92
  }
92
93
  export function registerCheckLawUpdatesTool(server) {
93
- server.tool("check_law_updates", "法令の改正状況をe-Gov APIで確認する。法令名指定で単体チェック、グループ指定でバッチチェック、show_historyで改正履歴表示が可能。", schema, async ({ law_name, group, show_history }) => {
94
- try {
95
- // Single law check with optional history
96
- if (law_name) {
97
- const resolved = await resolveLawId(law_name);
98
- if (!resolved) {
99
- return {
100
- content: [
101
- {
102
- type: "text",
103
- text: `法令「${law_name}」が見つかりませんでした。`,
104
- },
105
- ],
106
- };
107
- }
108
- const result = show_history
109
- ? await getLawRevisionHistory(resolved)
110
- : await checkLawUpdate(resolved);
111
- const text = show_history
112
- ? formatHistory(result)
113
- : formatSummary([result]);
114
- return { content: [{ type: "text", text }] };
94
+ server.tool("check_law_updates", "法令の改正状況をe-Gov APIで確認する。法令名指定で単体チェック、グループ指定でバッチチェック、show_historyで改正履歴表示が可能。", schema, wrapToolHandler("check_law_updates", async ({ law_name, group, show_history }) => {
95
+ // Single law check with optional history
96
+ if (law_name) {
97
+ const resolved = await resolveLawId(law_name);
98
+ if (!resolved) {
99
+ return {
100
+ content: [
101
+ {
102
+ type: "text",
103
+ text: `法令「${law_name}」が見つかりませんでした。`,
104
+ },
105
+ ],
106
+ };
115
107
  }
116
- // Batch check (group or all)
117
- const aliases = group ? registry.getByGroup(group) : registry.getAll();
118
- if (aliases.length === 0) {
119
- const msg = group
120
- ? `グループ「${group}」に該当する法令が見つかりませんでした。`
121
- : "登録済み法令がありません。";
122
- return { content: [{ type: "text", text: msg }] };
123
- }
124
- // Resolve each alias to get law_id (concurrent with rate-limit on cache miss)
125
- const resolveResults = await mapWithConcurrency(aliases, async (alias) => {
126
- const wasCached = hasSearchCached(alias.title);
127
- const resolved = await resolveLawId(alias.title);
128
- if (!wasCached) {
129
- await sleep(RATE_LIMIT_DELAY_MS);
130
- }
131
- return resolved;
132
- }, CONCURRENCY);
133
- const resolvedLaws = resolveResults.filter((r) => r !== null);
134
- const results = await checkLawUpdates(resolvedLaws);
135
- const text = formatSummary(results);
108
+ const result = show_history
109
+ ? await getLawRevisionHistory(resolved)
110
+ : await checkLawUpdate(resolved);
111
+ const text = show_history
112
+ ? formatHistory(result)
113
+ : formatSummary([result]);
136
114
  return { content: [{ type: "text", text }] };
137
115
  }
138
- catch (error) {
139
- const message = error instanceof Error ? error.message : String(error);
140
- return {
141
- content: [{ type: "text", text: `エラー: ${message}` }],
142
- isError: true,
143
- };
116
+ // Batch check (group or all)
117
+ const aliases = group ? registry.getByGroup(group) : registry.getAll();
118
+ if (aliases.length === 0) {
119
+ const msg = group
120
+ ? `グループ「${group}」に該当する法令が見つかりませんでした。`
121
+ : "登録済み法令がありません。";
122
+ return { content: [{ type: "text", text: msg }] };
144
123
  }
145
- });
124
+ // Resolve each alias to get law_id (concurrent with rate-limit on cache miss)
125
+ const resolveResults = await mapWithConcurrency(aliases, async (alias) => {
126
+ const wasCached = hasSearchCached(alias.title);
127
+ const resolved = await resolveLawId(alias.title);
128
+ if (!wasCached) {
129
+ await sleep(RATE_LIMIT_DELAY_MS);
130
+ }
131
+ return resolved;
132
+ }, CONCURRENCY);
133
+ const resolvedLaws = resolveResults.filter((r) => r !== null);
134
+ const results = await checkLawUpdates(resolvedLaws);
135
+ const text = formatSummary(results);
136
+ return { content: [{ type: "text", text }] };
137
+ }));
146
138
  }
147
139
  //# sourceMappingURL=check-law-updates.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"check-law-updates.js","sourceRoot":"","sources":["../../src/tools/check-law-updates.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"check-law-updates.js","sourceRoot":"","sources":["../../src/tools/check-law-updates.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,7 @@ import { resolveLawId } from "../lib/law-resolver.js";
3
3
  import { getLawData } from "../lib/egov-client.js";
4
4
  import { parseFullLaw } from "../lib/egov-parser.js";
5
5
  import { LawNotFoundError } from "../lib/errors.js";
6
+ import { wrapToolHandler } from "../lib/tool-helpers.js";
6
7
  const schema = {
7
8
  law_name: z
8
9
  .string()
@@ -10,35 +11,26 @@ const schema = {
10
11
  .describe("法令名(正式名称、略称のいずれか。例: 建築基準法施行令、建基令)"),
11
12
  };
12
13
  export function registerGetFullLawTool(server) {
13
- server.tool("get_full_law", "法令の全文を取得する。条番号を指定せず法令全体のテキストを返す。", schema, async ({ law_name }) => {
14
- try {
15
- const resolved = await resolveLawId(law_name);
16
- if (!resolved) {
17
- throw new LawNotFoundError(law_name);
18
- }
19
- const lawData = await getLawData(resolved.law_id);
20
- const fullText = parseFullLaw(lawData.law_full_text);
21
- const lines = [
22
- `【${resolved.title}】全文`,
23
- `法令番号: ${resolved.law_num}`,
24
- "",
25
- fullText,
26
- "",
27
- `出典: e-Gov法令検索`,
28
- ];
29
- if (resolved.source === "egov_search") {
30
- lines.push("※ この法令は略称マップに登録されていないため、e-Gov法令検索から取得しました。");
31
- }
32
- const text = lines.join("\n");
33
- return { content: [{ type: "text", text }] };
14
+ server.tool("get_full_law", "法令の全文を取得する。条番号を指定せず法令全体のテキストを返す。", schema, wrapToolHandler("get_full_law", async ({ law_name }) => {
15
+ const resolved = await resolveLawId(law_name);
16
+ if (!resolved) {
17
+ throw new LawNotFoundError(law_name);
34
18
  }
35
- catch (error) {
36
- const message = error instanceof Error ? error.message : String(error);
37
- return {
38
- content: [{ type: "text", text: `エラー: ${message}` }],
39
- isError: true,
40
- };
19
+ const lawData = await getLawData(resolved.law_id);
20
+ const fullText = parseFullLaw(lawData.law_full_text);
21
+ const lines = [
22
+ `【${resolved.title}】全文`,
23
+ `法令番号: ${resolved.law_num}`,
24
+ "",
25
+ fullText,
26
+ "",
27
+ `出典: e-Gov法令検索`,
28
+ ];
29
+ if (resolved.source === "egov_search") {
30
+ lines.push("※ この法令は略称マップに登録されていないため、e-Gov法令検索から取得しました。");
41
31
  }
42
- });
32
+ const text = lines.join("\n");
33
+ return { content: [{ type: "text", text }] };
34
+ }));
43
35
  }
44
36
  //# sourceMappingURL=get-full-law.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"get-full-law.js","sourceRoot":"","sources":["../../src/tools/get-full-law.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEpD,MAAM,MAAM,GAAG;IACb,QAAQ,EAAE,CAAC;SACR,MAAM,EAAE;SACR,GAAG,CAAC,GAAG,CAAC;SACR,QAAQ,CACP,mCAAmC,CACpC;CACJ,CAAC;AAEF,MAAM,UAAU,sBAAsB,CAAC,MAAiB;IACtD,MAAM,CAAC,IAAI,CACT,cAAc,EACd,kCAAkC,EAClC,MAAM,EACN,KAAK,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE;QACrB,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,QAAQ,CAAC,CAAC;YAC9C,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,MAAM,IAAI,gBAAgB,CAAC,QAAQ,CAAC,CAAC;YACvC,CAAC;YAED,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YAClD,MAAM,QAAQ,GAAG,YAAY,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;YAErD,MAAM,KAAK,GAAG;gBACZ,IAAI,QAAQ,CAAC,KAAK,KAAK;gBACvB,SAAS,QAAQ,CAAC,OAAO,EAAE;gBAC3B,EAAE;gBACF,QAAQ;gBACR,EAAE;gBACF,eAAe;aAChB,CAAC;YACF,IAAI,QAAQ,CAAC,MAAM,KAAK,aAAa,EAAE,CAAC;gBACtC,KAAK,CAAC,IAAI,CACR,4CAA4C,CAC7C,CAAC;YACJ,CAAC;YACD,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAE9B,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;QACxD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACvE,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,QAAQ,OAAO,EAAE,EAAE,CAAC;gBAC7D,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"get-full-law.js","sourceRoot":"","sources":["../../src/tools/get-full-law.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD,MAAM,MAAM,GAAG;IACb,QAAQ,EAAE,CAAC;SACR,MAAM,EAAE;SACR,GAAG,CAAC,GAAG,CAAC;SACR,QAAQ,CACP,mCAAmC,CACpC;CACJ,CAAC;AAEF,MAAM,UAAU,sBAAsB,CAAC,MAAiB;IACtD,MAAM,CAAC,IAAI,CACT,cAAc,EACd,kCAAkC,EAClC,MAAM,EACN,eAAe,CAAC,cAAc,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE;QACrD,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,QAAQ,CAAC,CAAC;QAC9C,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QACvC,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAClD,MAAM,QAAQ,GAAG,YAAY,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;QAErD,MAAM,KAAK,GAAG;YACZ,IAAI,QAAQ,CAAC,KAAK,KAAK;YACvB,SAAS,QAAQ,CAAC,OAAO,EAAE;YAC3B,EAAE;YACF,QAAQ;YACR,EAAE;YACF,eAAe;SAChB,CAAC;QACF,IAAI,QAAQ,CAAC,MAAM,KAAK,aAAa,EAAE,CAAC;YACtC,KAAK,CAAC,IAAI,CACR,4CAA4C,CAC7C,CAAC;QACJ,CAAC;QACD,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE9B,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;IACxD,CAAC,CAAC,CACH,CAAC;AACJ,CAAC"}