@shuji-bonji/s1000d-verify-mcp 0.1.0 → 0.2.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.
package/README.ja.md CHANGED
@@ -16,6 +16,7 @@ S1000D® のデータモジュールを LLM が「どこまで確認済みか」
16
16
  | `validate_schema` | XSD 検証だけを行います。使う XSD は `xsi:noNamespaceSchemaLocation` のファイル名で決め、`S1000D_SPEC_DIR` の下の `xml_schema_flat/` から探します。版は `brex.xsd` 冒頭の `Issue number:` から読みます |
17
17
  | `check_references` | 参照を 5 種類(`dmRef` / `pmRef` / ICN / `internalRef` / `applicRefId`)集め、参照先の有無を理由付きで返します。仕様書の章への `dmRef`(モデル識別コード `S1000D`)は参照切れではないので別枠にします |
18
18
  | `verify_csdb` | フォルダーの中の CSDB オブジェクト(既定は DMC と PMC)をまとめて検証し、1 件ごとの検証状態と件数の集計を返します。`offset` / `limit` で分けて読み、`reportPath` で詳細を JSON に書き出せます |
19
+ | `suggest_fixes` | `verify_data_module` と同じ検証を行い、違反ごとに直し方の候補を返します。候補はサーバーが決め、出どころ(BREX のルール ID、XSD の定義、CSDB、文書内の id、ACT・CCT・PCT)と確からしさ(`exact` / `several` / `none`)を付けます。`product` を渡すと、製品の値が足りず判定できない適用性にも、与える値の候補を付けます。修正の適用はしません |
19
20
  | `list_schemas` | `S1000D_SPEC_DIR` の下で見つかった `xml_schema_flat/` の一覧(版、XSD の数、スキーマ名)を返します。`schema-not-found` の原因を調べるのに使います |
20
21
 
21
22
  ### 検証状態(`verification`)
@@ -33,7 +34,8 @@ S1000D® のデータモジュールを LLM が「どこまで確認済みか」
33
34
  > [!WARNING]
34
35
  > - **S1000D への準拠を判定しません。** `schema: valid` と `brex: passed` は「XSD と、機械で検査できる BREX のルールに誤りが無かった」ことだけを意味します。`nonContextRules`(文章で書かれた取り決め)は `manualChecks` として返し、判断は人が行います。プロジェクトのビジネスルール文書はどのツールの対象でもありません。
35
36
  > - BREX のルールの説明や値の意味は返しません。それは `s1000d-brex-mcp` の `explain_brex` / `lookup_value` の仕事です。重大度コード(`brsl01`〜`brsl99`)はそのまま返します。
36
- > - 適用性(どの製品に当てはまるか)は判定しません。`check_references` は `applicRefId` の参照先があるかだけを見ます。判定は `s1000d-reader-mcp` が行います。
37
+ > - 適用性(どの製品に当てはまるか)は判定しません。`check_references` は `applicRefId` の参照先があるかだけを見ます。判定は `s1000d-reader-mcp` が行います。例外は `product` を渡した `suggest_fixes` で、製品の値が足りず判定できない適用性だけを報告します。
38
+ > - 修正を文書に当てません。`suggest_fixes` は候補を返すだけです。LLM には候補の中から選ばせ、`confidence` が `none` のときは利用者に聞かせてください(`instructions` にも書いてあります)。
37
39
 
38
40
  > [!NOTE]
39
41
  > XSD に違反した文書では、要素の位置が仕様と違う可能性があるため、BREX の違反が誤って出たり隠れたりします。`schema.state` が `invalid` のときは BREX の結果を参考程度に読んでください(応答の `_notes` にも書きます)。
package/README.md CHANGED
@@ -16,6 +16,7 @@ An MCP server that lets an LLM know, with evidence, how far an S1000D® data mod
16
16
  | `validate_schema` | Runs XSD validation only. The XSD to use is chosen from the file name in `xsi:noNamespaceSchemaLocation` and looked up under `xml_schema_flat/` below `S1000D_SPEC_DIR`. The issue is read from the `Issue number:` line at the top of `brex.xsd` |
