mcpField
S
S1000D BREX (S1000D Stack)

S1000D BREX (S1000D Stack)

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

S1000D BREX (S1000D Stack) について

S1000D BREXは、プロジェクトのBREXルールを読み取り、S1000Dデータモジュールを照合するMCPサーバーです。ルールの詳細と、BREX参照レイヤーごとの違反箇所を返します。

主な機能

  1. 01BREXルールと許可値の説明
  2. 02SNSコードとプロジェクト値の検索
  3. 03許可された図版・マルチメディア形式の一覧
  4. 04BREXレイヤーごとのデータモジュール検査
  5. 05XPathと行番号を含む違反報告

活用シーン

  1. 01データモジュール作成前のプロジェクトルール確認
  2. 02データモジュール内のルール違反の特定
  3. 03SNSコードや要素の許可値の検索

MCP 対応

BREXルールの説明、SNSコードと値の検索、記法の一覧表示、BREXに基づくデータモジュール検査のツールを提供します。違反と未解決のBREXレイヤーを報告します。

設定

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

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

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

パッケージ
npm@shuji-bonji/s1000d-brex-mcp0.5.0

ツール

5

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

パラメーター型必須説明
brexstringいいえ使用する BREX:BREX データモジュールのファイルパス(.xml)、または csdbDirs / S1000D_CSDB_DIR / S1000D_SPEC_DIR で検索する DMC(例:"KENBAIKI-A-00-00-00-00A-022A-D"。"DMC-" プレフィックスは省略可能)。省略すると、S1000D_SPEC_DIR 配下で見つかった S1000D のデフォルト BREX を使用します。
kindenumいいえ一覧表示するルールの種類(デフォルト:すべて)。all | structure | notation | nonContext
limitnumberいいえ返すルールの最大数(デフォルト:50、最大:500)。
offsetnumberいいえ返す最初のルールのインデックス(デフォルト:0)。
searchstringいいえobjectPath、objectUse、ルール ID、または値の意味から検索する、大文字と小文字を区別しないテキスト。
contextstringいいえこのスキーマ("descript"、"proced"、"pm" などのファイル名)に適用されるルールと共通ルールのみを対象にします。省略すると、すべてのコンテキストが対象になります。
csdbDirsarrayいいえDMC でデータモジュールと BREX を検索する追加フォルダー(S1000D_CSDB_DIR および S1000D_SPEC_DIR に加えて)。

詳細

@shuji-bonji/s1000d-brex-mcp

English | 日本語

LLM が S1000D® BREX(Business Rules Exchange)データモジュールを読み取り、BREX に照らしてデータモジュールをチェックできる MCP サーバーです。プロジェクトや組織が BREX に記述した内容を、人が読みやすい形式で返します。使用できる要素と属性、許可される値とその意味、標準番号システム(SNS)コードの意味、使用できる図版形式を確認できます。また、データモジュールがこれらのルールに従っているかどうかを、各違反の位置とともに報告します。

重要

これは個人プロジェクトであり、ASD(Aerospace, Security and Defence Industries Association of Europe)とは関係ありません。S1000D® は ASD の登録商標です。 S1000D 仕様、XML スキーマ、デフォルト BREX、公式サンプルは、利用規約で再配布が認められていないため、どのパッケージやリポジトリにも含まれていません。s1000d.org から入手し、展開したフォルダーを環境変数 S1000D_SPEC_DIR に指定してください。

できること

ツール説明
explain_brexBREX のルールを一覧表示します。対象(XPath)、使用できるかどうか(禁止、必須、または任意)、許可される値とその意味、重要度レベル、ルールが適用されるスキーマを返します。kind、context、search で一覧を絞り込み、offset と limit で分割して確認できます
lookup_snsDMC またはコードから、標準番号システム(SNS)コードが何を指すかを返します
lookup_valueプロジェクトにおける要素または属性の値の意味と、許可される値を返します
list_notations使用できる図版およびマルチメディア形式を、基本セットとスキーマごとの追加・除外に分けて返します
check_against_brexデータモジュールを BREX に照らしてチェックし、各違反の位置(XPath と行番号)、実際の値、ルール ID、説明、重要度レベルを返します。デフォルトでは brexDmRef チェーン(プロジェクト BREX → … → デフォルト BREX)をたどり、各レイヤーを個別にチェックします

できないこと

警告

  • XML スキーマ(XSD)に対する検証は行いません。 スキーマエラーにより、BREX 違反が隠れたり、誤った違反が発生したりすることがあります。s1000d-verify-mcp の validate_schema/verify_data_module でスキーマ検証を実行してください。
  • S1000D への適合性は判定しません。 check_against_brex の passed: true が意味するのは、解決できたすべてのレイヤーにおいて、機械的にチェック可能な BREX ルールへの違反がなかったということだけです。文章で記述された nonContextRules は manualChecks として返され、判定は人が行います。
  • 重要度レベルのコード(brsl01~brsl99)の意味は解釈しません。これらはプロジェクトが定義するため、そのまま返されます。

メモ

ある BREX にルールがないからといって、制限がないとは限りません。上位の BREX(brexDmRef をたどった先にある S1000D デフォルト BREX)や、人向けに作成された業務ルール文書で制限されている場合があります。check_against_brex は見つからなかったレイヤーを unresolvedBrex に報告します。このフィールドが空でない結果は、不完全なものとして扱ってください。

設定

環境変数説明
S1000D_SPEC_DIR入手した S1000D 配布物を展開したフォルダーです。デフォルト BREX(DMC-S1000D-*-04-10-0301-00A-022A-D_*.XML)はこのフォルダー内から検索されます。内側にある ZIP ファイルも展開してください
S1000D_CSDB_DIRプロジェクトのデータモジュールを格納したフォルダーです。複数のフォルダーは :(Windows では ;)で区切って指定できます。DMC で指定された BREX とチェーンの各レイヤーは、ここから検索されます

フォルダーはツール引数 csdbDirs でも追加できます。BREX はファイルパスまたは DMC(DMC- 接頭辞は省略可能)で指定できます。省略した場合はデフォルト BREX が使われます。

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

チェックルール

チェックは、S1000D Issue 7 の Chap 4.10.2(BREX data module)および Chap 7.9(Business rules processing)に従います。詳細については、@shuji-bonji/s1000d-core の README を参照してください。

項目処理
allowedObjectFlag0 = 対象が存在する場合は違反、1 = 対象が存在しない場合は違反、2 = 対象が存在する場合、値を objectValue(単一/範囲/パターン)と照合
rulesContext対象のデータモジュールとスキーマが一致するブロック、および共通ブロックが適用されます
notationRuleListDOCTYPE で宣言された NOTATION が許可セットに含まれていない場合は違反
レイヤー各レイヤーを個別にチェックします。レイヤーは統合されません。違反があるレイヤーがなく、未解決の参照もない場合にのみ passed となります

開発

npm install
npm run build
npm test            # runs on self-made test data only
npm run test:spec   # uses the S1000D distribution (set its location with S1000D_SPEC_DIR)

ライセンス

MIT

コメント

MCP は初めてですか?

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

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