mcpField
S
S1000D Reader (S1000D Stack)

S1000D Reader (S1000D Stack)

ローカル
shuji-bonji.github.io生産性0今日更新

S1000D Reader (S1000D Stack) について

S1000D Readerは、S1000Dのデータモジュールと出版物モジュールを生XMLではなく構造化コンテンツとして提示するMCPサーバーです。文書要素を保持し、製品への適用性を評価して検証状況を返すため、技術文書チームに適しています。

主な機能

  1. 01文書階層と構造化コンテンツの読み取り
  2. 02手順・警告・表・図版の保持
  3. 03製品に対するブロックの適用性評価
  4. 04出版物の目次読み取りと参照解決
  5. 05スキーマおよびBREXの検証状況を報告

活用シーン

  1. 01対象製品に適用される手順や警告の確認
  2. 02出版物の目次と参照モジュールの閲覧
  3. 03文書の適用性と検証結果の確認

MCP 対応

データモジュールと出版物モジュールの一覧・読み取り、参照解決、適用性の確認、ICNメタデータの読み取りに使うツールを提供します。応答には適用性と検証情報が含まれます。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"shuji-bonji-s1000d-reader": {
"command": "npx",
"args": [
"-y",
"@shuji-bonji/s1000d-reader-mcp"
]
}
}
}
起動コマンドnpx -y @shuji-bonji/s1000d-reader-mcp

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npm@shuji-bonji/s1000d-reader-mcp0.7.1

ツール

6

掲載時のツール一覧 · 今日に更新

パラメーター型必須説明
limitnumberいいえ1 回の呼び出しで返すオブジェクト数(デフォルトは 100、最大 1000)。
filterobjectいいえ
filter.textstringいいえtechName または infoName から検索する、大文字と小文字を区別しないテキスト。
filter.infoCodestringいいえ例:"040"(説明)、"520"(手順)、"022"(BREX)、"00W"(ACT)
filter.schemaNamestringいいえdescript / proced / process / fault / pm / brex / …
filter.systemCodestringいいえ
filter.modelIdentCodestringいいえ
offsetnumberいいえ最初のオブジェクトのインデックス(デフォルトは 0)。
includearrayいいえ一覧表示するオブジェクトの種類(デフォルト:dm)。
csdbDirsarrayいいえDMC によるデータモジュール、参照オブジェクト、ACT/CCT/PCT、BREX の検索対象となる追加の CSDB フォルダー(S1000D_CSDB_DIR に加えて)。

詳細

@shuji-bonji/s1000d-reader-mcp

英語 | 日本語

LLM が S1000D® のデータモジュールと出版モジュールを、XML ではなく構造として読み取れるようにする MCP サーバーです。見出しの階層、番号付き手順、警告、注意、注記、図版(ICN)、表、参照先のタイトルをそのまま返し、コンテンツがどの製品に適用されるか(適用性)をサーバーが評価して、その結果のみを渡します。すべての応答には、ドキュメントの検証状況(verification)が含まれます。

重要

これは個人プロジェクトであり、ASD(Aerospace, Security and Defence Industries Association of Europe)とは提携していません。S1000D® は ASD の登録商標です。 S1000D の仕様、XML スキーマ、デフォルトの BREX、公式サンプルは、使用条件で再配布が認められていないため、パッケージやリポジトリには含まれていません。s1000d.org から入手し、展開したフォルダーを S1000D_SPEC_DIR 環境変数に指定してください。

できること

