S1000D BREX (S1000D Stack) について
S1000D BREXは、プロジェクトのBREXルールを読み取り、S1000Dデータモジュールを照合するMCPサーバーです。ルールの詳細と、BREX参照レイヤーごとの違反箇所を返します。
主な機能
- 01BREXルールと許可値の説明
- 02SNSコードとプロジェクト値の検索
- 03許可された図版・マルチメディア形式の一覧
- 04BREXレイヤーごとのデータモジュール検査
- 05XPathと行番号を含む違反報告
活用シーン
- 01データモジュール作成前のプロジェクトルール確認
- 02データモジュール内のルール違反の特定
- 03SNSコードや要素の許可値の検索
MCP 対応
BREXルールの説明、SNSコードと値の検索、記法の一覧表示、BREXに基づくデータモジュール検査のツールを提供します。違反と未解決のBREXレイヤーを報告します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
5掲載時のツール一覧 · 今日に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| brex | string | いいえ | 使用する 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 を使用します。 |
| kind | enum | いいえ | 一覧表示するルールの種類(デフォルト:すべて)。all | structure | notation | nonContext |
| limit | number | いいえ | 返すルールの最大数(デフォルト:50、最大:500)。 |
| offset | number | いいえ | 返す最初のルールのインデックス(デフォルト:0)。 |
| search | string | いいえ | objectPath、objectUse、ルール ID、または値の意味から検索する、大文字と小文字を区別しないテキスト。 |
| context | string | いいえ | このスキーマ("descript"、"proced"、"pm" などのファイル名)に適用されるルールと共通ルールのみを対象にします。省略すると、すべてのコンテキストが対象になります。 |
| csdbDirs | array | いいえ | 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_brex | BREX のルールを一覧表示します。対象(XPath)、使用できるかどうか(禁止、必須、または任意)、許可される値とその意味、重要度レベル、ルールが適用されるスキーマを返します。kind、context、search で一覧を絞り込み、offset と limit で分割して確認できます |
lookup_sns | DMC またはコードから、標準番号システム(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 を参照してください。
| 項目 | 処理 |
|---|---|
allowedObjectFlag | 0 = 対象が存在する場合は違反、1 = 対象が存在しない場合は違反、2 = 対象が存在する場合、値を objectValue(単一/範囲/パターン)と照合 |
rulesContext | 対象のデータモジュールとスキーマが一致するブロック、および共通ブロックが適用されます |
notationRuleList | DOCTYPE で宣言された 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
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。