s1000d-brex-mcp
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@s1000d-brex-mcpCheck DMC-A320-A-00-00-00-00A-001A-D against the project BREX and list violations."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
@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.
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 froms1000d.org and point the S1000D_SPEC_DIR environment variable at the extracted folder.
What it does
Tool | Description |
| Lists 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 |
| Returns what a standard numbering system (SNS) code refers to, from a DMC or a code |
| Returns what an element or attribute value means in the project, and which values are allowed |
| Returns the illustration and multimedia formats that may be used, split into the base set and the per-schema additions and exclusions |
| Checks 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 |
Related MCP server: solibri
What it does not do
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_moduleins1000d-verify-mcp.It does not judge conformance to S1000D.
passed: truefromcheck_against_brexmeans only that no machine-checkable BREX rule was violated in every layer that could be resolved.nonContextRules(rules written as prose) are returned asmanualChecks, and a person makes the judgement.It does not interpret the meaning of severity level codes (
brsl01tobrsl99). The project defines them, so they are returned as they are.
The absence of a rule in one BREX does not mean the absence of a restriction. A higher BREX (followed throughbrexDmRef, 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 variable | Description |
| The folder where the S1000D distribution you obtained is extracted. The default BREX ( |
| The folder that holds the project's data modules. Several folders can be given, separated by |
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.
Item | Handling |
|
|
| The blocks whose schema matches the target data module, and the common blocks, are applied |
| A violation if a NOTATION declared in the DOCTYPE is not in the allowed set |
Layers | Each layer is checked separately; the layers are not merged. |
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
This server cannot be deployed
Maintenance
Related MCP Connectors
Checks AI-written code against your rules as it is written, and keeps a record of what it found.
Governance copilot for AI-assisted coding. 72 packs, 532 rules, proof bundles.
Check AI work against requirements and return structured verdicts, findings, and repair steps.
Stateless advisor + validator for Conducted Development: kickoff, artifact validation, rule checks.
Related MCP Servers
- FlicenseNot gradedqualityCmaintenanceProvides reference and pre-flight linting for XBRL Query and Rules Language (XULE), helping LLMs write syntactically sound rules with tools for object model lookup, function catalog, filter syntax, and boilerplate snippets.-
- AlicenseAqualityBmaintenanceEnables an LLM to control Solibri through 25 MCP tools, covering model inspection, rule checking, BCF issue handling, presentations, and Autorun batch verification, all restricted to a local workspace.25MIT
- AlicenseAqualityBmaintenanceProvides LLM agents with a toolset for reviewing S1000D technical publications, including XML schema validation, cross-reference and applicability checks, skeleton generation, and AI-suggested fixes.1MIT
- AlicenseAqualityBmaintenanceEnables natural-language validation of IFC models against Türkiye's building-permit BIM regulation, including compliance checks, EK-9 form generation, and queries about required classes and properties.620 PyPI3MIT