Space Standards

io.github.manojknaikadePublished by GitHub account manojknaikadev0.2.4Updated Oct 24, 2026

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

The publisher's own server: Standards

VerifiedSTDIODesktop onlyFiles & StorageKnowledge & Memory

Overview

AI-generated overview

Local MCP server that answers questions about ECSS and NASA space standards you supply, returning requirement-level citations or saying the topic is not covered

What you can do
List loaded standards and issues, with family, type, discipline, parse tier and record counts, and see documents present but not loaded. Fetch an exact requirement record by document and requirement ID, and follow the standards and clauses it references. Search requirements and table rows by keyword, with neighbouring records per hit and notice of named standards that are not loaded. Read tables such as factors of safety as structured rows with labels, cell text, parsed values and footnotes. Compare one topic across standards grouped ECSS and NASA with a coverage rating, and browse a standard's table of contents or a clause's record IDs and tables.
When to use it
Useful when you work with launcher and payload-fairing structures or other space engineering topics and need to locate specific ECSS or NASA requirements, factors of safety or test levels with document, issue and requirement IDs. It suits engineers who already hold the standards and want faster lookup and cross-standard comparison, not a substitute for the source text.
Requirements
Runs locally over stdio as a Python package (Python 3.11+), started with uvx, pipx or a virtual environment. SPACESTD_DOCS must point to an absolute folder of your own ECSS or NASA documents in PDF or Word; nothing ships with the package, so without it the server starts empty. Word files need LibreOffice. Optional SPACESTD_EMBED and SPACESTD_RERANK enable hybrid search and reranking and need the embed extra. The optional agent needs an Anthropic API key.
Before you install
No standards text is included; you must download the documents yourself and they remain subject to their publishers' terms of use. Answers are aids for locating requirements, not authority: verify every requirement, factor and test level against the source, especially numbers from tables in documents below the verified tier. Retrieval is keyword-based and misses paraphrases, and the evaluation set is small. The optional agent sends content to Anthropic and needs an API key.

Installation

In SourceWeft

  1. Open Space Standards in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

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.

Source: README.md at commit ff13fbb

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

1
  1. v0.2.4LatestOct 15, 2026

Score

50% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts

Other Standards integrations