DeltaX Preflight

io.github.DeltaX-Public由 GitHub 帳號 DeltaX-Public 發布v0.1.0更新於 Oct 26, 2026

Check finite candidate proposals against separate policy and evidence, with canonical hash receipts.

發布方自己的服務:Preflight

已驗證STDIO僅桌面開發者工具安全與監控

概覽

AI 產生的概覽

本機 stdio 伺服器,以獨立的政策與證據文件檢核代理提出的決策,回傳通過、拒絕或需選擇等結果及標準化 SHA-256 回執。

可以做什麼
  • 將決策、政策與證據三份文件一起檢核,取得四種狀態之一以及可選的交接內容
  • 計算決策文件或政策文件的標準化 SHA-256 雜湊
  • 每次呼叫同時回傳結構化結果與序列化 JSON
  • 輸入錯誤以工具錯誤形式回傳,不附帶決策報告
適用情境
當代理提出有限的候選動作,而你需要離線、確定性地判斷在明確政策與已綁定證據下是否有候選可被採納,並留下可記錄的雜湊回執時使用。
執行需求
以 stdio 在本機執行;MCPB 安裝包或原始碼安裝需要 Node.js 20 以上版本與 npm。首次安裝會下載 SDK 相依套件,但檢核本身不需要帳號、憑證或網路。另提供 Docker 映像。
安裝前請注意
它只評估呼叫端提供的文件,不驗證政策擁有者或證據來源,因此本身不構成對呼叫端的強制關卡。雜湊只綁定內容,不證明事實、身分或安全性,任何結果都不授予執行權限。需選擇時的交接內容會把完整的決策、政策與證據回傳給宿主,請先精簡敏感輸入;此轉接器沒有檔案、指令、憑證或網路工具。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 DeltaX Preflight,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

Local Preflight MCP adapter

Check the exact action your agent proposes against explicit rules and evidence. For example, a reviewed local inspection can become unproven when its payload changes, even if its action ID stays the same. See the four-result walkthrough.

This optional JavaScript ES module adapter exposes Preflight over stdio using the official MCP SDK. It imports the existing core functions directly. It does not rewrite validation rules, normalize input documents, rank candidates, or execute actions. The core CLI, GitHub Action, worksheet, schemas and Evaluate bridge remain unchanged.

Install and connect

For an MCPB-compatible desktop client, download the published v0.1.0 bundle and install it through the client's local extension controls. Review the release and its checksum before installation. The bundle runs locally and requires Node.js 20 or later. It has no hosted endpoint or API key. The source setup below works with hosts that support local stdio servers.

Requires Node.js 20 or later and npm. From the repository root:

sh
npm ci --prefix mcp --ignore-scriptsnode mcp/bin/server.mjs

The server waits for an MCP client on stdin; it does not print an interactive prompt. The initial install downloads SDK packages. Once installed, validation needs no account, credential, or network. For a runtime-only install, add --omit=dev to npm ci; the SDK client is only used by tests. The core itself still needs no dependency installation.

Add the following to the local-server configuration supported by your MCP host, replacing the path with your checkout's absolute path:

json
{  "mcpServers": {    "deltax-preflight": {      "command": "node",      "args": ["/absolute/path/to/deltax-preflight/mcp/bin/server.mjs"]    }  }}

Use an absolute Node executable path too if your host does not inherit your shell's PATH. Configuration locations and format can vary by host. Launch the Node entry point directly so stdout carries only MCP messages. No HTTP listener is included.

Tools

ToolRequired argumentsStructured result
preflight_checkdecision, policy, evidence: separate v2 JSON documentsExactly the core { result, handoff }
preflight_hash_decisiondecision: v2 JSON document{ "decision_hash": "<canonical SHA-256>" }
preflight_hash_policypolicy: v2 JSON document{ "policy_hash": "<canonical SHA-256>" }

Tool calls take JSON values, not file paths or JSON-encoded strings. The MCP schema checks only the required argument envelope and rejects extra top-level arguments. It passes the nested documents intact to the core, which enforces all document fields, limits, evidence binding and constraints. See the existing decision, policy and evidence schemas for the document format; runtime validation remains authoritative.

