Space Standards

io.github.manojknaikade由 GitHub 账号 manojknaikade 发布v0.2.4更新于 Oct 24, 2026

Cited, requirement-level Q&A over ECSS and NASA standards you supply (bring your own documents)

发布方自己的服务:Standards

已验证STDIO仅桌面文件与存储知识与记忆

概览

AI 生成的概览

本地 MCP 服务器,针对你自备的 ECSS 与 NASA 航天标准回答问题,给出需求级引用,或明确说明未涵盖

可以做什么
列出已加载的标准与版本,含族系、类型、学科、解析等级和记录数,并可查看存在但未加载的文档。按文档和需求 ID 获取精确的需求记录,并追踪该需求引用的标准与条款。按关键词检索需求和表格行,附带相邻记录,并提示未加载的相关标准。以结构化行读取安全系数等表格,含标签、单元格文本、解析值和脚注。就同一主题在各标准间分组比较 ECSS 与 NASA 并给出覆盖评级,浏览标准目录或某条款的记录 ID 与表格。
适用场景
适用于从事运载火箭与整流罩结构等航天工程工作、需要定位具体 ECSS 或 NASA 需求、安全系数或试验量级并附文档、版本和需求 ID 的场景。适合已持有标准原文、希望加快查找和跨标准对比的工程师,不能替代原文。
运行要求
以 Python 包形式通过 stdio 在本机运行(Python 3.11+),可用 uvx、pipx 或虚拟环境启动。SPACESTD_DOCS 必须指向存放自有 ECSS 或 NASA 文档(PDF 或 Word)的绝对路径文件夹;包内不含任何标准,未设置时服务器为空。Word 文件需要 LibreOffice。可选的 SPACESTD_EMBED 和 SPACESTD_RERANK 启用混合检索与重排序,需安装 embed 附加组件。可选代理需要 Anthropic API 密钥。
安装前请注意
不包含任何标准原文,需自行下载,且仍受出版方使用条款约束。答案只是定位需求的辅助,不具权威性:每条需求、系数和试验量级都应对照原文核实,尤其是未达 verified 等级文档中表格里的数字。检索基于关键词,会漏掉改写表述,评测集也较小。可选代理会把内容发送给 Anthropic,并需要 API 密钥。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Space Standards,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

README

space-standards-mcp

An MCP server (and a thin optional agent) that answers questions about ECSS and NASA space standards with exact, requirement-level citations: every result names the document, issue and requirement ID, or the answer is "not covered". You bring the standards; nothing from them is stored in this repository. It is aimed at launcher and payload-fairing structures first (factors of safety, fracture control, loads, shock, vibroacoustics) and is built to grow to the whole ECSS and NASA set.

Independent project. Not affiliated with or endorsed by the European Space Agency (ESA), the ECSS Secretariat or NASA. The ECSS, ESA and NASA names and the names of their standards belong to their owners and are used here only to identify the documents the software works with.

60-second demo (invented fixtures)

The repository ships three invented demo standards and a demo handbook in tests/fixtures/ (made-up text and numbers, so you can try everything without any real document).

bash
git clone https://github.com/manojknaikade/space-standards-mcp.git && cd space-standards-mcppython -m venv .venv && source .venv/bin/activate      # Python 3.11+pip install -e ".[dev]"pytest -q                                              # fixture tests; real-document tests skip without documents/
# retrieval eval on the demo standards: expected recall@5 1.00 over 4 questionspython eval/run_retrieval_eval.py --docs tests/fixtures --questions eval/demo_questions.yaml
# the MCP server over the demo standards (stdio; an MCP client talks to it)SPACESTD_DOCS=tests/fixtures python -m spacestd.server

Connect a client (below) to that server and ask, for example, "which factor of safety applies to a metallic fairing in DEMO-E-ST-98C?". The answer comes back with a citation such as DEMO-E-ST-98C Rev.2, 4.1.2a.

Use your own documents

No standards text is distributed here. Download the documents yourself and put them in documents/ (gitignored) or any folder you point SPACESTD_DOCS at:

  • ECSS: https://ecss.nl (free registration); Word or PDF.
  • NASA: the NASA Technical Standards System, https://standards.nasa.gov. python scripts/download_nasa_standards.py documents/nasa fetches the public ones politely (robots.txt, one request every 2 s); --dry-run only lists them.

Then:

bash
python -m spacestd.catalogue documents      # what was found, and what is loadedpython -m spacestd.health documents         # parse every document, set its tier, write eval/CORPUS_HEALTH.md

documents/corpus.yaml selects what is loaded (doc-ID patterns with *, see ADR-0006); without it only files directly in documents/ load:

yaml
load:  - ECSS-E-ST-32*  - NASA-STD-5*

File naming, sidecar metadata and formats (PDF preferred; Word files need LibreOffice) are described in documents/README.md. Parsed documents are cached in documents/.spacestd-cache/. The standards remain subject to their publishers' terms of use.