17
17
  | `check_references` | Collects references of 5 kinds (`dmRef` / `pmRef` / ICN / `internalRef` / `applicRefId`) and returns whether each target exists, with a reason. A `dmRef` to a chapter of the specification (model identification code `S1000D`) is not a broken reference, so it is reported separately |
18
18
  | `verify_csdb` | Validates the CSDB objects in a folder (DMC and PMC by default) in one run, and returns the verification status of each object and a count summary. Read the results in parts with `offset` / `limit`, and write the details to JSON with `reportPath` |
19
+ | `suggest_fixes` | Runs the same verification as `verify_data_module` and returns fix candidates for each finding. The server decides the candidates and adds their origin (BREX rule ID, XSD definition, CSDB, ids in the document, ACT/CCT/PCT) and their certainty (`exact` / `several` / `none`). If `product` is given, applicability that cannot be decided because the product lacks a value also gets candidate values. It does not apply fixes |
19
20
  | `list_schemas` | Returns the list of `xml_schema_flat/` folders found under `S1000D_SPEC_DIR` (issue, number of XSDs, schema names). Use it to investigate the cause of `schema-not-found` |
20
21
 
21
22
  ### Verification status (`verification`)
@@ -33,7 +34,8 @@ An MCP server that lets an LLM know, with evidence, how far an S1000D® data mod
33
34
  > [!WARNING]
34
35
  > - **It does not decide conformance to S1000D.** `schema: valid` and `brex: passed` mean only that no errors were found against the XSD and the BREX rules that a machine can check. `nonContextRules` (agreements written as prose) are returned as `manualChecks`, and a person makes the judgement. A project's business rules document is outside the scope of every tool.
35
36
  > - It does not return explanations of BREX rules or the meaning of values. That is the job of `explain_brex` / `lookup_value` in `s1000d-brex-mcp`. Severity level codes (`brsl01` to `brsl99`) are returned as they are.
36
- > - It does not evaluate applicability (which product the content applies to). `check_references` only looks at whether the target of `applicRefId` exists. The evaluation is done by `s1000d-reader-mcp`.
37
+ > - It does not evaluate applicability (which product the content applies to). `check_references` only looks at whether the target of `applicRefId` exists. The evaluation is done by `s1000d-reader-mcp`. The exception is `suggest_fixes` with `product`, which reports only applicability that cannot be decided because the product lacks a value.
38
+ > - It does not apply fixes to the document. `suggest_fixes` only returns candidates. Have the LLM choose among the candidates, and ask the user when `confidence` is `none` (the `instructions` say the same).
37
39
 
38
40
  > [!NOTE]
39
41
  > In a document that violates the XSD, elements may be in positions that differ from the specification, so BREX violations can be reported falsely or hidden. When `schema.state` is `invalid`, read the BREX results as a rough indication only (the response also says so in `_notes`).
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,SAAS,EAAkB,MAAM,8BAA8B,CAAC;AA0BzE,wBAAgB,WAAW,IAAI,SAAS,CA6BvC"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,SAAS,EAAkB,MAAM,8BAA8B,CAAC;AA8BzE,wBAAgB,WAAW,IAAI,SAAS,CA6BvC"}
package/dist/server.js CHANGED
@@ -13,17 +13,21 @@ import { toolHandlers } from './tools/handlers.js';
13
13
  * 2. XSD が見つからないときに「検証した」と読まれること。schema.state は schema-not-found になる。
14
14
  * 3. BREX ルールの意味や値の意味までここで分かると読まれること。それは s1000d-brex-mcp の explain_brex / lookup_value。
15
15
  * 4. 仕様書の章への dmRef(モデル識別コード S1000D)を「参照切れ」と読まれること。別枠で返す。
16
+ * 5. suggest_fixes の候補の外の値を LLM が提案すること(design/agent-platform.md「修正提案の設計」、D-18・D-19)。
16
17
  */
