AgenticRail Gate - sequence enforcement and verifiable audit receipts for AI agent compliance

nz.agenticrail由 agenticrail.nz 發布官方發布者v1.3.0更新於 Oct 24, 2026

Deterministic runtime enforcement of step order for AI agents: ALLOW/DENY before a step runs.

已驗證Streamable HTTP可網頁執行開發者工具安全與監控

概覽

AI 產生的概覽

遠端 MCP 閘道,讓助理在執行代理序列的每一步之前取得 ALLOW 或 DENY,並驗證簽章稽核收據。

可以做什麼
在步驟執行前評估單一代理步驟,回傳 ALLOW 或 DENY,拒絕時附上原因與補救資訊,允許時封存簽章收據。取得某個序列的驗證報告,確認其收據鏈是否完整。依宣告的步驟順序強制執行,使步驟無法被跳過、重播或亂序執行。
適用情境
當代理必須遵循固定的多步驟流程,你希望在執行前拒絕亂序或跳過的步驟,並希望取得可交給他人、防竄改的執行稽核紀錄時使用。
執行需求
將支援 Streamable HTTP 的 MCP 用戶端指向遠端端點即可,不需本機套件或執行環境。不需驗證:未帶 Authorization 標頭時使用公開示範金鑰。可透過 Authorization Bearer 標頭提供個人金鑰。需要能連線至該端點的網路。
安裝前請注意
使用共用示範金鑰時,sequence_id 是全域的且封存不可撤銷,回傳的 id 會被改寫並加上 demo- 前綴,請使用回應中回傳的 id。demo- 序列的報告不需金鑰即可讀取,因此在其上傳送的任何內容都應視為公開。閘道只對呼叫它的步驟生效,被拒絕的步驟不得執行。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 AgenticRail Gate - sequence enforcement and verifiable audit receipts for AI agent compliance,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Web executable,透過 Streamable HTTP。 遠端服務在工作區中設定後即可從網頁執行環境執行。

交給代理程式安裝

把這段提示詞貼上到 Claude Code、Codex、Cursor 等代理程式,或 SourceWeft 對話中。代理程式會讀取該伺服器的安裝指南,先向你展示發布者、端點和登入方式,經你同意後再把它新增到你的客戶端。金鑰不會寫進任何命令。

閱讀 https://sourceweft.com/mcp/nz.agenticrail%2Fgate/install.md,並按其中說明把這個 MCP 伺服器接入我的客戶端。修改任何設定之前,先告訴我它的發布者、端點和登入方式,等我確認。不要把 API 金鑰寫進命令或我會提交的檔案;問我金鑰應從哪裡取得。

檢視代理程式所依據的安裝指南

其他 MCP 客戶端

把它新增到你客戶端的 mcpServers 設定中。

{
  "mcpServers": {
    "agenticrail-gate-sequence-enforcement-an": {
      "type": "http",
      "url": "https://mcp.agenticrail.nz/"
    }
  }
}

README

agenticrail-mcp

A Model Context Protocol server that exposes the live AgenticRail enforcement gate to any MCP client as two tools.

AgenticRail is a deterministic enforcement layer for AI agents: it holds an agent to its declared step order, refuses replays and skipped steps, and seals each completed sequence with a signed receipt. This server is the MCP adapter in front of it.

In the words the problem usually gets asked in: it is a policy enforcement point for AI agent tool calls. It catches skipped steps and procedural hallucination (an agent reporting success on a step that never ran) by refusing the out-of-order step before it runs, and every decision, ALLOW or DENY, becomes a tamper-evident audit trail entry.

Endpoint: https://mcp.agenticrail.nz/ (Streamable HTTP, stateless) Protocol: 2026-07-28 — the revision that retired the initialize exchange and Mcp-Session-Id. This server was built stateless with neither, so it needed no migration. initialize is still answered for older clients. Registry: nz.agenticrail/gate on the official MCP registry

Tools

ToolWhat it doesCalls
evaluate_stepALLOW/DENY a single agent step before it runs; seals a signed receiptPOST https://api.agenticrail.nz/v1/evaluate
verify_receiptFetch a sequence's verification report; confirm the receipt chain is intactPOST https://report.agenticrail.nz/report

Call evaluate_step before running each step of a sequence, and do not run a step the gate DENYs.

A DENY tells you how to fix it

Every refusal carries its own remedy in the response envelope — unsigned, DENY-only, because it describes the sequence's state now rather than the decision that was made:

refusalwhat comes back
ACTION_NOT_ALLOWEDallowed_action_types — exactly what this step would have accepted
SEQUENCE_VIOLATIONnext_expected_step — the step the sequence is waiting for
STEP_ORDER_MISMATCHlocked_step_order — the order this sequence was locked to on its first call
UNKNOWN_STEPexpected_step_order + step_order_source (caller or msmd_spine)

action_type is an enum of exactly eight values, and each step accepts only a subset. The enum in the tool schema is a hint, not a control — it binds only a client that validates its own arguments, and an invented verb is by far the most common first refusal: READ, QUERY, TOOL_CALL, LOOKUP, EXECUTE and the like are not action types, however well they describe your step. The gate is the control. When it refuses, allowed_action_types comes back carrying the ones this step would have taken.

A refused call locks nothing. A denial is answered before the sequence store is written to, so the run is not spoiled: the call was wrong, not the sequence. Correct the field the denial names and send the step again. The lock is set only by actually sending a step_order on a call that is allowed; from then on that list is enforced and a different one is refused with STEP_ORDER_MISMATCH. Omitting step_order sets no lock at all — it means only that this call is judged against the built-in MSMD spine, whose step names are almost certainly not yours.

