Space Standards について
Space Standards は、用意した ECSS および NASA の宇宙規格を扱うエンジニア向けの MCP サーバーです。要求や表を文書名、版、条項の引用付きで検索し、対象外の内容も示します。
主な機能
- 01BM25による要求検索
- 02要求レコードの正確な取得
- 03表を構造化された行で取得
- 04規格間の参照を追跡
- 05規格ごとのトピック網羅状況を比較
活用シーン
- 01用意した規格から安全率を検索
- 02文書と条項を指定して要求を確認
- 03ECSSとNASAのトピック網羅状況を比較
- 04読み込み済み文書で扱われない質問を特定
MCP 対応
文書一覧、要求・表の取得、参照検索、トピック比較、章構成の確認ツールをMCPクライアントに公開します。規格文書は利用者が用意し、リポジトリには本文が含まれません。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
uvx space-standards-mcpSPACESTD_DOCSAbsolute path to the folder with your own ECSS / NASA standards (PDF or Word). No standards ship with the package; without it the server starts empty.SPACESTD_EMBEDOptional hybrid search: set to 'default' (needs the 'embed' extra: space-standards-mcp[embed]).SPACESTD_RERANKOptional reranker: set to 'default' (needs the 'embed' extra).ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
7掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| limit | integer | いいえ | |
| query | string | いいえ | |
| family | string | いいえ | |
| doc_type | string | いいえ | |
| discipline | string | いいえ | |
| include_not_loaded | boolean | いいえ |
詳細
space-standards-mcp
ECSS および NASA の宇宙規格に関する質問に、要求レベルの正確な引用を付けて回答する MCP サーバー(および任意で追加できる軽量なエージェント)です。すべての結果に文書名、版、要求 ID を明記し、該当する内容がない場合は「記載なし」と回答します。規格文書はご自身で用意してください。文書の内容はこのリポジトリに一切保存されません。まずはロケットとペイロードフェアリングの構造(安全率、破壊管理、荷重、衝撃、振動音響)を対象とし、ECSS と NASA の規格全体に対応できるよう拡張していく設計です。
独立したプロジェクトです。 欧州宇宙機関(ESA)、ECSS 事務局、NASA との提携や、これらの機関による承認を受けていません。ECSS、ESA、NASA の名称および規格名はそれぞれの所有者に帰属し、このソフトウェアが扱う文書を特定する目的に限って使用しています。
60秒デモ(架空のサンプル文書)
リポジトリには、架空のデモ用規格文書3件とデモ用ハンドブックが tests/fixtures/ に含まれています(実在しない文章と数値なので、実際の文書を使わずにすべての機能を試せます)。
git clone https://github.com/manojknaikade/space-standards-mcp.git && cd space-standards-mcp
python -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 questions
python 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
以下のクライアントを使ってこのサーバーに接続し、たとえば「DEMO-E-ST-98C における金属製フェアリングの安全率はどれですか?」と質問してください。DEMO-E-ST-98C Rev.2, 4.1.2a のような引用付きで回答が返されます。
独自の文書を使用する
規格文書の本文はここでは配布していません。文書をご自身でダウンロードし、documents/(gitignore 対象)または SPACESTD_DOCS で指定した任意のフォルダーに配置してください。
- ECSS: https://ecss.nl(無料登録が必要です)。Word または PDF 形式です。
- NASA: NASA Technical Standards System、https://standards.nasa.gov。
python scripts/download_nasa_standards.py documents/nasaを実行すると、公開されている文書を適切な間隔で取得します(robots.txt を遵守し、2秒ごとに1リクエスト)。--dry-runを指定すると、一覧表示のみを行います。
次に、以下を実行します。
python -m spacestd.catalogue documents # what was found, and what is loaded
python -m spacestd.health documents # parse every document, set its tier, write eval/CORPUS_HEALTH.md
documents/corpus.yaml で読み込む文書を選択します(* を使った文書 ID パターンについては、
ADR-0006 を参照してください)。このファイルがない場合は、documents/ 直下にあるファイルのみが読み込まれます。
load:
- ECSS-E-ST-32*
- NASA-STD-5*
ファイル名、サイドカーメタデータ、対応形式(PDF を推奨。Word ファイルには LibreOffice が必要です)については、
documents/README.md を参照してください。解析済みの文書は documents/.spacestd-cache/ にキャッシュされます。
規格の利用には、各発行元の利用規約が適用されます。
クローンせずにインストールする
このパッケージは PyPI で公開されています。
uvx space-standards-mcp
pipx install space-standards-mcp
最新の開発版は、Git からインストールできます。
pipx install git+https://github.com/manojknaikade/space-standards-mcp。
space-standards-mcp コマンドでサーバー(stdio)が起動し、SPACESTD_DOCS を読み込みます。
MCP クライアントを接続する
パッケージがインストールされている Python と、文書フォルダーには絶対パスを指定してください。
uvx を使うと、ローカルにインストールせずにクライアントからサーバーを起動できます。たとえば Claude Desktop では、次のように指定します。
{"command": "uvx", "args": ["space-standards-mcp"], "env": {"SPACESTD_DOCS": "/abs/path/to/documents"}}。
Claude Code
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)
{
"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)
{
"servers": {
"space-standards": {
"type": "stdio",
"command": "/abs/path/to/.venv/bin/python",
"args": ["-m", "spacestd.server"],
"env": { "SPACESTD_DOCS": "/abs/path/to/documents" }
}
}
}
ツール
| ツール | 機能 |
|---|---|
list_documents | 読み込まれた規格と課題を、ファミリー、種類、分野、解析ティア、レコード数、表とともに一覧表示します。フィルターも使用できます。読み込まれていない文書の一覧表示も可能です |
get_requirement | 文書と要求 ID に対応する正確なレコードを取得します |
search_requirements | 要求と表の行を対象に BM25 キーワード検索を実行し、各ヒットの前後にあるレコードも返します。読み込まれていない規格の名前も報告します |
get_table | 安全係数などの表を、ラベル、セルのテキスト、解析値、脚注を含む構造化された行として取得します |
get_references | 要求が参照する規格と条項を取得します |
compare_topic | 1 つのトピックを各規格で個別に検索し、ECSS/NASA ごとにまとめて、規格ごとの網羅度を評価します |
get_section_outline | 規格の目次を取得します。1 つの条項については、そのレコード ID と表も取得します(要求文は含みません) |
各レコードには、kind(requirement、recommendation、permission、guidance、deleted)と citation が含まれます。
オプション:ハイブリッド検索とエージェント
pip install -e ".[embed]" と SPACESTD_EMBED=default を設定すると、BM25 と統合した埋め込みランキングが追加されます(オプトイン方式です。eval/RESULTS.md を参照)。pip install -e ".[agent]" を実行すると、python -m spacestd_agent "<question>" --docs documents が追加されます。これは、各回答案について取得したレコードにない ID や数値の捏造をチェックする引用ゲートを備えたツール呼び出しループで、同じツールを使用します(ADR-0005)。Anthropic API キーが必要です。
解析ティア
文書によって解析の精度が異なるため、それぞれにティアが付与されています(ADR-0006)。
- verified:要件数、ID、表を原文と照合して人手で確認済みです。
- checked:自動ヘルスチェック(
python -m spacestd.health)に合格していますが、人手によるレビューは行われていません。 - unchecked:解析済みですが、チェックには合格していません。結果は手がかりとして扱ってください。
レコード、表、行には、それぞれ tier と page が付与されています。verified 未満のティアの文書にある表から取得した数値には、「原文のページ N を確認してください」というフラグが付きます。また、回答にその数値が再掲されている場合に限り、引用ゲートがその数値を受け入れます。数値は必ず原文で確認してください。
評価とその限界
57 問(数値に関する質問 17 問、検索 17 問、分類 7 問、比較 5 問、対象外 11 問)のセットで 2 種類の評価を実施しています。eval/RESULTS.md にある、手作業で検証した 7 つの規格を対象とする数値は次のとおりです。
| 指標 | 値 |
|---|---|
| 検索再現率@5/@20(採点対象の質問 46 問) | 0.64/0.89(前後のレコードも含めると @5 で 0.74) |
| 表の再現率@5:行のヒット数/到達可能数(質問 10 問) | 0.50/0.85 |
| 回答、独立した評価者、通常のクライアント:正解/一部正解/不正解 | 52/4/1 |
| 回答、ゲート付きエージェント:正解/一部正解/不正解 | 49/7/1 |
| 捏造された要求 ID | 0 |
| 「対象外」の質問に対し、数値を示さず回答を控えた件数 | 11/11 |
限界:質問セットは小規模で、1 人の著者が作成しています。最初の 21 問は分野の専門家によるレビューを受けていますが、後から追加された質問は受けていません。回答と評価には 1 つのモデルファミリーが使用されています。検索はキーワードベースのため、言い換えを見落とします(ハイブリッド検索でも改善は部分的です)。また、これらの数値は checked または unchecked ティアの多数の文書については何も示していません。回答は要求箇所を見つけるための補助として扱い、権威ある情報源として扱わないでください。
免責事項
- 規格本文は含まれていません。 規格はご自身でダウンロードしてください。
- 回答は補助であり、権威ある情報源ではありません。 プロジェクトで適用される、契約対象の版の規格およびそのテーラリングの代わりにはなりません。要求、係数、試験レベルは、必ず原文で確認してください。
プロジェクトドキュメント
ロードマップ · リリース計画 · プロジェクト概要 · アーキテクチャ · 意思決定記録 · コントリビューション · セキュリティ
ライセンス
コードはApache License 2.0の下でライセンスされています。NOTICEと ADR-0007もご覧ください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。