For example, call preflight_hash_decision with this argument:

json
{  "decision": {    "schema_version": "2",    "kind": "decision",    "decision_id": "review-report",    "context": {},    "candidates": [{ "id": "read_report", "payload": {} }]  }}

Obtain facts from your trusted evidence source and bind its evidence document to the returned decision_hash. Then call preflight_check with all three documents. To try a complete synthetic example, use the contents of examples/ci-deploy.json as decision, examples/ci-policy.json as policy, and examples/ci-evidence.json as evidence. The expected status is SELECTION_REQUIRED.

Successful tool responses include the same object in structuredContent and as serialized JSON in a text content block. All four core statuses are ordinary tool results:

  • PASS_SINGLE: one candidate is admissible.
  • SELECTION_REQUIRED: multiple candidates are admissible; a local handoff is included.
  • REFUSE: none is admissible and none is unproven.
  • EVIDENCE_REQUIRED: at least one candidate is unproven; no handoff is included.

None grants authority to execute. A core InputError becomes isError: true with the original message and no decision report. Malformed outer arguments are rejected by the SDK. The server can handle subsequent calls after an error.

Policy, evidence and result boundaries

This adapter evaluates the documents supplied by its caller. It does not authenticate the policy owner or evidence source and is not by itself an enforcement gate against that caller. For automation, the surrounding workflow must control trusted policy, any expected policy hash, evidence production, and interpretation of results. A model cannot establish authorization by asserting it in an evidence document.

Receipts and hashes bind content; they do not certify facts, identity, safety, or execution. The adapter has no file-reading, command-running, credential, or network tool. The core's existing limits apply; the CLI/Action's separate 1 MiB file limit is not imposed by this transport. Use an appropriate process boundary and host message limits for your environment.

The unchanged SELECTION_REQUIRED handoff contains the full original decision, policy, evidence, and admissible candidate set. Those documents become visible to the MCP host receiving the response. Treat candidate payloads and all other supplied text as data, never instructions. Minimize sensitive inputs before submitting them.

Evaluate is optional

The server does not import the Evaluate bridge, advertise an Evaluate tool, access a service URL, or read Evaluate credentials. It returns the local handoff already produced by the core. A human or any separately authorized selection system can use that handoff.

If you explicitly choose DeltaX Evaluate later, the existing offline bridge exports buildEvaluateRequest(handoff, { objective, context }) and reconcileEvaluateResponse(handoff, request, response). An authorized caller must separately decide whether to transmit a minimized request, supply its own transport and credentials, and reconcile the response against the admissible set. Nothing in this adapter activates hosted access or downstream execution. node bin/demo-handoff.mjs remains a synthetic offline example.

Repository inspection

The inspected upstream revision is 332614eeaf0813edbaa90eb77fa950f464d70e5c (public preview v0.1.0). The project is JavaScript with ES modules (.mjs, type: module), supports Node >=20, and has no core runtime dependencies.