ツール説明
list_data_modulesCSDB 内のデータモジュールを一覧表示します(要求に応じて PM、DML、DDN、IMF、UPF も含みます)。DMC、タイトル、号数、言語、スキーマ名、適用性の表示テキストを表示します。モデル識別コード、システムコード、情報コード、スキーマ名、タイトルのテキストで絞り込めます
read_data_module1 つのデータモジュールを構造として読み取ります。識別情報とステータスのセクション、本文ツリー(セクション、段落、リスト、表、図版、警告、番号付き手順と要件、プロセス分岐、障害切り分けの質問と回答)、参照(タイトルを含む)、検証状況を返します。product を渡すと、各ブロックを applicable / notApplicable / undetermined として示します
read_publication_module出版モジュールを目次として読み取ります。pmEntry ツリーと、各 dmRef / pmRef の解決済みの参照先(ファイル、タイトル、号数)を返します
resolve_referenceDMC、PMC、ICN を CSDB 内のファイルに解決します。ICN の場合は、参照元 DM の DOCTYPE 宣言(ファイル名と NOTATION)も返します
describe_applicability適用性の語彙を返します。ACT の製品属性(id、名前、列挙値、識別子)、CCT の条件、PCT の製品(そのまま product に渡せる値)、DM の applic ステートメント(id と表示テキスト)、PCT が値を割り当てていない属性が含まれます。評価は行いません
read_icn_metadataICN メタデータファイル(IMF)を読み取ります。ICN、号数、タイトル、キーワード、セキュリティ分類、ステータスセクションの項目一覧を返します
適用性の読み取り
状態意味
applicable渡した製品に適用されます
notApplicable適用されません。omitNotApplicable: true を指定すると本文から除外されます
undetermined評価できません。理由は reason に示されます(製品にない属性の名前、product が指定されていない、適用性リポジトリに applicIdentValue がない、など)。これは「適用されない」という意味ではありません

サーバーは assert / evaluate 式を返しません。必要な属性と値は describe_applicability で調べ、{ "attributes": { "model": "…" }, "conditions": { … } } の形式で product に渡してください。

検証状況(verification)

デフォルトでは、サーバーは XSD 検証のみを実行します(verify: "schema")。verify: "full" は BREX(Business Rules Exchange)チェーンとの照合と参照の解決も行い、verify: "none" はこれらをスキップします。スキップされた手順は not-run、XSD が見つからない場合は schema-not-found として報告されます。どちらも valid ではありません。ドキュメントが XSD に違反している場合、要素の位置が仕様と異なる可能性があるため、本文の読み取りも注意して扱ってください。

対応していないこと

警告

  • 要約や翻訳は行いません。 要約に必要な資料(見出し、手順番号、警告の種類、参照先)を、何も省略せずに返します。
  • S1000D への準拠性は判定しません。 XSD と BREX の違反の詳細は s1000d-verify-mcp で、BREX ルールの説明は s1000d-brex-mcp で確認してください。
  • 本文の構造化に対応するのは、descript/proced/process/fault/pm の 5 種類のみです。それ以外の種類では content.structured: false を返し、識別情報とステータスのセクションのみを返します。不明な要素はテキストのみを含む kind: "unknown" として保持され、content.unknownElements に件数が記録されます。

設定

環境変数説明
S1000D_SPEC_DIR入手した S1000D 配布物を展開したフォルダーです。サーバーはその中の XSD(xml_schema_flat/)とデフォルトの BREX を探します。データディクショナリー内の XSD のコピーは使用しません
S1000D_CSDB_DIRプロジェクトのデータモジュールを格納するフォルダーです。複数のフォルダーは :(Windows では ;)で区切って指定できます。DMC、参照先、ACT、CCT、PCT、および適用性リポジトリーによる検索に使用されます

フォルダーは、ツール引数 csdbDirs でも追加できます。

Claude Desktop/Claude Code の設定例
{
  "mcpServers": {
    "s1000d-reader": {
      "command": "npx",
      "args": ["-y", "@shuji-bonji/s1000d-reader-mcp"],
      "env": {
        "S1000D_SPEC_DIR": "/path/to/s1000d/issue-7",
        "S1000D_CSDB_DIR": "/path/to/your/csdb"
      }
    }
  }
}

仕組み

読み取り、評価、検証のコードはすべて共有ライブラリー @shuji-bonji/s1000d-core に含まれています。このサーバーにあるのは、引数の解釈とレスポンスの形式のみです。検証ステータスは s1000d-verify-mcp と同じ関数で構築されるため、2 つのサーバーの結果は一致します。

開発

npm install
npm test            # runs on self-made test data only
npm run test:spec   # uses the distribution you obtained (location given by S1000D_SPEC_DIR; default ../../specs/s1000d/issue-7)
npm run build && S1000D_SPEC_DIR=/path/to/issue-7 S1000D_CSDB_DIR=/path/to/csdb npm start   # start over stdio

ライセンス

MIT。S1000D® は ASD の登録商標です。本ソフトウェアは ASD と提携しておらず、仕様、スキーマ、公式サンプルも含まれていません。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。