17
18
  const INSTRUCTIONS = `This server VERIFIES S1000D data modules: XML schema (XSD) validation with the user's own S1000D schemas, BREX (Business Rules Exchange) checks along the brexDmRef chain, and reference resolution. Every result carries a "verification" status (VerificationStatus) with one state per step: schema (valid / invalid / schema-not-found / not-run), brex (passed / violations / incomplete / not-run), references (resolved / unresolved / not-run).
18
19
 
19
20
  It does NOT do the following:
20
21
  - It does not decide S1000D conformance. schema "valid" plus brex "passed" means only that the XSD and the machine-checkable BREX rules found nothing; nonContextRules are returned as manualChecks for a person, and the project's human-readable business rules are outside any tool.
21
22
  - It does not interpret severity codes (brsl01..brsl99) or explain BREX rules and value meanings; use s1000d-brex-mcp (explain_brex, lookup_value) for that.
22
- - It does not evaluate applicability (which product a passage applies to); check_references only verifies that applicRefId targets exist. Use s1000d-reader-mcp for applicability.
23
+ - It does not evaluate applicability (which product a passage applies to); check_references only verifies that applicRefId targets exist. Use s1000d-reader-mcp for applicability. The only exception is suggest_fixes with "product": it reports applicability that cannot be decided because the product lacks a value, with candidate values.
24
+ - It does not apply fixes. suggest_fixes only returns candidates.
23
25
  - It does not ship any S1000D specification, XSD or default BREX. The user must download the distribution from s1000d.org and set ${ENV.specDir} to the extracted folder (the XSDs are found in its xml_schema_flat/ folder; the issue is read from brex.xsd). Project data modules are found via ${ENV.csdbDirs} or the "csdbDirs" argument.
24
26
 
25
27
  Reading results: "schema-not-found" is not "valid" — the schema step did not run; call list_schemas to see what was found. brex "incomplete" means a BREX in the chain was missing or a rule could not be evaluated; treat it as not checked. references.specificationReferences lists dmRef to the S1000D specification itself (modelIdentCode "S1000D"); they are never in a CSDB and are not errors. An XSD-invalid document can produce misleading BREX findings.
26
28
 
29
+ Fix suggestions (suggest_fixes): every candidate is decided by the server from the BREX rule, the XSD definition, the CSDB, the ids in the document or the ACT/CCT/PCT; "source" says which. Do NOT propose a value that is not among the candidates. When "confidence" is "none", or when the candidates do not fit the user's intent, ask the user instead of inventing a value. A candidate with valueForm "range" or "pattern" is a constraint, not a value: ask the user for a value that satisfies it. action "provide" means a value for the product used to evaluate applicability, not a change to the document. suggest_fixes does not apply fixes and does not decide conformance; verify again after the document has been changed.
30
+
27
31
  Costly options: verify_csdb runs all steps on every object; use "skip" and "limit" for large CSDBs, and "reportPath" to keep the details out of the response.`;