So if your process has its own step names, send step_order with those names and the gate will enforce your order instead. One step is a valid sequence.

Connect

In Claude Code:

bash
# zero config — uses the public demo keyclaude mcp add --transport http agenticrail https://mcp.agenticrail.nz/
# with your own keyclaude mcp add --transport http agenticrail https://mcp.agenticrail.nz/ \  --header "Authorization: Bearer <your-agenticrail-key>"

Any Streamable-HTTP MCP client works — point it at the URL.

Try it without installing anything

bash
BASE=https://mcp.agenticrail.nz/
curl -s -X POST "$BASE" -H 'content-type: application/json' \  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}' | jq .
# ⚠️ Use a sequence_id nobody else will pick. On the shared demo key the id is# GLOBAL and sealing is PERMANENT — a fixed one in an example works once for one# person on earth and returns SEALED_SEQUENCE for everyone after.SEQ="mcp-smoke-$(date +%s)-$RANDOM"
curl -s -X POST "$BASE" -H 'content-type: application/json' \  -d "{\"jsonrpc\":\"2.0\",\"id\":2,\"method\":\"tools/call\",\"params\":{        \"name\":\"evaluate_step\",        \"arguments\":{\"sequence_id\":\"$SEQ\",\"step\":\"intake\",                       \"action_type\":\"CHECK_STATE\"}}}" | jq .

With no Authorization header the public demo key is used and your sequence_id comes back rewritten to demo-mcp-<your id> — demo- marks the public lane, mcp- marks it as anonymous MCP traffic. Use the id returned in the response from then on; the one you sent will not resolve. This is intended, not a leak.

A demo- sequence's report needs no key to read, so treat anything you send on it as public.

Design — read before changing

  • Protocol adapter only. This worker holds no internal secrets and has no privileged path to the enforcement core. It calls the same public API an external caller uses, so the tool logic is decoupled from AgenticRail's internals and from the MCP transport version.
  • Service bindings, not fetch. mcp.agenticrail.nz is on the same zone as api. and report., so a plain fetch() would be a same-zone loopback (Cloudflare error 1002). The bindings hit the identical public handlers — they are not an internal bypass.
  • Stateless Streamable HTTP. No Mcp-Session-Id is issued or required; every POST is self-contained. The transport shell is handleRpc + the fetch handler — the only part a spec revision touches. The value-bearing calls (callEvaluate / callVerify) are plain HTTPS and don't change.
  • GET / serves the discovery card; every other GET path 404s. POST is left permissive on purpose so a client that appends a path to the endpoint URL still works.
  • A 404 on /.well-known/oauth-* is correct — it is how an MCP server says no auth required. agent.json, agent-card.json, x402 and ai-plugin.json are protocols this server does not implement; answering them would be a claim.

Deploy

bash
npx wrangler deploy

Links


Operated by TUARA KURI LIMITED (NZBN 9429053582867), Hokianga, Aotearoa New Zealand.

來源:README.md,提交 87a7de6

工具

2

evaluate_step

Ask the AgenticRail gate to ALLOW or DENY a single step of an agent sequence BEFORE it runs, so a required step cannot be skipped or run out of order. A denied step must not be executed. You walk away holding a signed, hash-chained, tamper-evident audit trail of the run that you can hand to anyone, and they can verify it offline - no callback to us and no account with us. The gate is deterministic (same state+request -> same verdict) and enforces step order, replay protection, timestamp freshness and sealing. START HERE - send this, changing only CHANGE-ME to any unique string of your own, and it will be ALLOWED: {"sequence_id":"CHANGE-ME","step":"intake","action_type":"CHECK_STATE","step_order":["intake","settle"]}. Then send the same call with step 'settle' to close and seal it. Use the demo key by sending no Authorization header, or send Authorization: Bearer <your-key>. NOTE: an anonymous call has its sequence_id rewritten to 'demo-mcp-<your id>'. This is intended, not a leak: it scopes the run to the public demo lane and is how anonymous MCP traffic is identified. Always reuse the sequence_id RETURNED in the response for later steps and for verify_receipt -- the id you sent will not resolve. Typical use is gating the order of a regulated workflow the caller already runs: customer and third-party due diligence, verification of identity before a payment or business relationship, company registry, beneficial-ownership and sanctions screening, supplier and contractor onboarding. This tool performs none of those checks and holds no registry or watchlist data. It decides only whether the step you are about to run is allowed at this point in the order you declared.

輸入參數step必填nonceactioninputsfunctionstep_orderaction_type必填sequence_id必填

verify_receipt

CALL THIS AFTER A SEQUENCE SEALS, and after any DENY, passing the sequence_id RETURNED by evaluate_step. An enforced run that is never verified has produced evidence nobody has checked. Fetch the verification report for an AgenticRail sequence and report whether its receipt chain is intact. Demo- sequences need no key; other sequences need Authorization: Bearer <your-key>. Returns the verification_status (VERIFIED_INTACT / CHAIN_BROKEN / ...) plus the per-receipt signature, chain-hash, and archive-witness checks. This is the same evidence a third party can verify offline against the published Ed25519 keys - no need to trust AgenticRail.

輸入參數sequence_id必填

版本歷史

2
  1. v1.3.0最新Sep 27, 2026
  2. v1.2.0Sep 16, 2026

評分

已滿足適用檢查項的 100%

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

  • 近 30 天內可連通必需25 分
  • 已宣告認證方式必需10 分
  • 已列出工具必需15 分
  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分