mcpField
S
sdcvalidator-ts

sdcvalidator-ts

ローカル
github.com/SemanticDataCharter開発ツール0今日更新

sdcvalidator-ts について

sdcvalidator-tsは、公開モデルに照らしてSDC4 Governed Data Recordsを検証し、意味エラーを回復するTypeScriptライブラリ兼MCPサーバーです。sdcvalidator 4.6.3と整合する結果を必要とする開発者やエージェント向けで、Node、Deno、ブラウザーに対応します。

主な機能

  1. 01SDC4モデルに基づくレコード検証
  2. 02ExceptionalValuesによる意味エラーの回復
  3. 03スキーマ準拠の確認
  4. 04エラーパスと制約分類の報告
  5. 05限定されたXSD 1.1構文の実装
  6. 06未対応のスキーマ構文の拒否

活用シーン

  1. 01管理対象XMLレコードの検証
  2. 02回復可能な意味データエラーの修復
  3. 03利用前のSDC4スキーマ確認
  4. 04ローカル参照モデルを使ったオフライン検証

MCP 対応

MCPサーバーは、インスタンス検証、詳細レポート、意味エラーの回復、スキーマ準拠確認のツールを提供します。指定されたスキーマとインスタンスのファイルを読み込み、ローカル参照モデルを使えばオフラインで動作します。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"semanticdatacharter-sdcvalidator-ts": {
"command": "npx",
"args": [
"-y",
"sdcvalidator-ts"
]
}
}
}
起動コマンドnpx -y sdcvalidator-ts

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

パッケージ
npmsdcvalidator-ts4.1.0

ツール

4

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

パラメーター型必須説明
schema_pathstringはいSDC4 データモデル XSD ファイルへのパス。
instance_pathstringはい検証する XML インスタンス(Governed Data Record)へのパス。
reference_pathstringいいえSDC4 参照モデル(sdc4.xsd)のローカルコピーへの任意のパスです。指定しない場合、モデルの include はその URL から取得されます。

詳細

sdcvalidator-ts

TypeScript による SDC4 検証です。Governed Data Record を公開済みの SDC4 モデルに照らして検証し、ISO 21090 ExceptionalValues を使用して意味エラーを回復します。適合性テストスイートでは、参照実装である sdcvalidator と同じ結果が得られます。

適合対象: sdcvalidator 4.6.3( 適合性テストスイートの全 151 ケース)。 CI では、このリリースのテストスイートをタグで固定して実行します。

Node(20 以降)、Deno(Supabase Edge Functions を含む)、ブラウザーで動作します。モデルとレコードのテキストを渡すため、ファイルの読み取りやネットワークへのリクエストは行いません。

import { SDC4Validator, REFERENCE_MODEL_URL } from 'sdcvalidator-ts';

const validator = new SDC4Validator({
  text: modelXsd,                       // the model's published XSD
  resolve: (location) => sdc4Xsd,       // the reference model it includes (REFERENCE_MODEL_URL)
});

const result = validator.validate(recordXml);
// { valid, structural: [...], semantic: [{ path, ev, kind, constraint, message }, ...] }

const recovered = validator.recover(recordXml);
// { ok, recoveries: [{ path, code, name, inserted }], unrecoverable: [...], record, text }
// Throws StructuralValidationError if the record has structural errors.

MCP サーバー

パッケージには MCP サーバーが含まれているため、エージェントから直接呼び出せます。stdio 経由で JSON-RPC 2.0 を使用し、Node で実行されます。指定されたファイルを読み取ります。

npx sdcvalidator-ts mcp
ツール説明
validate_instanceエラー数とともに合格または不合格を返します
validate_and_reportすべてのエラーについて、パス、階層、失敗した制約、ExceptionalValue コードを返します
recover_instance回復したレコードと各値を返します。構造エラーがある場合は拒否されます
check_schema_complianceスキーマが SDC4 の原則(拡張ではなく制限)に従っているかを確認します

各ツールは schema_path と instance_path を受け取ります(コンプライアンスチェックではスキーマのみ)。さらに、任意で reference_path も指定できます。モデルの xsd:include にある参照モデルは URL から一度取得され、キャッシュされます。reference_path を指定すると、そのローカルコピーから読み取るため、サーバーはオフラインで動作します。

MCP レジストリには io.github.SemanticDataCharter/sdcvalidator-ts として登録されています。

「同じ結果」の意味

適合性テストスイートでは、各ケースについて次の項目を比較します。

  • 判定結果
  • パスごとの構造エラーと意味エラー
  • 各意味エラーの ExceptionalValue コード
  • 回復の結果
  • 回復したレコード(コメントを無視し、ツリーとして比較)

エラーメッセージは比較しません。エラーはメッセージの表現ではなく、失敗した制約によって分類されます。

ExceptionalValue コードは参照実装(sdcvalidator 4.6.3)のものです。

  • OTH: 列挙値の範囲外の値。
  • INV: 型に適合しない値、またはその他のファセット(パターン、長さ、範囲、桁数、組み込み型固有の範囲)、固定値、アサーションのいずれかに違反する値。
  • NA: 要素のみが許可される場所にある文字データ。
  • コードなし: 構造要素(label、vtb、vte など)のエラー。回復できません。

sdcvalidator のマッピングが変更されると、テストスイートの期待値も変更されます。このライブラリは、次のリリース前にその変更に追従します。

XSD のサブセット

SDC4 スキーマでは XSD 1.1 の限られた部分が使われており、このライブラリはその部分を実装しています。

  • 要素: グローバル要素とローカル要素、および ref、出現回数、fixed、abstract、置換グループ。
  • 複合型: 複合コンテンツと単純コンテンツ、制限と拡張、sequence と choice。
  • 単純型: restriction(enumeration、pattern、length、range、digits、whiteSpace ファセットを含む)と list。約 40 種類の組み込み型。
  • xsd:assert: fontoxpath で評価され、派生型にも継承されます。
  • xsd:include。

サブセット外の構文を検出すると、それを示す UnsupportedSchemaError が発生します。無視されることはありません。

DOCTYPE とエンティティ宣言は解析前に拒否されるため、外部エンティティが解決されることはありません。

開発

npm install
npm run typecheck
npm test     # needs the conformance suite: a sibling sdcvalidator checkout, or CONFORMANCE_DIR
npm run build

依存関係は厳密に固定されています。@xmldom/xmldom 0.9.12(解析用)と fontoxpath 3.34.0(アサーション用の XPath 3.1)です。

ライセンス

Apache-2.0。

コメント

MCP は初めてですか?

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

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