mcpField
S
S1000D Verify (S1000D Stack)

S1000D Verify (S1000D Stack)

本地服务
shuji-bonji.github.io生产力0今天更新

关于 S1000D Verify (S1000D Stack)

S1000D Verify 是面向 S1000D 数据模块的 MCP 服务,按顺序检查 XML 格式、XSD、BREX 链和引用,并汇总为单一验证状态。适合需要审查 CSDB 内容的团队;机器检查结果不等同于规范符合性判定。

主要功能

  1. 01检查 XML 格式与 XSD
  2. 02检查 BREX 规则链
  3. 03解析五类引用目标
  4. 04批量验证 CSDB 文件夹
  5. 05输出分步问题与验证状态

适用场景

  1. 01定位数据模块的 XSD 错误
  2. 02检查 BREX 规则和引用问题
  3. 03汇总文件夹中对象的验证状态

MCP 相关

该项目是 MCP 服务,向客户端提供数据模块验证、XSD 检查、引用检查、CSDB 批量验证和模式列表工具。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"shuji-bonji-s1000d-verify": {
"command": "npx",
"args": [
"-y",
"@shuji-bonji/s1000d-verify-mcp"
]
}
}
}
启动命令npx -y @shuji-bonji/s1000d-verify-mcp

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npm@shuji-bonji/s1000d-verify-mcp0.6.1

工具

6

收录的工具列表 · 更新于 今天

参数类型必填说明
xmlstring否作为 XML 字符串的文档(可替代路径;最大 5 MB)。
pathstring否要检查的数据模块(或 PM)的文件路径。
skiparray否要跳过的步骤。跳过的步骤会以状态 "not-run" 报告。
csdbDirsarray否用于搜索被引用的数据模块、出版物模块、ICN 文件和 BREX 的额外 CSDB 文件夹(除 S1000D_CSDB_DIR 外;BREX 也会在 S1000D_SPEC_DIR 下搜索)。
maxSchemaErrorsnumber否返回的 XSD 错误数上限(默认 100)。始终会报告总数。
maxUnresolvedRefsnumber否未解析引用的返回上限(默认值为 200)。
maxViolationsPerLayernumber否每层 BREX 违规项的返回上限(默认值为 200)。

详细介绍

@shuji-bonji/s1000d-verify-mcp

English | 日本語

一个 MCP 服务,可让大模型通过证据了解 S1000D® 数据模块的检查进度。它会执行三个步骤——根据 XML 架构(XSD)进行验证、根据 BREX(业务规则交换)进行检查,以及解析引用(dmRef、pmRef、ICN、internalRef 和 applicRefId)——并将结果合并为单一验证状态(verification)返回。此验证状态的结构与 s1000d-reader-mcp 在内容响应中嵌入的验证状态相同。

重要

这是一个个人项目,与 ASD(欧洲航空航天与国防工业协会)无关。S1000D® 是 ASD 的注册商标。 由于使用条款不允许再分发,任何软件包或代码库均不包含 S1000D 规范、XML 架构、默认 BREX 和官方示例。如需运行 XSD 验证和默认 BREX 检查,请自行从 s1000d.org 获取,并将 S1000D_SPEC_DIR 环境变量指向解压后的文件夹。

功能

