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. 01说明 BREX 规则和允许值
  2. 02查询 SNS 代码及项目值含义
  3. 03列出允许的插图和多媒体格式
  4. 04按 BREX 层级检查数据模块
  5. 05通过 XPath 和行号报告违规

适用场景

  1. 01编写数据模块前检查项目规则
  2. 02查找数据模块中的规则违规
  3. 03查询 SNS 代码或元素允许值

MCP 相关

该 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

英文 | 日本語

一个 MCP 服务,可让大模型读取 S1000D® BREX(业务规则交换)数据模块,并根据 BREX 检查数据模块。它会以易于阅读的形式返回项目或组织在 BREX 中编写的内容:哪些元素和属性可以使用、允许哪些值及其含义、标准编号系统(SNS)代码的含义,以及可以使用哪些插图格式。它还会报告数据模块是否遵循这些规则,并指出每项违规的位置。

重要

这是一个个人项目,与 ASD(欧洲航空航天与防务工业协会)无关。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 第 4.10.2 章(BREX 数据模块)和第 7.9 章(业务规则处理)。详情请参阅 @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

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。