Install without a clone

The package is on PyPI:

bash
uvx space-standards-mcppipx install space-standards-mcp

The latest development version installs from git: pipx install git+https://github.com/manojknaikade/space-standards-mcp.

The space-standards-mcp command starts the server (stdio) and reads SPACESTD_DOCS.

Connect an MCP client

Use an absolute path to the Python that has the package installed, and to your documents folder.

With uvx, a client can start the server without a local install, e.g. in Claude Desktop: {"command": "uvx", "args": ["space-standards-mcp"], "env": {"SPACESTD_DOCS": "/abs/path/to/documents"}}.

Claude Code

bash
claude mcp add space-standards --env SPACESTD_DOCS=/abs/path/to/documents -- /abs/path/to/.venv/bin/python -m spacestd.server

Claude Desktop (claude_desktop_config.json)

json
{  "mcpServers": {    "space-standards": {      "command": "/abs/path/to/.venv/bin/python",      "args": ["-m", "spacestd.server"],      "env": { "SPACESTD_DOCS": "/abs/path/to/documents" }    }  }}

VS Code (.vscode/mcp.json)

json
{  "servers": {    "space-standards": {      "type": "stdio",      "command": "/abs/path/to/.venv/bin/python",      "args": ["-m", "spacestd.server"],      "env": { "SPACESTD_DOCS": "/abs/path/to/documents" }    }  }}

Tools

ToolWhat it does
list_documentsLoaded standards and issues with family, type, discipline, parse tier, record counts and tables; filters; can also list documents present but not loaded
get_requirementExact record for a document and requirement ID
search_requirementsBM25 keyword search over requirements and table rows, with neighbouring records per hit; reports named standards that are not loaded
get_tableA table (e.g. factors of safety) as structured rows with labels, cell text, parsed value and footnotes
get_referencesStandards and clauses a requirement points to
compare_topicOne topic searched separately in each standard, grouped ECSS / NASA, with a coverage rating per standard
get_section_outlineA standard's table of contents; for one clause its record IDs and tables (no requirement text)

Every record carries its kind (requirement, recommendation, permission, guidance, deleted) and a citation.

Optional: hybrid search and the agent

pip install -e ".[embed]" and SPACESTD_EMBED=default add embedding ranking fused with BM25 (opt-in, see eval/RESULTS.md). pip install -e ".[agent]" adds python -m spacestd_agent "<question>" --docs documents, the same tools in a tool-calling loop with a citation gate that checks each draft for invented IDs and numbers not found in the retrieved records (ADR-0005); it needs an Anthropic API key.

Parse tiers

Documents differ in how well they parse, so each carries a tier (ADR-0006):

  • verified: checked by hand against the source (requirement counts, IDs, tables).
  • checked: passes the automatic health checks (python -m spacestd.health), not reviewed by hand.
  • unchecked: parsed, but no check has passed; treat results as leads.

Records, tables and rows carry their tier and page. Numbers taken from tables of documents below verified come with a "check against the source, page N" flag, and the citation gate only accepts such a number when the answer repeats it. Always confirm a number in the source.

Evaluation and its limits

Two evals run on a 57-question set (17 numeric, 17 lookup, 7 classification, 5 compare, 11 not covered). Numbers from eval/RESULTS.md, on the 7 hand-verified standards:

MeasureValue
retrieval recall@5 / @20 (46 scored questions)0.64 / 0.89 (0.74 at @5 counting neighbouring records)
table recall@5: row hit / reachable (10 questions)0.50 / 0.85
answers, independent judge, plain client: correct / partial / wrong52 / 4 / 1
answers, gated agent: correct / partial / wrong49 / 7 / 1
invented requirement IDs0
"not covered" questions declined without numbers11 / 11

Limits: the question set is small and written by one author; the first 21 questions had domain review and the later additions did not; one model family answers and judges; retrieval is keyword-based and misses paraphrases (hybrid search helps only partly); and the figures say nothing about the many documents at tier checked or unchecked. Treat answers as aids for locating requirements, not as authority.

Disclaimer

  • No standards text is included. You download the standards yourself.
  • Answers are aids, not authority. They are not a substitute for the applicable standard in the issue your project is contracted to, with its tailoring. Verify any requirement, factor or test level against the source.

Project docs

Roadmap · Release plan · Project brief · Architecture · Decision records · Contributing · Security

Licence

The code is licensed under the Apache License 2.0; see also NOTICE and ADR-0007.

来源:README.md,提交 ff13fbb

工具

0
SourceWeft 尚未在沙箱中启动过该软件包,因此其工具未知。

版本历史

1
  1. v0.2.4最新Oct 15, 2026

评分

已满足适用检查项的 50%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分

    请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。

  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分

其他 Standards 集成