S1000D BREX (S1000D Stack)

السجل الرسمي أخرى

Read S1000D BREX business rules and check data modules against them, layer by layer.

التثبيت

أضف هذا إلى إعدادات MCP في عميلك (Claude Desktop: claude_desktop_config.json، وCursor: ‏.cursor/mcp.json، ويستخدم VS Code وغيره الصيغة نفسها «mcpServers»).

NPM package @shuji-bonji/s1000d-brex-mcp
Claude Code
claude mcp add s1000d-brex-s1000d-stack -- npx -y @shuji-bonji/s1000d-brex-mcp@0.4.0
إعداد JSON (Claude Desktop وCursor وVS Code)
{
    "mcpServers": {
        "s1000d-brex-s1000d-stack": {
            "command": "npx",
            "args": [
                "-y",
                "@shuji-bonji/s1000d-brex-mcp@0.4.0"
            ]
        }
    }
}

التوثيق

مأخوذ من ملف README للمشروع على GitHub ويُحدَّث أسبوعيًا. تفتح الروابط على GitHub.

المحتويات
  1. @shuji-bonji/s1000d-brex-mcp
  2. What it does
  3. What it does not do
  4. Configuration
  5. Check rules
  6. Development
  7. License

@shuji-bonji/s1000d-brex-mcp

English | 日本語

An MCP server that lets an LLM read S1000D® BREX (Business Rules Exchange) data modules and check data modules against a BREX. It returns, in a form people can read, what a project or organisation has written in its BREX: which elements and attributes may be used, which values are allowed and what they mean, what the standard numbering system (SNS) codes mean, and which illustration formats may be used. It also reports whether a data module follows those rules, with the location of each violation.

[!IMPORTANT] This is a personal project and is not affiliated with ASD (Aerospace, Security and Defence Industries Association of Europe). S1000D® is a registered trademark of ASD. The S1000D specification, XML schemas, default BREX and official samples are not included in any package or repository, because their terms of use do not grant redistribution. Obtain them from s1000d.org and point the S1000D_SPEC_DIR environment variable at the extracted folder.

What it does

ToolDescription
explain_brexLists the rules of a BREX. Returns the target (XPath), whether it may be used (forbidden, required or optional), the allowed values and their meaning, the severity level and the schemas the rule applies to. Narrow the list with kind, context and search, and read it in parts with offset and limit
lookup_snsReturns what a standard numbering system (SNS) code refers to, from a DMC or a code
lookup_valueReturns what an element or attribute value means in the project, and which values are allowed
list_notationsReturns the illustration and multimedia formats that may be used, split into the base set and the per-schema additions and exclusions
check_against_brexChecks a data module against a BREX and returns each violation with its location (XPath and line number), actual value, rule ID, description and severity level. By default it follows the brexDmRef chain (project BREX → … → default BREX) and checks each layer separately

What it does not do

[!WARNING]

  • It does not validate against the XML schema (XSD). Schema errors can hide BREX violations or create false ones. Run schema validation with validate_schema / verify_data_module in s1000d-verify-mcp.
  • It does not judge conformance to S1000D. passed: true from check_against_brex means only that no machine-checkable BREX rule was violated in every layer that could be resolved. nonContextRules (rules written as prose) are returned as manualChecks, and a person makes the judgement.
  • It does not interpret the meaning of severity level codes (brsl01 to brsl99). The project defines them, so they are returned as they are.

[!NOTE] The absence of a rule in one BREX does not mean the absence of a restriction. A higher BREX (followed through brexDmRef, ending at the S1000D default BREX) or a business rules document written for people may restrict it. check_against_brex reports the layers it could not find in unresolvedBrex. Treat a result in which this field is not empty as incomplete.

Configuration

Environment variableDescription
S1000D_SPEC_DIRThe folder where the S1000D distribution you obtained is extracted. The default BREX (DMC-S1000D-*-04-10-0301-00A-022A-D_*.XML) is searched for under it. Extract the inner zip files as well
S1000D_CSDB_DIRThe folder that holds the project's data modules. Several folders can be given, separated by : (; on Windows). A BREX given by DMC, and the layers of the chain, are searched for here

Folders can also be added with the tool argument csdbDirs. A BREX can be given as a file path, as a DMC (the DMC- prefix is optional), or omitted (the default BREX).

Example configuration for 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"
      }
    }
  }
}

Check rules

The check follows Chap 4.10.2 (BREX data module) and Chap 7.9 (Business rules processing) of S1000D Issue 7. See the README of @shuji-bonji/s1000d-core for details.

ItemHandling
allowedObjectFlag0 = a violation if the target is present, 1 = a violation if it is absent, 2 = if present, the value is checked against objectValue (single / range / pattern)
rulesContextThe blocks whose schema matches the target data module, and the common blocks, are applied
notationRuleListA violation if a NOTATION declared in the DOCTYPE is not in the allowed set
LayersEach layer is checked separately; the layers are not merged. passed only when no layer has a violation and no reference is unresolved

Development

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)

License

MIT

الأسئلة الشائعة

ما هو S1000D BREX (S1000D Stack)؟

Read S1000D BREX business rules and check data modules against them, layer by layer.

كيف أثبّت S1000D BREX (S1000D Stack)؟

يعمل على جهازك. في Claude Code: claude mcp add s1000d-brex-s1000d-stack -- npx -y @shuji-bonji/s1000d-brex-mcp@0.4.0. وفي العملاء الآخرين، الصق إعداد JSON من هذه الصفحة في إعدادات MCP الخاصة بهم.

هل يحتاج S1000D BREX (S1000D Stack) إلى مفتاح API؟

لا يذكر إدراجه في السجل أي مفتاح أو سر إلزامي. قد تتطلب بعض الميزات حسابًا لدى الخدمة التي يتصل بها.

هل S1000D BREX (S1000D Stack) مفتوح المصدر؟

نعم. شيفرته متاحة على GitHub بترخيص MIT.

من يصون S1000D BREX (S1000D Stack)؟

ينشره shuji-bonji. يدرجه AI.tn لكنه لا يصونه ولا يوصي به.

من سجل MCP الرسمي. الإدراج ليس توصية: راجع شيفرة الخادم وصلاحياته قبل منحه الوصول إلى بياناتك.