s1000d-brex-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| S1000D_CSDB_DIR | No | The 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. | |
| S1000D_SPEC_DIR | Yes | The folder where the S1000D distribution you obtained is extracted. The default BREX is searched for under it. Extract the inner zip files as well. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| explain_brexA | List the rules of a BREX data module in readable form: for each rule, the target (XPath), whether it is forbidden / required / optional, the allowed values with their meanings, severity, and the schema context it applies to. Also returns the BREX header (DMC, parent BREX, counts). Use "kind" and "context" to narrow, "offset"/"limit" to page. |
| lookup_snsA | Explain what a Standard Numbering System (SNS) code means in a BREX: pass a DMC (the system / subsystem / sub-subsystem / assembly codes are taken from it) or the codes directly. Returns the matched hierarchy with titles; "exact: false" means only a prefix matched. |
| lookup_valueA | Explain what a value of an element or attribute means in a BREX, or list the allowed values. Pass "target" as an attribute name (e.g. "securityClassification"), an element name, or an XPath fragment; optionally "value" to check one value. Returns the matching rules with allowed values and their meanings, and whether the value is allowed. |
| list_notationsA | List the illustration / multimedia notations (file formats) a BREX allows: the base set (common to all schemas) and the per-schema additions and exclusions. Pass "context" to get the effective set for one schema. Returns an empty base set when the BREX has no notation rules (then the BREX does not restrict notations). |
| check_against_brexA | Check a data module against BREX rules and report violations with location (XPath + line), actual value, rule id, objectUse text and severity. By default follows the data module's brexDmRef chain (project BREX → … → S1000D default BREX found under S1000D_SPEC_DIR) and checks each layer separately; pass "brex" to check against one specific BREX instead or in addition. Does NOT validate against the XML schema (XSD): run schema validation separately. nonContextRules cannot be checked automatically and are returned as manualChecks. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 5 tools
The five tools have largely distinct purposes: notation listing, rule explanation, SNS lookup, value lookup, and data module checking. There is some overlap because explain_brex can also surface notation/value rules that list_notations and lookup_value return, but the descriptions make the intended scopes reasonably clear.
All tool names use consistent snake_case and begin with a verb (list_, explain_, lookup_, check_). The pattern is predictable across the set, even though the verbs vary appropriately by action.
Five tools is well-scoped for a BREX-focused MCP server. Each tool has a clear, non-redundant role: notation listing, rule explanation, SNS decoding, value interpretation, and validation.
The surface covers the main BREX workflows: inspecting rules, decoding SNS codes, interpreting values, listing notations, and checking data modules. Minor gaps exist, such as no dedicated way to enumerate all SNS codes or search rules by free text, but these are workable through existing tools.