mcpField
S
S1000D Verify (S1000D Stack)

S1000D Verify (S1000D Stack)

ローカル
shuji-bonji.github.io生産性0今日更新

S1000D Verify (S1000D Stack) について

S1000D Verifyは、S1000DデータモジュールのXML形式、XSD、BREXルール、参照を検査するMCPサーバーです。CSDBを確認するチーム向けに根拠と統合ステータスを返しますが、適合性そのものは判定しません。

主な機能

  1. 01XML形式とXSDの検査
  2. 02BREXルールチェーンの検査
  3. 035種類の参照先の解決
  4. 04CSDBフォルダーの一括検証
  5. 05各段階の詳細とステータス出力

活用シーン

  1. 01データモジュールのXSDエラー特定
  2. 02BREXや参照の問題確認
  3. 03フォルダー内オブジェクトの検証状況集約

MCP 対応

MCPサーバーとして、モジュール検証、XSD検査、参照検査、CSDB一括検証、スキーマ一覧のツールをクライアントに提供します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"shuji-bonji-s1000d-verify": {
"command": "npx",
"args": [
"-y",
"@shuji-bonji/s1000d-verify-mcp"
]
}
}
}
起動コマンドnpx -y @shuji-bonji/s1000d-verify-mcp

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npm@shuji-bonji/s1000d-verify-mcp0.6.1

ツール

6

掲載時のツール一覧 · 今日に更新

パラメーター型必須説明
xmlstringいいえXML 文字列としてのドキュメント(パスの代わりに指定可能、最大 5 MB)。
pathstringいいえチェックするデータモジュール(または PM)のファイルパス。
skiparrayいいえスキップするステップ。スキップしたステップは状態 "not-run" で報告されます。
csdbDirsarrayいいえ参照先のデータモジュール、出版モジュール、ICN ファイル、BREX を検索する追加の CSDB フォルダー(S1000D_CSDB_DIR に加えて使用。BREX は S1000D_SPEC_DIR の下も検索)。
maxSchemaErrorsnumberいいえ返す XSD エラー数の上限(デフォルトは 100)。合計数は常に報告されます。
maxUnresolvedRefsnumberいいえ未解決の参照の返却上限(デフォルト:200)。
maxViolationsPerLayernumberいいえレイヤーごとの BREX 違反の返却上限(デフォルト:200)。

詳細

@shuji-bonji/s1000d-verify-mcp

英語 | 日本語

LLM が S1000D® データモジュールの検査状況を、根拠とともに把握できるようにする MCP サーバーです。XML スキーマ(XSD)に対する検証、BREX(Business Rules Exchange)に対するチェック、参照(dmRef、pmRef、ICN、internalRef、applicRefId)の解決という 3 つの手順を実行し、その結果を 1 つの検証ステータス(verification)にまとめて返します。この検証ステータスは、s1000d-reader-mcp がコンテンツ応答に埋め込むものと同じ形式です。

重要

これは個人プロジェクトであり、ASD(欧州航空宇宙・安全保障・防衛産業協会)とは無関係です。S1000D® は ASD の登録商標です。 S1000D 仕様、XML スキーマ、デフォルトの BREX、および公式サンプルは、利用条件で再配布が認められていないため、いずれのパッケージやリポジトリにも含まれていません。XSD 検証とデフォルトの BREX に対するチェックを実行するには、s1000d.org からご自身で入手し、展開したフォルダーを S1000D_SPEC_DIR 環境変数に指定してください。

このツールでできること

