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 整合