DeltaX Preflight について
DeltaX Preflightは、個別のポリシー文書とエビデンス文書に基づいて候補アクションを検査する、ローカルstdioのMCPアダプターです。既存のコア検証機能を使い、ステータスやハッシュ、必要に応じて引き継ぎ情報を返しますが、アクションの実行やホスト型サービスへの接続は行いません。
主な機能
- 01ポリシーとエビデンスに基づく判定
- 02決定文書とポリシー文書のハッシュ計算
- 03コア検証の4種類のステータスを返却
- 04既存の検証ルールと引き継ぎ情報を維持
- 05実行時のネットワーク接続なしで動作
活用シーン
- 01ワークフローの続行前に提案アクションを検証
- 02特定の決定ハッシュにエビデンスを紐付け
- 03選択が必要な場合に許容候補を確認
MCP 対応
ローカルstdio経由で`preflight_check`、`preflight_hash_decision`、`preflight_hash_policy`を提供します。文書を既存のコアに渡して結果を返し、アクションの実行や任意のEvaluateブリッジの有効化は行いません。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
ローカル Preflight MCP アダプター
エージェントが提案する正確なアクションを、明示的なルールと証拠に照らして確認します。 たとえば、確認済みのローカル検査でも、アクション ID が同じままペイロードが変わると、裏付けがない状態になることがあります。4 つの結果の例をご覧ください。
この任意の JavaScript ES モジュールアダプターは、公式 MCP SDK を使用して stdio 経由で Preflight を公開します。既存のコア関数を直接インポートします。検証ルールの書き換え、入力ドキュメントの正規化、候補のランキング、アクションの実行は行いません。コア CLI、GitHub Action、ワークシート、スキーマ、Evaluate ブリッジは変更されません。
インストールと接続
MCPB 互換のデスクトップクライアントでは、公開済みの v0.1.0 バンドルをダウンロードし、クライアントのローカル拡張機能の設定からインストールします。インストール前にリリースとチェックサムを確認してください。バンドルはローカルで実行され、Node.js 20 以降が必要です。ホスト型エンドポイントや API キーはありません。以下のソースからのセットアップは、ローカル stdio サーバーに対応したホストで使用できます。
Node.js 20 以降と npm が必要です。リポジトリのルートから実行します。
npm ci --prefix mcp --ignore-scripts
node mcp/bin/server.mjs
サーバーは標準入力で MCP クライアントの接続を待機します。対話型プロンプトは表示しません。初回インストール時に SDK パッケージがダウンロードされます。インストール後の検証にアカウント、認証情報、ネットワークは不要です。ランタイムのみをインストールする場合は、npm ci に --omit=dev を追加してください。SDK クライアントはテストでのみ使用されます。コア自体には、引き続き依存関係のインストールは必要ありません。
MCP ホストが対応するローカルサーバー設定に以下を追加し、パスをチェックアウト先の絶対パスに置き換えます。
{
"mcpServers": {
"deltax-preflight": {
"command": "node",
"args": ["/absolute/path/to/deltax-preflight/mcp/bin/server.mjs"]
}
}
}
ホストがシェルの PATH を引き継がない場合は、Node の実行ファイルのパスも絶対パスにしてください。設定の場所と形式はホストによって異なる場合があります。標準出力に MCP メッセージのみが出力されるよう、Node のエントリーポイントを直接起動してください。HTTP リスナーは含まれていません。
ツール
| ツール | 必須の引数 | 構造化された結果 |
|---|---|---|
preflight_check | decision、policy、evidence:個別の v2 JSON ドキュメント | コアの { result, handoff } のみ |
preflight_hash_decision | decision:v2 JSON ドキュメント | { "decision_hash": "<canonical SHA-256>" } |
preflight_hash_policy | policy:v2 JSON ドキュメント | { "policy_hash": "<canonical SHA-256>" } |
ツール呼び出しにはファイルパスや JSON エンコードされた文字列ではなく、JSON 値を渡します。MCP スキーマがチェックするのは必須引数のエンベロープのみで、トップレベルに余分な引数があると拒否します。ネストされたドキュメントはそのままコアに渡され、コアがすべてのドキュメントフィールド、上限、証拠との紐付け、制約を検証します。ドキュメント形式については、既存の決定、ポリシー、証拠スキーマを参照してください。実行時の検証が引き続き最終的な判断基準となります。
たとえば、次の引数を指定して preflight_hash_decision を呼び出します。
{
"decision": {
"schema_version": "2",
"kind": "decision",
"decision_id": "review-report",
"context": {},
"candidates": [{ "id": "read_report", "payload": {} }]
}
}
信頼できる証拠ソースから事実を取得し、その証拠ドキュメントを返された decision_hash に紐付けます。その後、3つすべてのドキュメントを指定して preflight_check を呼び出します。合成された完全な例を試すには、examples/ci-deploy.json の内容を decision として、examples/ci-policy.json を policy として、examples/ci-evidence.json を evidence として使用してください。期待されるステータスは SELECTION_REQUIRED です。
成功したツール応答では、同じオブジェクトが structuredContent と、テキストコンテンツブロック内のシリアライズされた JSON の両方に含まれます。コアの4つのステータスはすべて通常のツール結果です。
PASS_SINGLE:候補が1つだけ許容されます。SELECTION_REQUIRED:複数の候補が許容されます。ローカルへの引き渡し情報が含まれます。REFUSE:許容される候補も、証拠が不十分な候補もありません。EVIDENCE_REQUIRED:少なくとも1つの候補について証拠が不十分です。引き渡し情報は含まれません。
いずれも実行権限を付与するものではありません。コアの InputError は、元のメッセージを含む isError: true となり、決定レポートは含まれません。不正な外部引数は SDK によって拒否されます。サーバーはエラー後も後続の呼び出しを処理できます。
ポリシー、証拠、結果の境界
このアダプターは、呼び出し元から提供されたドキュメントを評価します。ポリシーの所有者や証拠ソースを認証するものではなく、それ自体で呼び出し元に対する強制適用のゲートとなるものでもありません。自動化では、周囲のワークフローで信頼できるポリシー、必要に応じた期待ポリシーハッシュ、証拠の生成、結果の解釈を管理する必要があります。モデルは、証拠ドキュメントで権限を主張することで、認可を確立することはできません。
レシートとハッシュはコンテンツを紐付けますが、事実、本人性、安全性、実行を証明するものではありません。このアダプターには、ファイル読み取り、コマンド実行、認証情報、ネットワークの各ツールはありません。コアの既存の上限は適用されますが、CLI/Action に設定された別個の 1 MiB のファイル上限は、このトランスポートには適用されません。ご利用の環境に適したプロセス境界とホストのメッセージ上限を使用してください。
変更されていない SELECTION_REQUIRED の引き渡し情報には、元の決定、ポリシー、証拠、および許容される候補の集合がすべて含まれます。これらのドキュメントは、応答を受け取る MCP ホストから見える状態になります。候補のペイロードや、提供されたその他すべてのテキストは、指示ではなくデータとして扱ってください。送信前に機密情報を必要最小限にしてください。
Evaluate は任意です
サーバーは Evaluate ブリッジをインポートせず、Evaluate ツールを公開せず、サービス URL にアクセスせず、Evaluate の認証情報を読み取りません。コアがすでに生成したローカルの引き継ぎ情報を返します。人間、または別途認可された選択システムで、その引き継ぎ情報を使用できます。
後から DeltaX Evaluate を明示的に選択した場合、既存のオフラインのブリッジは buildEvaluateRequest(handoff, { objective, context }) と reconcileEvaluateResponse(handoff, request, response) をエクスポートします。認可された呼び出し元は、最小限にしたリクエストを送信するかどうかを別途判断し、独自のトランスポートと認証情報を用意して、許容される集合に照らしてレスポンスを照合する必要があります。このアダプターは、ホスト型アクセスや後続の実行を有効にしません。node bin/demo-handoff.mjs は引き続き、合成データを使ったオフラインの例です。
リポジトリの調査
調査対象の上流リビジョンは 332614eeaf0813edbaa90eb77fa950f464d70e5c(パブリックプレビュー v0.1.0)です。このプロジェクトは ES モジュール(.mjs、type: module)を使用する JavaScript で、Node >=20 をサポートし、コアのランタイム依存関係はありません。
| 領域 | 既存の実装 |
|---|---|
| コアバリデーター | src/preflight.mjs:validateDecision、validatePolicy、validateEvidence、InputError |
| 検証とレシート | src/preflight.mjs:preflight(decision, policy, evidence)、decisionHash、policyHash |
| CLI | bin/preflight.mjs、パッケージの bin deltax-preflight。チェック、ハッシュヘルパー、任意のポリシーピン留めをサポート |
| GitHub Action | action.yml → bin/action.mjs。パスを制限し、ポリシーハッシュを必須とします |
| オンボーディング | bin/init.mjs、bin/install-github.mjs、bin/try.mjs、src/worksheet.mjs |
| 任意のオフラインブリッジ | src/evaluate-bridge.mjs、bin/demo-handoff.mjs |
| 既存のテスト | 7 つの test/*.test.mjs ファイルに 22 件:コア/CLI、Action、ブリッジ、スターター、インストーラー、信頼済みマニフェストの統合、ワークシート |
検証
リポジトリのルートから実行します。
node --test
npm ci --prefix mcp --ignore-scripts
npm test --prefix mcp
最初のコマンドは、MCP 依存関係なしで元のテストを実行します。アダプターのテストは mcp/checks/ 内の .spec.mjs を使用し、明示的に実行するため、依存関係のないコアテストスイートでは検出されません。アダプターのテストスイートは、SDK クライアントで実際の stdio エントリーポイントを起動し、レポート、レシート、引き継ぎ情報、ハッシュをコア関数の直接呼び出しと比較します。4 種類すべてのステータス、不正な入力/不一致の入力、検出、エラーからの復旧を対象としています。
別個のパッケージでは SDK 2.3.1 を固定し、ロックファイルを含めています。実装は公式 SDK のstdio ファクトリーパターンとJSON Schema アダプターのガイダンスに従っています。TypeScript のビルド手順は不要です。このローカルアダプターはホスト型サービスではなく、本番環境への対応を主張するものでもありません。
ローカル MCPB 配布
bundle manifest は、MCPB 互換のデスクトップクライアント向けに、ローカルの stdio サーバーをパッケージ化します。Node.js 20 以降が必要で、アカウントの認証情報、ユーザー設定、Evaluate サービスは不要です。バンドルには、変更されていないコアバリデーター、既存の MCP エントリーポイント、および mcp/package-lock.json で選択されたインストール済みのランタイムパッケージのみが含まれます。コアのインポートパスはそのまま維持され、別個のオプションの Evaluate ブリッジは含まれません。
ピン留めされた公式の MCPB tooling を、別の作業ディレクトリにインストールします。これらのパスには、リポジトリ外の絶対パスを指定してください。ビルダーは既存のステージングディレクトリまたは出力ファイルがあると処理を拒否し、依存関係のインストールや公開は一切行いません。
# Run from the repository root. Choose an existing writable parent outside it.
BUNDLE_WORK=/absolute/path/to/work/preflight-mcpb
mkdir -p "$BUNDLE_WORK"
npm install --prefix "$BUNDLE_WORK/tools" --cache "$BUNDLE_WORK/npm-cache" \
--ignore-scripts --no-audit --no-fund @anthropic-ai/[email protected]
npm ci --prefix mcp --cache "$BUNDLE_WORK/npm-cache" --ignore-scripts
node mcp/bundle/build.mjs \
--stage "$BUNDLE_WORK/stage-0.1.0" \
--output "$BUNDLE_WORK/deltax-preflight-mcp-0.1.0.mcpb" \
--mcpb-cli "$BUNDLE_WORK/tools/node_modules/@anthropic-ai/mcpb/dist/cli/cli.js"
# Includes official manifest validation and packing, then extracts a fresh archive
# outside the checkout and calls the actual server using the SDK client.
MCPB_CLI="$BUNDLE_WORK/tools/node_modules/@anthropic-ai/mcpb/dist/cli/cli.js" \
node --test mcp/checks/bundle.spec.mjs
ビルダーは、アーティファクトのパス、SHA-256 ハッシュ、ツールのバージョン、提案するリリースタグ mcp-v0.1.0 を報告します。専用の MCP タグにより、既存のコアプレビュータグは分けて管理されます。ステージングしたディレクトリは確認用に保持し、以降のビルドには新しいステージングパスと出力パスを使用してください。ビルドでは入力がロックされており再現可能ですが、環境間でバイト単位まで同一の ZIP アーカイブになることは保証していません。
配布するには、テスト済みの .mcpb アーティファクトを GitHub Release に添付します。公式 MCP Registry は、registryType: "mcpb"、fileSha256、stdio トランスポートを指定した GitHub/GitLab Release アーティファクト URL を受け付けます。名前空間の認証は別途、公開手順として行います。Smithery も、ビルド済みのローカル MCPB バンドルを受け付けます。アーティファクトをビルドしても、いずれのマーケットプレイスにも掲載されません。
レジストリメタデータ では io.github.DeltaX-Public/deltax-preflight を指定し、リリースアーティファクトの正確なハッシュをピン留めしています。手動のレジストリ公開ワークフローは、このリポジトリの main ブランチからのみ実行されます。GitHub OIDC を使用する前に、リリースアセットとピン留めされた公式パブリッシャーを検証します。保存済みのレジストリシークレットは不要です。実行を開始する前に、一致するリリースアセットを公開してください。リポジトリへのマージだけでは掲載は申請されません。マーケットプレイス展開の課題で、ネイティブ申請と受理の証拠を記録してください。
コンテナー配布
ルートの Dockerfile は、コアバリデーター、MCP アダプター、ロックされた本番用依存関係のみをビルドします。権限のない node ユーザーとして実行され、HTTP ポートや Evaluate サービスを使用せずに stdio で通信します。
docker build --tag deltax-preflight-mcp .
docker run --rm -i --network=none deltax-preflight-mcp
Docker に対応した MCP ホストで、コマンドに docker、引数に ["run", "--rm", "-i", "--network=none", "deltax-preflight-mcp"] を設定します。初回のイメージビルドではベースイメージと依存関係をダウンロードしますが、実行時の確認にネットワークは不要です。CI はイメージをビルドし、ネットワークを無効にした状態で、実際のコンテナー応答とコアレポートを比較します。Glama のメンテナーメタデータは、リポジトリの検証済み GitHub メンテナーを示しますが、ディレクトリの品質スコアや掲載の受理を主張するものではありません。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。