@shuji-bonji/s1000d-verify-mcp 0.2.0 → 0.3.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 +13 -0
- package/README.md +13 -0
- package/dist/config.d.ts +12 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +27 -12
- package/dist/config.js.map +1 -1
- package/dist/server.js +1 -1
- package/dist/server.js.map +1 -1
- package/dist/services/context.d.ts.map +1 -1
- package/dist/services/context.js +4 -4
- package/dist/services/context.js.map +1 -1
- package/package.json +2 -2
package/README.ja.md
CHANGED
|
@@ -49,6 +49,19 @@ S1000D® のデータモジュールを LLM が「どこまで確認済みか」
|
|
|
49
49
|
|
|
50
50
|
ツールの引数 `csdbDirs` でフォルダーを追加することもできます。
|
|
51
51
|
|
|
52
|
+
### 設定ファイル(Claude Desktop の plugin など、環境変数が渡らないとき)
|
|
53
|
+
|
|
54
|
+
`S1000D_SPEC_DIR` / `S1000D_CSDB_DIR` が無いときは、設定ファイル `~/.config/s1000d-stack/config.json`(`XDG_CONFIG_HOME` があればその下、`S1000D_CONFIG` で場所を変更可)を読みます。Claude Desktop は、plugin で入れたサーバーに環境変数を渡さず、plugin の `env` に書いた `${VAR}` も置き換えません。plugin で入れたときは、こちらに書いてください。
|
|
55
|
+
|
|
56
|
+
```json
|
|
57
|
+
{
|
|
58
|
+
"specDir": "/path/to/s1000d/issue-7",
|
|
59
|
+
"csdbDirs": ["/path/to/your/csdb"]
|
|
60
|
+
}
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
環境変数があれば、そちらが優先します。`~/` で始まるパスも使えます。設定ファイルは呼び出しのたびに読み直すので、書き換えたあとにサーバーを再起動する必要はありません。
|
|
64
|
+
|
|
52
65
|
### Claude Desktop / Claude Code の設定例
|
|
53
66
|
|
|
54
67
|
```json
|
package/README.md
CHANGED
|
@@ -49,6 +49,19 @@ An MCP server that lets an LLM know, with evidence, how far an S1000D® data mod
|
|
|
49
49
|
|
|
50
50
|
Folders can also be added with the tool argument `csdbDirs`.
|
|
51
51
|
|
|
52
|
+
### Config file (when environment variables are not passed, as with plugins in Claude Desktop)
|
|
53
|
+
|
|
54
|
+
If `S1000D_SPEC_DIR` / `S1000D_CSDB_DIR` are not set, the server reads the config file `~/.config/s1000d-stack/config.json` (under `XDG_CONFIG_HOME` if it is set; `S1000D_CONFIG` changes the location). Claude Desktop does not pass environment variables to servers installed as plugins, and does not substitute `${VAR}` written in the plugin's `env`. When you install the server as a plugin, write the folders here.
|
|
55
|
+
|
|
56
|
+
```json
|
|
57
|
+
{
|
|
58
|
+
"specDir": "/path/to/s1000d/issue-7",
|
|
59
|
+
"csdbDirs": ["/path/to/your/csdb"]
|
|
60
|
+
}
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
Environment variables take precedence when they are set. Paths that start with `~/` are accepted. The config file is read again on every call, so the server does not need to be restarted after you edit it.
|
|
64
|
+
|
|
52
65
|
### Configuration example for Claude Desktop / Claude Code
|
|
53
66
|
|
|
54
67
|
```json
|
package/dist/config.d.ts
CHANGED
|
@@ -1,16 +1,27 @@
|
|
|
1
|
+
import { type ResolvedStackConfig } from '@shuji-bonji/s1000d-core';
|
|
1
2
|
export declare const PACKAGE_INFO: {
|
|
2
3
|
readonly name: string;
|
|
3
4
|
readonly version: string;
|
|
4
5
|
};
|
|
5
|
-
/**
|
|
6
|
+
/** 環境変数の名前(無ければ設定ファイルの specDir / csdbDirs を読む) */
|
|
6
7
|
export declare const ENV: {
|
|
7
8
|
/** 利用者が入手した S1000D の配布物を展開したフォルダー。XSD(xml_schema_flat/)と既定 BREX をここから探す */
|
|
8
9
|
readonly specDir: "S1000D_SPEC_DIR";
|
|
9
10
|
/** プロジェクトの CSDB(データモジュールが置かれたフォルダー)。区切り文字で複数指定できる */
|
|
10
11
|
readonly csdbDirs: "S1000D_CSDB_DIR";
|
|
11
12
|
};
|
|
13
|
+
/**
|
|
14
|
+
* 配布物と CSDB の場所。環境変数 → 設定ファイル(既定 ~/.config/s1000d-stack/config.json)の順に読む(core の resolveStackConfig)。
|
|
15
|
+
* Claude Desktop は plugin のサーバーに環境変数を渡さないので、設定ファイルでも決められるようにしている。
|
|
16
|
+
* 呼ぶたびに読み直す(設定ファイルを直したらサーバーの再起動なしで効く)。
|
|
17
|
+
*/
|
|
18
|
+
export declare function stackConfig(): ResolvedStackConfig;
|
|
12
19
|
export declare function specDir(): string | undefined;
|
|
13
20
|
export declare function csdbDirs(): string[];
|
|
21
|
+
/** 配布物の場所が決まらないときの案内(環境変数か設定ファイルのどちらで決めるか) */
|
|
22
|
+
export declare function specDirHint(): string;
|
|
23
|
+
/** 設定の注記(置き換えられずに渡った ${VAR}、読めない設定ファイル) */
|
|
24
|
+
export declare function stackConfigWarnings(): string[];
|
|
14
25
|
/** 応答の大きさの上限 */
|
|
15
26
|
export declare const LIMITS: {
|
|
16
27
|
/** XML 文字列を直接渡すときの上限(バイト) */
|
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAIA,OAAO,EAGL,KAAK,mBAAmB,EACzB,MAAM,0BAA0B,CAAC;AAKlC,eAAO,MAAM,YAAY;;;CAGf,CAAC;AAEX,kDAAkD;AAClD,eAAO,MAAM,GAAG;IACd,2EAA2E;;IAE3E,qDAAqD;;CAE7C,CAAC;AAEX;;;;GAIG;AACH,wBAAgB,WAAW,IAAI,mBAAmB,CAEjD;AAED,wBAAgB,OAAO,IAAI,MAAM,GAAG,SAAS,CAE5C;AAED,wBAAgB,QAAQ,IAAI,MAAM,EAAE,CAEnC;AAED,8CAA8C;AAC9C,wBAAgB,WAAW,IAAI,MAAM,CAEpC;AAED,2CAA2C;AAC3C,wBAAgB,mBAAmB,IAAI,MAAM,EAAE,CAQ9C;AAED,gBAAgB;AAChB,eAAO,MAAM,MAAM;IACjB,6BAA6B;;IAE7B,+BAA+B;;;IAG/B,2BAA2B;;IAE3B,mBAAmB;;IAEnB,6BAA6B;;;CAGrB,CAAC"}
|
package/dist/config.js
CHANGED
|
@@ -1,33 +1,48 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* 設定。環境変数(と設定ファイル)とパッケージ情報をここに集める(s1000d-brex-mcp と同じ名前・同じ形)。
|
|
3
3
|
*/
|
|
4
4
|
import { createRequire } from 'node:module';
|
|
5
|
-
import {
|
|
5
|
+
import { resolveStackConfig, specDirHowTo, } from '@shuji-bonji/s1000d-core';
|
|
6
6
|
const require = createRequire(import.meta.url);
|
|
7
7
|
const packageJson = require('../package.json');
|
|
8
8
|
export const PACKAGE_INFO = {
|
|
9
9
|
name: packageJson.name,
|
|
10
10
|
version: packageJson.version,
|
|
11
11
|
};
|
|
12
|
-
/**
|
|
12
|
+
/** 環境変数の名前(無ければ設定ファイルの specDir / csdbDirs を読む) */
|
|
13
13
|
export const ENV = {
|
|
14
14
|
/** 利用者が入手した S1000D の配布物を展開したフォルダー。XSD(xml_schema_flat/)と既定 BREX をここから探す */
|
|
15
15
|
specDir: 'S1000D_SPEC_DIR',
|
|
16
16
|
/** プロジェクトの CSDB(データモジュールが置かれたフォルダー)。区切り文字で複数指定できる */
|
|
17
17
|
csdbDirs: 'S1000D_CSDB_DIR',
|
|
18
18
|
};
|
|
19
|
+
/**
|
|
20
|
+
* 配布物と CSDB の場所。環境変数 → 設定ファイル(既定 ~/.config/s1000d-stack/config.json)の順に読む(core の resolveStackConfig)。
|
|
21
|
+
* Claude Desktop は plugin のサーバーに環境変数を渡さないので、設定ファイルでも決められるようにしている。
|
|
22
|
+
* 呼ぶたびに読み直す(設定ファイルを直したらサーバーの再起動なしで効く)。
|
|
23
|
+
*/
|
|
24
|
+
export function stackConfig() {
|
|
25
|
+
return resolveStackConfig();
|
|
26
|
+
}
|
|
19
27
|
export function specDir() {
|
|
20
|
-
|
|
21
|
-
return v ? v : undefined;
|
|
28
|
+
return stackConfig().specDir;
|
|
22
29
|
}
|
|
23
30
|
export function csdbDirs() {
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
+
return stackConfig().csdbDirs;
|
|
32
|
+
}
|
|
33
|
+
/** 配布物の場所が決まらないときの案内(環境変数か設定ファイルのどちらで決めるか) */
|
|
34
|
+
export function specDirHint() {
|
|
35
|
+
return specDirHowTo(stackConfig());
|
|
36
|
+
}
|
|
37
|
+
/** 設定の注記(置き換えられずに渡った ${VAR}、読めない設定ファイル) */
|
|
38
|
+
export function stackConfigWarnings() {
|
|
39
|
+
const c = stackConfig();
|
|
40
|
+
return [
|
|
41
|
+
...c.warnings,
|
|
42
|
+
...(c.configError
|
|
43
|
+
? [`The config file ${c.configPath} could not be read: ${c.configError}`]
|
|
44
|
+
: []),
|
|
45
|
+
];
|
|
31
46
|
}
|
|
32
47
|
/** 応答の大きさの上限 */
|
|
33
48
|
export const LIMITS = {
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EACL,kBAAkB,EAClB,YAAY,GAEb,MAAM,0BAA0B,CAAC;AAElC,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,MAAM,WAAW,GAAG,OAAO,CAAC,iBAAiB,CAAsC,CAAC;AAEpF,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,IAAI,EAAE,WAAW,CAAC,IAAI;IACtB,OAAO,EAAE,WAAW,CAAC,OAAO;CACpB,CAAC;AAEX,kDAAkD;AAClD,MAAM,CAAC,MAAM,GAAG,GAAG;IACjB,2EAA2E;IAC3E,OAAO,EAAE,iBAAiB;IAC1B,qDAAqD;IACrD,QAAQ,EAAE,iBAAiB;CACnB,CAAC;AAEX;;;;GAIG;AACH,MAAM,UAAU,WAAW;IACzB,OAAO,kBAAkB,EAAE,CAAC;AAC9B,CAAC;AAED,MAAM,UAAU,OAAO;IACrB,OAAO,WAAW,EAAE,CAAC,OAAO,CAAC;AAC/B,CAAC;AAED,MAAM,UAAU,QAAQ;IACtB,OAAO,WAAW,EAAE,CAAC,QAAQ,CAAC;AAChC,CAAC;AAED,8CAA8C;AAC9C,MAAM,UAAU,WAAW;IACzB,OAAO,YAAY,CAAC,WAAW,EAAE,CAAC,CAAC;AACrC,CAAC;AAED,2CAA2C;AAC3C,MAAM,UAAU,mBAAmB;IACjC,MAAM,CAAC,GAAG,WAAW,EAAE,CAAC;IACxB,OAAO;QACL,GAAG,CAAC,CAAC,QAAQ;QACb,GAAG,CAAC,CAAC,CAAC,WAAW;YACf,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,UAAU,uBAAuB,CAAC,CAAC,WAAW,EAAE,CAAC;YACzE,CAAC,CAAC,EAAE,CAAC;KACR,CAAC;AACJ,CAAC;AAED,gBAAgB;AAChB,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,6BAA6B;IAC7B,iBAAiB,EAAE,CAAC,GAAG,IAAI,GAAG,IAAI;IAClC,+BAA+B;IAC/B,mBAAmB,EAAE,GAAG;IACxB,eAAe,EAAE,IAAI;IACrB,2BAA2B;IAC3B,qBAAqB,EAAE,GAAG;IAC1B,mBAAmB;IACnB,qBAAqB,EAAE,GAAG;IAC1B,6BAA6B;IAC7B,YAAY,EAAE,GAAG;IACjB,QAAQ,EAAE,IAAI;CACN,CAAC"}
|
package/dist/server.js
CHANGED
|
@@ -22,7 +22,7 @@ It does NOT do the following:
|
|
|
22
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.
|
|
23
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
24
|
- It does not apply fixes. suggest_fixes only returns candidates.
|
|
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.
|
|
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). Instead of the environment variable, {"specDir": "/absolute/path"} can be written to ~/.config/s1000d-stack/config.json (for hosts that do not pass environment variables to plugins). Project data modules are found via ${ENV.csdbDirs}, "csdbDirs" in that config file, or the "csdbDirs" argument.
|
|
26
26
|
|
|
27
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.
|
|
28
28
|
|
package/dist/server.js.map
CHANGED
|
@@ -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;;;;;;;;;GASG;AACH,MAAM,YAAY,GAAG;;;;;;;oIAO+G,GAAG,CAAC,OAAO,
|
|
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,4UAA4U,GAAG,CAAC,QAAQ;;;;;;8JAMzU,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":"context.d.ts","sourceRoot":"","sources":["../../src/services/context.ts"],"names":[],"mappings":"AAQA,OAAO,EACL,SAAS,EAGT,KAAK,YAAY,EACjB,KAAK,SAAS,EACf,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/services/context.ts"],"names":[],"mappings":"AAQA,OAAO,EACL,SAAS,EAGT,KAAK,YAAY,EACjB,KAAK,SAAS,EACf,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AAU9E,MAAM,WAAW,cAAc;IAC7B,uBAAuB;IACvB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB;AAMD,oDAAoD;AACpD,wBAAgB,cAAc,CAAC,OAAO,GAAE,cAAmB,GAAG,MAAM,EAAE,CAErE;AAED,gCAAgC;AAChC,wBAAgB,cAAc,CAAC,OAAO,GAAE,cAAmB,GAAG,MAAM,EAAE,CAGrE;AAGD,wBAAgB,eAAe,IAAI,sBAAsB,CAGxD;AACD,wBAAgB,gBAAgB,IAAI,IAAI,CAGvC;AAGD,oDAAoD;AACpD,wBAAgB,UAAU,IAAI,SAAS,EAAE,CAcxC;AAGD,sCAAsC;AACtC,wBAAgB,SAAS,CAAC,OAAO,GAAE,cAAmB,GAAG,SAAS,GAAG,SAAS,CAU7E;AACD,8BAA8B;AAC9B,wBAAgB,WAAW,IAAI,IAAI,CAGlC;AAED,wBAAgB,YAAY,CAAC,OAAO,GAAE,cAAmB,GAAG,YAAY,CAEvE;AAED,uBAAuB;AACvB,wBAAgB,WAAW,CAAC,OAAO,GAAE,cAAmB,GAAG,MAAM,EAAE,CAiBlE;AAED,2CAA2C;AAC3C,wBAAgB,OAAO,CAAC,KAAK,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAWxF"}
|
package/dist/services/context.js
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
import { existsSync, readFileSync, statSync } from 'node:fs';
|
|
9
9
|
import { CsdbIndex, createDirectoryBrexResolver, findSchemaDirs, } from '@shuji-bonji/s1000d-core';
|
|
10
10
|
import { Libxml2SchemaValidator } from '@shuji-bonji/s1000d-core/xsd-libxml2';
|
|
11
|
-
import { ENV, csdbDirs, specDir } from '../config.js';
|
|
11
|
+
import { ENV, csdbDirs, specDir, specDirHint, stackConfig, stackConfigWarnings, } from '../config.js';
|
|
12
12
|
function existingDirs(dirs) {
|
|
13
13
|
return [...new Set(dirs.filter((d) => existsSync(d) && statSync(d).isDirectory()))];
|
|
14
14
|
}
|
|
@@ -70,15 +70,15 @@ export function brexResolver(options = {}) {
|
|
|
70
70
|
}
|
|
71
71
|
/** 設定が無いときに応答へ添える案内 */
|
|
72
72
|
export function configNotes(options = {}) {
|
|
73
|
-
const notes = [];
|
|
73
|
+
const notes = [...stackConfigWarnings()];
|
|
74
74
|
if (!specDir()) {
|
|
75
|
-
notes.push(`${ENV.specDir} is not set: XSD validation is reported as schema-not-found and the S1000D default BREX cannot be found.
|
|
75
|
+
notes.push(`${ENV.specDir} is not set: XSD validation is reported as schema-not-found and the S1000D default BREX cannot be found. ${specDirHint()}`);
|
|
76
76
|
}
|
|
77
77
|
else if (schemaDirs().length === 0) {
|
|
78
78
|
notes.push(`No xml_schema_flat/ folder (containing brex.xsd) was found under ${ENV.specDir}=${specDir()}. Extract the "XML Schema Package" zip inside it.`);
|
|
79
79
|
}
|
|
80
80
|
if (csdbSearchDirs(options).length === 0) {
|
|
81
|
-
notes.push(`No CSDB folders: set ${ENV.csdbDirs} or pass "csdbDirs". References to other data modules, publication modules and ICN files are reported as no-csdb.`);
|
|
81
|
+
notes.push(`No CSDB folders: set ${ENV.csdbDirs}, add "csdbDirs" to ${stackConfig().configPath}, or pass "csdbDirs". References to other data modules, publication modules and ICN files are reported as no-csdb.`);
|
|
82
82
|
}
|
|
83
83
|
return notes;
|
|
84
84
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/services/context.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC7D,OAAO,EACL,SAAS,EACT,2BAA2B,EAC3B,cAAc,GAGf,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AAC9E,OAAO,
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/services/context.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@shuji-bonji/s1000d-verify-mcp",
|
|
3
3
|
"mcpName": "io.github.shuji-bonji/s1000d-verify-mcp",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.3.0",
|
|
5
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.",
|
|
6
6
|
"keywords": [
|
|
7
7
|
"mcp",
|
|
@@ -49,7 +49,7 @@
|
|
|
49
49
|
},
|
|
50
50
|
"dependencies": {
|
|
51
51
|
"@modelcontextprotocol/server": "^2.0.0",
|
|
52
|
-
"@shuji-bonji/s1000d-core": "^0.
|
|
52
|
+
"@shuji-bonji/s1000d-core": "^0.4.0",
|
|
53
53
|
"libxml2-wasm": "^0.7.2"
|
|
54
54
|
},
|
|
55
55
|
"devDependencies": {
|