关于 S1000D Reader (S1000D Stack)
S1000D Reader 是将 S1000D 数据模块和出版物模块以结构化内容而非原始 XML 呈现的 MCP 服务。它保留文档元素、评估产品适用性并报告验证状态,供技术文档团队使用。
主要功能
- 01读取文档层级和结构化内容
- 02保留步骤、警告、表格和插图
- 03评估内容块对产品的适用性
- 04读取出版物目录并解析引用
- 05报告 Schema 和 BREX 验证状态
适用场景
- 01检查特定产品适用的操作步骤和警告
- 02浏览出版物目录及引用模块
- 03查看文档适用性和验证结果
MCP 相关
该 MCP 服务提供列出和读取数据模块及出版物模块、解析引用、检查适用性和读取 ICN 元数据的工具。响应包含适用性和验证信息。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
6收录的工具列表 · 更新于 今天
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| limit | number | 否 | 每次调用返回的对象数(默认 100,最大 1000)。 |
| filter | object | 否 | |
| filter.text | string | 否 | 在 techName 或 infoName 中查找的不区分大小写的文本。 |
| filter.infoCode | string | 否 | 例如 "040"(描述)、"520"(步骤)、"022"(BREX)、"00W"(ACT) |
| filter.schemaName | string | 否 | descript / proced / process / fault / pm / brex / … |
| filter.systemCode | string | 否 | |
| filter.modelIdentCode | string | 否 | |
| offset | number | 否 | 第一个对象的索引(默认 0)。 |
| include | array | 否 | 要列出的对象类型(默认:dm)。 |
| csdbDirs | array | 否 | 要搜索的其他 CSDB 文件夹(除 S1000D_CSDB_DIR 外),用于按 DMC 查找数据模块、被引用对象、ACT/CCT/PCT 和 BREX。 |
详细介绍
@shuji-bonji/s1000d-reader-mcp
英语 | 日语
一个 MCP 服务,让大模型能够以结构化形式而非 XML 读取 S1000D® 数据模块和出版物模块。它会完整返回标题层级、编号步骤、警告、注意事项和注释、插图(ICN)、表格以及引用目标的标题;服务还会评估内容适用于哪个产品(适用性),并仅传递评估结果。每个响应都会包含文档的验证进度(verification)。
重要
这是一个个人项目,与 ASD(欧洲航空航天、安全与国防工业协会)无关。S1000D® 是 ASD 的注册商标。 S1000D 规范、XML 架构、默认 BREX 和官方示例均未包含在任何软件包或代码仓库中,因为其使用条款不允许再分发。请从 s1000d.org 获取,并将
S1000D_SPEC_DIR环境变量指向解压后的文件夹。
功能
| 工具 | 说明 |
|---|---|
list_data_modules | 列出 CSDB 中的数据模块(并可按需列出 PM、DML、DDN、IMF 和 UPF),包括其 DMC、标题、版本、语言、架构名称和适用性显示文本。可按型号识别码、系统代码、信息代码、架构名称和标题文本筛选 |
read_data_module | 以结构化形式读取单个数据模块:标识和状态部分、正文树(章节、段落、列表、表格、插图、警告、编号步骤和要求、流程分支、故障隔离问答)、引用(含标题)以及验证状态。传入 product,即可标记每个块为 applicable / notApplicable / undetermined |
read_publication_module | 以目录形式读取出版物模块:pmEntry 树以及每个 dmRef / pmRef 已解析的目标(文件、标题、版本) |
resolve_reference | 将 DMC、PMC 或 ICN 解析为 CSDB 中的文件。对于 ICN,还会返回引用该 ICN 的 DM 的 DOCTYPE 声明(文件名和 NOTATION) |
describe_applicability | 返回适用性词汇:ACT 中的产品属性(id、名称、枚举值、标识符)、CCT 中的条件、PCT 中的产品(可原样传给 product 的值)、DM 的 applic 语句(id 和显示文本),以及 PCT 未赋值的属性。不执行任何评估 |
read_icn_metadata | 读取 ICN 元数据文件(IMF):ICN、版本、标题、关键词、安全分类以及状态部分中各项的列表 |
了解适用性
| 状态 | 含义 |
|---|---|
applicable | 适用于你传入的产品 |
notApplicable | 不适用。omitNotApplicable: true 会将其从正文中省略 |
undetermined | 无法评估。reason 会说明原因(产品缺少的属性名称、未提供 product、适用性存储库中缺少 applicIdentValue)。这并不表示“不适用” |
服务不会返回 assert / evaluate 表达式。使用 describe_applicability 查找所需的属性和值,并按 { "attributes": { "model": "…" }, "conditions": { … } } 的形式传给 product。
验证状态(verification)
默认情况下,服务仅运行 XSD 验证(verify: "schema")。verify: "full" 还会根据 BREX(业务规则交换)链进行检查并解析引用;verify: "none" 则会跳过这些检查。跳过的步骤会标记为 not-run,缺少 XSD 时会标记为 schema-not-found;这两种状态都不是 valid。如果文档违反 XSD,元素的位置可能与规范不同,因此也应谨慎对待正文的读取结果。
不执行的操作
警告
- 不会总结或翻译。 它的任务是返回总结所需的材料(标题、步骤编号、警告类型、引用目标),且不遗漏任何内容。
- 不会判断是否符合 S1000D。 使用
s1000d-verify-mcp查看 XSD 和 BREX 违规的详细信息,并使用s1000d-brex-mcp查看 BREX 规则说明。- 正文仅针对 5 种类型进行结构化:
descript/proced/process/fault/pm。其他类型会返回content.structured: false,且仅包含标识和状态部分。未知元素会保留为kind: "unknown",仅包含其文本,并计入content.unknownElements。
配置
| 环境变量 | 说明 |
|---|---|
S1000D_SPEC_DIR | 解压所获取的 S1000D 发行包的文件夹。服务会在其中查找 XSD(xml_schema_flat/)和默认 BREX。不会使用数据字典中的 XSD 副本 |
S1000D_CSDB_DIR | 存放项目数据模块的文件夹。可以提供多个文件夹,以 : 分隔(Windows 上使用 ;)。系统会在此处查找按 DMC 读取的内容、引用目标、ACT、CCT 和 PCT,以及适用性存储库 |
也可以使用工具参数 csdbDirs 添加文件夹。
Claude Desktop / Claude Code 配置示例
{
"mcpServers": {
"s1000d-reader": {
"command": "npx",
"args": ["-y", "@shuji-bonji/s1000d-reader-mcp"],
"env": {
"S1000D_SPEC_DIR": "/path/to/s1000d/issue-7",
"S1000D_CSDB_DIR": "/path/to/your/csdb"
}
}
}
}
工作原理
所有读取、评估和验证代码都位于共享库 @shuji-bonji/s1000d-core 中;此服务仅负责解析参数并定义响应结构。验证状态使用与 s1000d-verify-mcp 相同的函数生成,因此两个服务的结果一致。
开发
npm install
npm test # runs on self-made test data only
npm run test:spec # uses the distribution you obtained (location given by S1000D_SPEC_DIR; default ../../specs/s1000d/issue-7)
npm run build && S1000D_SPEC_DIR=/path/to/issue-7 S1000D_CSDB_DIR=/path/to/csdb npm start # start over stdio
许可证
MIT。S1000D® 是 ASD 的注册商标。本软件与 ASD 无关,也不包含规范、架构或官方示例。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。