工具描述
verify_data_module按格式良好性 → XSD → BREX 链 → 引用的顺序验证一个数据模块,并返回 verification(验证状态)以及各步骤的详细信息(XSD 违规的行号、BREX 违规的位置、未解析的引用及其原因)
validate_schema仅运行 XSD 验证。根据 xsi:noNamespaceSchemaLocation 中的文件名选择要使用的 XSD,并在 S1000D_SPEC_DIR 下的 xml_schema_flat/ 中查找。版本通过读取 brex.xsd 顶部的 Issue number: 行来确定
check_references收集 5 种引用(dmRef / pmRef / ICN / internalRef / applicRefId),并返回每个目标是否存在及其原因。指向规范某一章节(模型识别代码为 S1000D)的 dmRef 并非损坏的引用,因此会单独报告
verify_csdb在一次运行中验证文件夹中的 CSDB 对象(默认包括 DMC 和 PMC),并返回每个对象的验证状态及计数汇总。使用 offset / limit 分批读取结果,并通过 reportPath 将详细信息写入 JSON
list_schemas返回 S1000D_SPEC_DIR 下找到的 xml_schema_flat/ 文件夹列表(版本、XSD 数量、架构名称)。可用于调查 schema-not-found 的原因
验证状态(verification)
字段值含义
schema.statevalid / invalid / schema-not-found / not-run找到 XSD 并验证通过,违规数为 0 / 发现违规 / 未找到 XSD(原因见 reason)/ 因 skip 而跳过
brex.statepassed / violations / incomplete / not-run所有层级均无违规 / 发现违规 / BREX 未解析或存在无法评估的规则 / 已跳过
references.stateresolved / unresolved / not-run无未解析引用 / 发现未解析引用 / 已跳过

schema-not-found 不等于 valid。这表示未运行 XSD 验证。

不执行的操作

警告

  • 它不会判定是否符合 S1000D。 schema: valid 和 brex: passed 仅表示未发现违反 XSD 和可由机器检查的 BREX 规则的错误。nonContextRules(以散文形式编写的协议)会作为 manualChecks 返回,由人工作出判断。项目的业务规则文档不在任何工具的范围内。
  • 它不会解释 BREX 规则或值的含义。这是 s1000d-brex-mcp 中 explain_brex / lookup_value 的职责。严重性级别代码(brsl01 到 brsl99)会原样返回。
  • 它不会评估适用性(内容适用于哪个产品)。check_references 只检查 applicRefId 的目标是否存在。适用性评估由 s1000d-reader-mcp 完成。

说明

如果文档违反 XSD,元素的位置可能与规范规定的位置不同,因此可能会错误地报告 BREX 违规,也可能会漏报。当 schema.state 为 invalid 时,请仅将 BREX 结果视为大致参考(响应中的 _notes 也会说明这一点)。

配置

环境变量描述
S1000D_SPEC_DIR你解压获取的 S1000D 发行包的文件夹。系统会在此文件夹下查找 XSD(xml_schema_flat/;请先解压内层的“XML Schema Package” zip 文件)和默认 BREX(DMC-S1000D-*-04-10-0301-00A-022A-D_*.XML)。不会使用数据字典中的 XSD 副本(其中的导入使用绝对 URL,无法离线解析)
S1000D_CSDB_DIR存放项目数据模块的文件夹。可以指定多个文件夹,并以 : 分隔(Windows 上使用 ;)。系统会在此查找引用的 DM、PM 和 ICN 文件,以及引用链中间的 BREX

也可以通过工具参数 csdbDirs 添加文件夹。

Claude Desktop / Claude Code 配置示例
{
  "mcpServers": {
    "s1000d-verify": {
      "command": "npx",
      "args": ["-y", "@shuji-bonji/s1000d-verify-mcp"],
      "env": {
        "S1000D_SPEC_DIR": "/path/to/s1000d/issue-7",
        "S1000D_CSDB_DIR": "/path/to/your/csdb"
      }
    }
  }
}

工作原理

所有验证逻辑都位于共享库 @shuji-bonji/s1000d-core 中;此服务仅负责解析参数和定义响应结构。XSD 验证使用 libxml2-wasm(libxml2 的 WebAssembly 构建版本),每个 XSD 只编译一次并重复使用,因此验证 Issue 7 的 106 个官方示例用时不到 0.5 秒。BREX 检查调用与 s1000d-brex-mcp 相同的函数,因此两个服务的结果一致。

开发

npm install
npm test            # runs with self-made test data only
npm run test:spec   # uses the distribution you obtained (set the location with S1000D_SPEC_DIR; default ../../specs/s1000d/issue-7)
npm run build && S1000D_SPEC_DIR=/path/to/issue-7 npm start   # starts over stdio

许可证

MIT。S1000D® 是 ASD 的注册商标。本软件与 ASD 无关,也不包含规范、架构或官方示例。

评论

支持 Markdown

第一次接触 MCP?

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

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