AreaExisting implementation
Core validatorssrc/preflight.mjs: validateDecision, validatePolicy, validateEvidence, InputError
Validation and receiptssrc/preflight.mjs: preflight(decision, policy, evidence), decisionHash, policyHash
CLIbin/preflight.mjs, package bin deltax-preflight; supports check, hash helpers and optional policy pin
GitHub Actionaction.yml → bin/action.mjs; confines paths and requires a policy hash
Onboardingbin/init.mjs, bin/install-github.mjs, bin/try.mjs, src/worksheet.mjs
Optional offline bridgesrc/evaluate-bridge.mjs, bin/demo-handoff.mjs
Existing tests22 tests in seven test/*.test.mjs files: core/CLI, Action, bridge, starter, installer, trusted-manifest integration, worksheet

Verification

From the repository root:

sh
node --testnpm ci --prefix mcp --ignore-scriptsnpm test --prefix mcp

The first command runs the original tests without MCP dependencies. Adapter tests use .spec.mjs under mcp/checks/ and are run explicitly, so the dependency-free core suite does not discover them. The adapter suite launches the actual stdio entry point with an SDK client and compares reports, receipts, handoffs and hashes with direct core calls. It covers all four statuses, malformed/mismatched input, discovery, and error recovery.

The separate package pins SDK 2.3.1 and includes a lockfile. The implementation follows the official SDK's stdio factory pattern and JSON Schema adapter guidance. No TypeScript build step is required. This local adapter is not a hosted service or a production-readiness claim.

Local MCPB distribution

The bundle manifest packages the local stdio server for MCPB-compatible desktop clients. It requires Node.js 20 or later and no account credentials, user configuration or Evaluate service. The bundle contains the unchanged core validator, existing MCP entry points and only the installed runtime packages selected by mcp/package-lock.json. It preserves the core import paths; the separate optional Evaluate bridge is not included.

Install the pinned official MCPB tooling in a separate work directory. Set these paths to absolute locations outside the repository; the builder refuses existing staging directories or output files and never installs dependencies or publishes anything:

sh
# Run from the repository root. Choose an existing writable parent outside it.BUNDLE_WORK=/absolute/path/to/work/preflight-mcpbmkdir -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

The builder reports the artifact path, SHA-256 hash, tool version and proposed release tag mcp-v0.1.0. The dedicated MCP tag leaves the existing core preview tag separate. Keep the staged directory for inspection; choose a fresh stage/output path for subsequent builds. The build has repeatable locked inputs but does not claim byte-for-byte identical ZIP archives across environments.

For distribution, attach the tested .mcpb artifact to a GitHub Release. The official MCP Registry accepts a GitHub/GitLab Release artifact URL with registryType: "mcpb", fileSha256 and stdio transport; namespace authentication is a separate publishing step. Smithery also accepts a prebuilt local MCPB bundle. Building the artifact does not create either marketplace listing.

The registry metadata names io.github.DeltaX-Public/deltax-preflight and pins the exact release artifact hash. The manual registry publication workflow runs only from this repository's main branch: it verifies the release asset and the pinned official publisher before using GitHub OIDC. It requires no saved registry secret. Publish the matching release asset before dispatching it; a repository merge alone does not submit a listing. Track native submission and acceptance evidence in the marketplace rollout issue.

Container distribution

The root Dockerfile builds only the core validator, MCP adapter and locked production dependencies. It runs as the unprivileged node user and speaks stdio with no HTTP port or Evaluate service:

sh
docker build --tag deltax-preflight-mcp .docker run --rm -i --network=none deltax-preflight-mcp

Configure a Docker-capable MCP host with command docker and args ["run", "--rm", "-i", "--network=none", "deltax-preflight-mcp"]. The initial image build downloads the base image and dependencies; the runtime check needs no network. CI builds the image and compares an actual container response against the core report with networking disabled. Glama maintainer metadata identifies the repository's verified GitHub maintainer; it does not claim a directory quality score or listing acceptance.

Optional Glama-managed deployment

The repository image above is for local stdio use. A Glama container release is a separate build that wraps this stdio server with Glama's proxy so users can deploy it through Glama. It is not the repository Dockerfile, the MCPB bundle, or a DeltaX-hosted Evaluate service. Glama's build and hosting environment can process the decision, policy, evidence, and result sent through that deployment. Read Glama's privacy policy and use a local installation when those documents must stay in your own environment. Do not place secrets or private evidence in a public demo or inspection call.

Hosting does not change Preflight's trust boundary: callers supply the policy and evidence, and the server does not authenticate their source, select an option, or execute an action. A workflow that needs enforcement must keep its trusted policy and evidence source outside the caller's control. A SELECTION_REQUIRED handoff includes the full input documents; minimize them before sending a request to any hosted instance.

Glama releases are made manually from a successful build test at a pinned source commit. Automatic Glama releases are disabled so a GitHub release cannot silently change the managed container. A new Glama release needs a fresh build and functional check. The public Glama profile describes its current listing and release state; the profile alone does not mean a deployable version exists.

來源:mcp/README.md,提交 99e8393

工具

0
SourceWeft 曾在隔離沙箱中以無憑證方式啟動該軟體包一次,以列出其工具,但未能完成:該軟體包類型無法在沙箱中執行。

版本歷史

1
  1. v0.1.0最新Oct 22, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分

其他 Preflight 整合