
S1000D Reader (S1000D Stack)
io.github.shuji-bonji由 GitHub 账号 shuji-bonji 发布v0.8.0更新于 Nov 7, 2026
Read S1000D data and publication modules as structure, with applicability and verification status.
概览
从本地 CSDB 读取 S1000D 数据模块和出版模块,以结构化形式返回,并给出适用性判定与校验状态。
- 可以做什么
- 列出 CSDB 中的数据模块、PM、DML、DDN、IMF 和 UPF,含 DMC、标题、版本与适用性文本,可按代码或标题筛选
- 以结构读取数据模块:标识与状态、正文树、编号步骤、警告、表格、插图与带标题的引用,或只返回标题与规模的提纲
- 以目录形式读取出版模块,并解析 dmRef 与 pmRef 的目标
- 把 DMC、PMC 或 ICN 解析为 CSDB 中的文件
- 返回适用性词汇(ACT、CCT、PCT),并按给定产品把内容标记为适用、不适用或无法判定
- 读取 ICN 元数据文件:ICN、版本、标题、关键词与安全密级
- 适用场景
- 适合需要处理本地 CSDB 中 S1000D 技术资料的场景:助手需要文档结构、步骤编号、警告和引用目标而非原始 XML,或需要判断哪些内容适用于某个产品时使用。
- 运行要求
- 通过 npx 以 stdio 在本地运行(需要 Node.js)。需自行从 s1000d.org 获取 S1000D 规范发行包并用 S1000D_SPEC_DIR 指向它,数据模块目录通过 S1000D_CSDB_DIR 或 csdbDirs 参数指定。未传环境变量时从用户配置目录下的配置文件读取路径。无需认证。
安装
在 SourceWeft 中
- 打开 控制台中的 S1000D Reader (S1000D Stack),将其添加到工作区。
- 为需要使用其工具的对话启用该服务。
Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。
其他 MCP 客户端
参照 仓库 中的启动说明。
README
@shuji-bonji/s1000d-reader-mcp
English | 日本語
An MCP server that lets an LLM read S1000D® data modules and publication modules as structure rather than as XML. It returns the heading hierarchy, numbered steps, warnings, cautions and notes, illustrations (ICN), tables and the titles of reference targets intact, and the server evaluates which product the content applies to (applicability) and passes on only the result. Every response carries how far the document has been verified (verification).
[!IMPORTANT] 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 from s1000d.org and point the
S1000D_SPEC_DIRenvironment variable at the extracted folder.
What it does
Reading applicability
The server does not return assert / evaluate expressions. Look up the attributes and values you need with describe_applicability and pass them to product in the form { "attributes": { "model": "…" }, "conditions": { … } }.
Verification status (verification)
By default the server runs XSD validation only (verify: "schema"). verify: "full" also checks against the BREX (Business Rules Exchange) chain and resolves references; verify: "none" skips them. A skipped step is reported as not-run, and a missing XSD as schema-not-found; neither is valid. In a document that violates the XSD, elements may be in positions that differ from the specification, so treat the reading of the body with suspicion as well.
Security classification (securityClassification) and size (size)
Every read_data_module and read_publication_module response starts with securityClassification: dataModule (the value in the identification and status section) and inContent (the number of body elements per value). The server does not interpret the values (S1000D leaves their meaning to the project). An agent can decide how to handle the content before quoting it. The body carries size (nodes, characters, count per kind, number of warnings) so the amount to read can be estimated.
What it does not do
[!WARNING]
- It does not summarise or translate. Its job is to return the material a summary needs (headings, step numbers, warning types, reference targets) without dropping anything.
- It does not judge conformance to S1000D. Read the details of XSD and BREX violations with
s1000d-verify-mcp, and the explanation of BREX rules withs1000d-brex-mcp.- The body is structured for 5 types only:
descript/proced/process/fault/pm. Other types returncontent.structured: falseand only the identification and status section. Unknown elements are kept askind: "unknown"with their text only and counted incontent.unknownElements.
Configuration
Folders can also be given with the tool argument csdbDirs. When the argument is given, only those folders are used; S1000D_CSDB_DIR and csdbDirs in the config file are not used (they are not added together). Folders that do not exist are skipped and listed in _notes of the response. When none is left, the tool returns no-csdb (below).
Errors
An error that the caller can fix by changing an argument is not returned as a tool failure (isError) but in the same shape as s1000d-writer-mcp.
path names the argument to fix (/path, /csdbDirs and so on), not a file path.
Config file (when environment variables are not passed, as with plugins in Claude Desktop)
If S1000D_SPEC_DIR / S1000D_CSDB_DIR are not set, the server reads the config file ~/.config/s1000d-stack/config.json (under XDG_CONFIG_HOME if it is set; S1000D_CONFIG changes the location). Claude Desktop does not pass environment variables to servers installed as plugins, and does not substitute ${VAR} written in the plugin's env. When you install the server as a plugin, write the folders here.
Environment variables take precedence when they are set. Paths that start with ~/ are accepted. The config file is read again on every call, so the server does not need to be restarted after you edit it.
Example configuration for Claude Desktop / Claude Code
Running over HTTP (embedding in a product)
The default is stdio. With --http the server starts over Streamable HTTP, so a CSDB product's server or a web application can call it over HTTP (the embedding foundation of stage 2.5).
When --host is a loopback address (127.0.0.1 / ::1 / localhost), Host and Origin are limited to localhost names (DNS rebinding protection). When bound to any other address they are not checked, so put the server behind the product's reverse proxy or authentication. Authentication, authorization and multi-tenancy are not part of this server. Environment variables and the config file work the same as with stdio.
How it works
All reading, evaluation and validation code lives in the shared library @shuji-bonji/s1000d-core; this server holds only the interpretation of arguments and the shape of the responses. The verification status is built with the same function as s1000d-verify-mcp, so the results of the two servers agree.
Development
License
MIT. S1000D® is a registered trademark of ASD. This software is not affiliated with ASD and does not include the specification, schemas or official samples.
来源:README.md,提交 f84ae46
工具
0版本历史
3- v0.8.0最新Nov 7, 2026
- v0.7.1Oct 29, 2026
- v0.1.1Oct 26, 2026
评分
已满足适用检查项的 50%
该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。
- 近 30 天内可连通25 分
请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。
- 已声明认证方式10 分
请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。
- 已列出工具15 分
请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。
- 描述必需15 分
- 图标10 分
- 文档15 分
- 许可证10 分