ツール説明
verify_data_module1 つのデータモジュールを整形式チェック → XSD → BREX チェーン → 参照の順に検証し、verification(検証ステータス)と各手順の詳細(XSD 違反の行番号、BREX 違反の場所、解決できない参照とその理由)を返します
validate_schemaXSD 検証のみを実行します。使用する XSD は xsi:noNamespaceSchemaLocation にあるファイル名から選択し、S1000D_SPEC_DIR 配下の xml_schema_flat/ から検索します。イシューは brex.xsd の先頭にある Issue number: 行から読み取ります
check_references5 種類の参照(dmRef / pmRef / ICN / internalRef / applicRefId)を収集し、それぞれの参照先が存在するかどうかを理由とともに返します。仕様書の章への dmRef(モデル識別コード S1000D)は参照切れではないため、別途報告されます
verify_csdbフォルダー内の CSDB オブジェクト(デフォルトでは DMC と PMC)を 1 回の実行で検証し、各オブジェクトの検証ステータスと件数の概要を返します。結果は offset / limit で分割して読み取り、詳細は reportPath で JSON に書き出せます
list_schemasS1000D_SPEC_DIR 配下で見つかった xml_schema_flat/ フォルダーの一覧(イシュー、XSD の数、スキーマ名)を返します。schema-not-found の原因を調べる際に使用してください
検証ステータス(verification)
フィールド値意味
schema.statevalid / invalid / schema-not-found / not-runXSD が見つかり、違反 0 件で検証済み / 違反が見つかった / XSD が見つからない(理由は reason) / skip によりスキップ
brex.statepassed / violations / incomplete / not-runすべてのレイヤーで違反 0 件 / 違反が見つかった / 解決できない BREX または評価できないルールがある / スキップ
references.stateresolved / unresolved / not-run未解決の参照 0 件 / 未解決の参照が見つかった / スキップ

schema-not-found は valid ではありません。XSD 検証が実行されなかったことを意味します。

対応していないこと

警告

  • S1000D への適合性は判定しません。 schema: valid と brex: passed は、XSD と機械で確認できる BREX ルールに対してエラーが見つからなかったことだけを意味します。nonContextRules(文章で記述された合意事項)は manualChecks として返され、人が判断します。プロジェクトの業務ルール文書は、すべてのツールの対象範囲外です。
  • BREX ルールの説明や値の意味は返しません。それらは s1000d-brex-mcp の explain_brex / lookup_value の役割です。重大度レベルコード(brsl01 から brsl99)はそのまま返されます。
  • 適用性(コンテンツがどの製品に適用されるか)は評価しません。check_references が確認するのは、applicRefId の参照先が存在するかどうかだけです。評価は s1000d-reader-mcp が行います。

メモ

XSD に違反している文書では、要素の位置が仕様と異なる場合があるため、BREX 違反が誤って報告されたり、見落とされたりすることがあります。schema.state が invalid の場合は、BREX の結果を参考程度にとどめてください(レスポンスの _notes にもその旨が記載されています)。

設定

環境変数説明
S1000D_SPEC_DIR入手した S1000D 配布物を展開したフォルダーです。XSD(xml_schema_flat/。事前に内側の「XML Schema Package」zip を展開してください)とデフォルトの BREX(DMC-S1000D-*-04-10-0301-00A-022A-D_*.XML)はこのフォルダー以下から検索されます。データディクショナリ内の XSD のコピーは使用されません(そのインポートは絶対 URL であり、オフラインでは解決できません)
S1000D_CSDB_DIRプロジェクトのデータモジュールを格納するフォルダーです。:(Windows では ;)で区切ることで、複数のフォルダーを指定できます。参照先の DM、PM、ICN ファイルと、チェーン内の BREX はここから検索されます

フォルダーはツール引数 csdbDirs でも追加できます。

Claude Desktop / Claude Code の設定例
{
  "mcpServers": {
    "s1000d-verify": {
      "command": "npx",
      "args": ["-y", "@shuji-bonji/s1000d-verify-mcp"],
      "env": {
        "S1000D_SPEC_DIR": "/path/to/s1000d/issue-7",
        "S1000D_CSDB_DIR": "/path/to/your/csdb"
      }
    }
  }
}

仕組み

すべての検証ロジックは共有ライブラリ @shuji-bonji/s1000d-core にあり、このサーバーは引数の解釈とレスポンスの形式だけを担います。XSD の検証には libxml2-wasm(libxml2 の WebAssembly ビルド)を使用し、各 XSD は一度だけコンパイルして再利用するため、Issue 7 の公式サンプル 106 件を 0.5 秒未満で検証できます。BREX チェックは s1000d-brex-mcp と同じ関数を呼び出すため、2 つのサーバーの結果は一致します。

開発

npm install
npm test            # runs with self-made test data only
npm run test:spec   # uses the distribution you obtained (set the location with S1000D_SPEC_DIR; default ../../specs/s1000d/issue-7)
npm run build && S1000D_SPEC_DIR=/path/to/issue-7 npm start   # starts over stdio

ライセンス

MIT。S1000D® は ASD の登録商標です。本ソフトウェアは ASD と提携しておらず、仕様、スキーマ、公式サンプルを含みません。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。