28
32
  export function buildServer() {
29
33
  const server = new McpServer({ name: PACKAGE_INFO.name, version: PACKAGE_INFO.version }, { instructions: INSTRUCTIONS });
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AACzE,OAAO,EAAE,GAAG,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEnD;;;;;;;;GAQG;AACH,MAAM,YAAY,GAAG;;;;;;oIAM+G,GAAG,CAAC,OAAO,qJAAqJ,GAAG,CAAC,QAAQ;;;;8JAIlJ,CAAC;AAE/J,MAAM,UAAU,WAAW;IACzB,MAAM,MAAM,GAAG,IAAI,SAAS,CAC1B,EAAE,IAAI,EAAE,YAAY,CAAC,IAAI,EAAE,OAAO,EAAE,YAAY,CAAC,OAAO,EAAE,EAC1D,EAAE,YAAY,EAAE,YAAY,EAAE,CAC/B,CAAC;IACF,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxC,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,mCAAmC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAC9E,MAAM,CAAC,YAAY,CACjB,IAAI,CAAC,IAAI,EACT;YACE,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,WAAW,EAAE,cAAc,CAA0B,IAAI,CAAC,WAAW,CAAC;SACvE,EACD,KAAK,EAAE,IAAI,EAAE,EAAE;YACb,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,IAA+B,CAAC,CAAC;gBAC9D,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;YACzF,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBACvE,OAAO;oBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;oBACvF,OAAO,EAAE,IAAI;iBACd,CAAC;YACJ,CAAC;QACH,CAAC,CACF,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AACzE,OAAO,EAAE,GAAG,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEnD;;;;;;;;;GASG;AACH,MAAM,YAAY,GAAG;;;;;;;oIAO+G,GAAG,CAAC,OAAO,qJAAqJ,GAAG,CAAC,QAAQ;;;;;;8JAMlJ,CAAC;AAE/J,MAAM,UAAU,WAAW;IACzB,MAAM,MAAM,GAAG,IAAI,SAAS,CAC1B,EAAE,IAAI,EAAE,YAAY,CAAC,IAAI,EAAE,OAAO,EAAE,YAAY,CAAC,OAAO,EAAE,EAC1D,EAAE,YAAY,EAAE,YAAY,EAAE,CAC/B,CAAC;IACF,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxC,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,mCAAmC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAC9E,MAAM,CAAC,YAAY,CACjB,IAAI,CAAC,IAAI,EACT;YACE,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,WAAW,EAAE,cAAc,CAA0B,IAAI,CAAC,WAAW,CAAC;SACvE,EACD,KAAK,EAAE,IAAI,EAAE,EAAE;YACb,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,IAA+B,CAAC,CAAC;gBAC9D,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;YACzF,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBACvE,OAAO;oBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;oBACvF,OAAO,EAAE,IAAI;iBACd,CAAC;YACJ,CAAC;QACH,CAAC,CACF,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"definitions.d.ts","sourceRoot":"","sources":["../../src/tools/definitions.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,8BAA8B,CAAC;AAEzE,MAAM,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,EAAE,aAAa,CAAC,GAAG;IAAE,WAAW,EAAE,cAAc,CAAA;CAAE,CAAC;AAsBzF,eAAO,MAAM,KAAK,EAAE,cAAc,EAiIjC,CAAC"}
1
+ {"version":3,"file":"definitions.d.ts","sourceRoot":"","sources":["../../src/tools/definitions.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,8BAA8B,CAAC;AAEzE,MAAM,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,EAAE,aAAa,CAAC,GAAG;IAAE,WAAW,EAAE,cAAc,CAAA;CAAE,CAAC;AAsBzF,eAAO,MAAM,KAAK,EAAE,cAAc,EAmLjC,CAAC"}
@@ -130,6 +130,52 @@ export const tools = [
130
130
  additionalProperties: false,
131
131
  },
132
132
  },
133
+ {
134
+ name: 'suggest_fixes',
135
+ description: 'Verify one data module (same steps as verify_data_module) and return fix candidates for each finding: XSD errors (values and elements from the libxml2 message or from the XSD definitions), BREX violations (the rule\'s allowed values with their descriptions; remove / add for forbidden / missing; allowed notations), unresolved references (similar DMCs in the CSDB, the issue present in the CSDB, ICN files that differ only in the extension, similar ids) and, when "product" is given, applicability that cannot be decided because the product lacks a value (values from the ACT, CCT and PCT). Every candidate is decided by the server; each fix has a confidence (exact / several / none) and the source of its candidates. Does NOT apply any fix.',
136
+ inputSchema: {
137
+ type: 'object',
138
+ properties: {
139
+ path: pathParam,
140
+ xml: xmlParam,
141
+ csdbDirs: csdbDirsParam,
142
+ skip: skipParam,
143
+ product: {
144
+ type: 'object',
145
+ description: 'The product to evaluate applicability against. If given, applicability that is undetermined because the product lacks a value is reported with candidate values. Omit it to skip applicability.',
146
+ properties: {
147
+ attributes: {
148
+ type: 'object',
149
+ additionalProperties: { type: 'string' },
150
+ description: 'ACT productAttribute id → value.',
151
+ },
152
+ conditions: {
153
+ type: 'object',
154
+ additionalProperties: { type: 'string' },
155
+ description: 'CCT cond id → value.',
156
+ },
157
+ },
158
+ additionalProperties: false,
159
+ },
160
+ includeSpecificationReferences: {
161
+ type: 'boolean',
162
+ description: 'Also list fixes for dmRef to the S1000D specification itself (modelIdentCode "S1000D"). They are never in a CSDB, are not errors and carry no candidate (default false; the count is always returned).',
163
+ default: false,
164
+ },
165
+ maxFixes: {
166
+ type: 'number',
167
+ description: 'Cap on fixes returned (default 200). The total count is always reported.',
168
+ default: 200,
169
+ },
170
+ maxCandidates: {
171
+ type: 'number',
172
+ description: 'Cap on candidates per fix (default 20). A fix that was cut carries candidateCount.',
173
+ default: 20,
174
+ },
175
+ },
176
+ additionalProperties: false,
177
+ },
178
+ },
133
179
  {
134
180
  name: 'list_schemas',
135
181
  description: 'Show which S1000D XML schema folders (xml_schema_flat/ containing brex.xsd) were found under S1000D_SPEC_DIR, with the issue read from brex.xsd and the schema names available. Use it to diagnose schema-not-found results.',
@@ -1 +1 @@
1
- {"version":3,"file":"definitions.js","sourceRoot":"","sources":["../../src/tools/definitions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"definitions.js","sourceRoot":"","sources":["../../src/tools/definitions.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"handlers.d.ts","sourceRoot":"","sources":["../../src/tools/handlers.ts"],"names":[],"mappings":"AAiCA,KAAK,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAChC,MAAM,MAAM,WAAW,GAAG,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;AAwT3D,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAMpD,CAAC"}
1
+ {"version":3,"file":"handlers.d.ts","sourceRoot":"","sources":["../../src/tools/handlers.ts"],"names":[],"mappings":"AA0CA,KAAK,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAChC,MAAM,MAAM,WAAW,GAAG,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;AA4a3D,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAOpD,CAAC"}
@@ -3,7 +3,7 @@
3
3
  * 検証の中身はすべて s1000d-core(verifyDataModule ほか)。ここは引数の解釈と応答の形だけ。
4
4
  */
5
5
  import { writeFileSync } from 'node:fs';
6
- import { collectReferences, defaultXmlEngine, formatDmc, locateXsd, readDataModuleInfo, resolveReferences, verifyDataModule, } from '@shuji-bonji/s1000d-core';
6
+ import { collectReferences, defaultXmlEngine, findApplicTables, findUndeterminedApplicability, formatDmc, locateXsd, readDataModuleInfo, resolveBrexChain, resolveReferences, suggestFixes, verifyDataModule, } from '@shuji-bonji/s1000d-core';
7
7
  import { ENV, LIMITS, specDir } from '../config.js';
8
8
  import { brexResolver, brexSearchDirs, configNotes, csdbIndex, csdbSearchDirs, loadXml, schemaDirs, schemaValidator, } from '../services/context.js';
9
9
  function str(v) {
@@ -262,6 +262,104 @@ async function verifyCsdbTool(args) {
262
262
  _notes: notes,
263
263
  };
264
264
  }
265
+ /** 1 回の呼び出しの中で同じ BREX を 2 度読まないための解決器(検証と修正提案の両方で連鎖をたどるため) */
266
+ function memoResolver(inner) {
267
+ const cache = new Map();
268
+ return (ref) => {
269
+ const key = formatDmc(ref.dmCode);
270
+ let hit = cache.get(key);
271
+ if (!hit) {
272
+ hit = Promise.resolve(inner(ref));
273
+ cache.set(key, hit);
274
+ }
275
+ return hit;
276
+ };
277
+ }
278
+ function stringRecord(v) {
279
+ if (!v || typeof v !== 'object')
280
+ return {};
281
+ return Object.fromEntries(Object.entries(v).filter((e) => typeof e[1] === 'string'));
282
+ }
283
+ function isSpecificationFix(f) {
284
+ return f.kind === 'reference' && f.source === 'modelIdentCode S1000D';
285
+ }
286
+ async function suggestFixesTool(args) {
287
+ const path = str(args.path);
288
+ const xml = loadXml({ path, xml: str(args.xml) }, LIMITS.maxInlineXmlBytes);
289
+ const ctx = { extraDirs: strArray(args.csdbDirs) };
290
+ const resolver = memoResolver(brexResolver(ctx));
291
+ const options = verifyOptions(args, ctx, path);
292
+ if (options.brex)
293
+ options.brex = { resolver };
294
+ const r = await verifyDataModule(xml, options);
295
+ const notes = resultNotes(r, ctx);
296
+ if (!r.status.wellFormed) {
297
+ return {
298
+ verification: r.status,
299
+ fixCount: 0,
300
+ fixes: [],
301
+ _notes: [...notes, 'The document is not well-formed XML; fix the XML syntax first.'],
302
+ };
303
+ }
304
+ const csdb = csdbIndex(ctx);
305
+ let brexLayers;
306
+ if (r.brex) {
307
+ brexLayers = (await resolveBrexChain(r.info?.identAndStatus?.brexDmRef, resolver)).layers;
308
+ }
309
+ let applicability;
310
+ let applicabilityInfo = { checked: false };
311
+ if (args.product && typeof args.product === 'object') {
312
+ const product = {
313
+ attributes: stringRecord(args.product.attributes),
314
+ conditions: stringRecord(args.product.conditions),
315
+ };
316
+ const tables = findApplicTables(xml, csdb);
317
+ const findings = findUndeterminedApplicability(xml, product);
318
+ applicability = {
319
+ findings,
320
+ act: tables.act?.act,
321
+ cct: tables.cct?.cct,
322
+ pct: tables.pct?.pct,
323
+ };
324
+ applicabilityInfo = {
325
+ checked: true,
326
+ undetermined: findings.length,
327
+ tables: { act: tables.act?.path, cct: tables.cct?.path, pct: tables.pct?.path },
328
+ missingTables: tables.missing,
329
+ };
330
+ }
331
+ const all = suggestFixes(r, { xml, csdb, brexLayers, applicability });
332
+ const spec = all.filter(isSpecificationFix);
333
+ const listed = args.includeSpecificationReferences === true ? all : all.filter((f) => !isSpecificationFix(f));
334
+ const maxFixes = int(args.maxFixes, 200, 1, 5000);
335
+ const maxCandidates = int(args.maxCandidates, 20, 1, 1000);
336
+ const fixes = listed.slice(0, maxFixes).map((f) => f.candidates.length > maxCandidates
337
+ ? {
338
+ ...f,
339
+ candidates: f.candidates.slice(0, maxCandidates),
340
+ candidateCount: f.candidates.length,
341
+ }
342
+ : f);
343
+ const byConfidence = { exact: 0, several: 0, none: 0 };
344
+ for (const f of listed)
345
+ byConfidence[f.confidence]++;
346
+ if (listed.length > fixes.length)
347
+ notes.push(`Only ${fixes.length} of ${listed.length} fixes are listed. Raise maxFixes to see more.`);
348
+ if (spec.length > 0 && args.includeSpecificationReferences !== true)
349
+ notes.push(`${spec.length} dmRef(s) to the S1000D specification itself are not listed; they are not errors.`);
350
+ notes.push('Choose only among the candidates. When confidence is "none", ask the user. Candidates with valueForm "range" or "pattern" are constraints; ask the user for a value that satisfies them.');
351
+ return {
352
+ verification: r.status,
353
+ fixCount: listed.length,
354
+ byConfidence,
355
+ fixes,
356
+ omitted: {
357
+ specificationReferences: args.includeSpecificationReferences === true ? 0 : spec.length,
358
+ },
359
+ applicability: applicabilityInfo,
360
+ _notes: notes,
361
+ };
362
+ }
265
363
  async function listSchemasTool() {
266
364
  const spec = specDir();
267
365
  const dirs = schemaDirs();
@@ -287,6 +385,7 @@ export const toolHandlers = {
287
385
  validate_schema: validateSchemaTool,
288
386
  check_references: checkReferencesTool,
289
387
  verify_csdb: verifyCsdbTool,
388
+ suggest_fixes: suggestFixesTool,
290
389
  list_schemas: listSchemasTool,
291
390
  };
292
391
  //# sourceMappingURL=handlers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"handlers.js","sourceRoot":"","sources":["../../src/tools/handlers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"handlers.js","sourceRoot":"","sources":["../../src/tools/handlers.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,18 +1,39 @@
1
1
  {
2
2
  "name": "@shuji-bonji/s1000d-verify-mcp",
3
- "version": "0.1.0",
3
+ "mcpName": "io.github.shuji-bonji/s1000d-verify-mcp",
4
+ "version": "0.2.0",
4
5
  "description": "MCP server that verifies S1000D® data modules: XML schema (XSD) validation with the user's own S1000D schemas, BREX (Business Rules Exchange) checks, and reference resolution, reported as one verification status. Not affiliated with ASD.",
5
- "keywords": ["mcp", "s1000d", "xsd", "schema-validation", "brex", "business-rules", "ietm", "ietp", "technical-publications", "xml"],
6
+ "keywords": [
7
+ "mcp",
8
+ "s1000d",
9
+ "xsd",
10
+ "schema-validation",
11
+ "brex",
12
+ "business-rules",
13
+ "ietm",
14
+ "ietp",
15
+ "technical-publications",
16
+ "xml"
17
+ ],
6
18
  "author": "shuji-bonji",
7
19
  "license": "MIT",
8
- "repository": { "type": "git", "url": "git+https://github.com/shuji-bonji/s1000d-verify-mcp.git" },
20
+ "repository": {
21
+ "type": "git",
22
+ "url": "git+https://github.com/shuji-bonji/s1000d-verify-mcp.git"
23
+ },
9
24
  "bugs": "https://github.com/shuji-bonji/s1000d-verify-mcp/issues",
10
25
  "type": "module",
11
26
  "main": "dist/index.js",
12
27
  "types": "dist/index.d.ts",
13
- "bin": { "s1000d-verify-mcp": "dist/index.js" },
14
- "files": ["dist"],
15
- "publishConfig": { "access": "public" },
28
+ "bin": {
29
+ "s1000d-verify-mcp": "dist/index.js"
30
+ },
31
+ "files": [
32
+ "dist"
33
+ ],
34
+ "publishConfig": {
35
+ "access": "public"
36
+ },
16
37
  "scripts": {
17
38
  "build": "tsc && chmod +x dist/index.js",
18
39
  "dev": "tsc --watch",
@@ -23,11 +44,12 @@
23
44
  "lint": "eslint src",
24
45
  "format": "prettier --write src",
25
46
  "format:check": "prettier --check src",
26
- "prepublishOnly": "npm run build"
47
+ "version": "node scripts/sync-plugin-version.mjs && git add .claude-plugin/plugin.json server.json",
48
+ "prepublishOnly": "node scripts/sync-plugin-version.mjs --check && npm run build"
27
49
  },
28
50
  "dependencies": {
29
51
  "@modelcontextprotocol/server": "^2.0.0",
30
- "@shuji-bonji/s1000d-core": "^0.2.0",
52
+ "@shuji-bonji/s1000d-core": "^0.3.0",
31
53
  "libxml2-wasm": "^0.7.2"
32
54
  },
33
55
  "devDependencies": {
@@ -41,5 +63,7 @@
41
63
  "typescript-eslint": "^8.53.0",
42
64
  "vitest": "^4.1.12"
43
65
  },
44
- "engines": { "node": ">=22.0.0" }
66
+ "engines": {
67
+ "node": ">=22.0.0"
68
+ }
45
69
  }