NumProof

io.github.projecttron由 GitHub 帳號 projecttron 發布v0.1.1更新於 Oct 25, 2026

Deterministic signed verification of numeric & financial claims for AI agents & spreadsheets.

發布方自己的服務:Proof Holdings

已驗證Streamable HTTP可網頁執行金融開發者工具資料與分析

概覽

AI 產生的概覽

NumProof 以確定性方式核驗數學與財務數字主張,回傳 VERIFY、REFUTE 或 ABSTAIN,並附上反例與來源資訊。

可以做什麼
精確核驗單一數學或財務主張,遭否定時提供反例,並可產生可離線複核的簽章憑證。稽核試算表形式的資料列,檢查縱向加總、資產負債表勾稽、利潤率與儲存格來源。依數字列標籤比較兩份報告版本。對資料列評估門檻或契約規則,例如 DSCR、Debt/EBITDA。將結果輸出為附簽章的證據包及 HTML、PDF 或 ZIP 報告。
適用情境
當助理產出的數字、加總、百分比或公式將呈現給使用者、報告或稽核人員時,可在採信前逐項把關。也適合檢查試算表內部一致性、比較報告版本,以及測試授信契約門檻。
執行需求
以託管 HTTP 服務形式運作,可透過遠端端點存取,也可用 uvx 或 python -m numproof.mcp 啟動本機 Python 套件。核驗引擎託管於服務端,不在本機。一般使用需要 NumProof API 金鑰(可免費註冊取得),網頁示範不需金鑰。需要網路連線。
安裝前請注意
引擎為付費託管服務:從按次計費的 x402 到月訂閱皆有,免費額度有限。主張內容與試算表資料列會傳送到 NumProof 伺服器。開源儲存庫只包含用戶端與 MCP 伺服器,不含核驗引擎與簽章邏輯。

安裝

在 SourceWeft 中

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

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

交給代理程式安裝

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

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

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

其他 MCP 客戶端

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

{
  "mcpServers": {
    "numproof": {
      "type": "http",
      "url": "https://numproof.com/mcp"
    }
  }
}

README

NumProof

[ci] [License: MIT]

The deterministic numeric truth layer for AI agents and spreadsheets.

Your agent writes "gross margin improved from 42.1% to 44.8%" or "the workbook is internally consistent" — NumProof tells you, deterministically, whether that number is VERIFY, REFUTE, or ABSTAIN, with a counterexample, cell/formula provenance, and a signed, machine-checkable audit bundle. It's exact arithmetic and symbolic math — not an LLM judging another LLM.

  • ✅ Verify a single math/finance claim, or batch thousands in CI
  • ✅ Audit xlsx/csv rows: footing, cross-footing, balance-sheet ties, margins, formula cells — with provenance
  • ✅ Diff two report versions; evaluate covenant rule packs (DSCR, Debt/EBITDA, current ratio, …)
  • ✅ Signed evidence bundle (JSON + HTML/PDF/ZIP) anyone can re-verify offline
  • ✅ API · CLI · MCP server · optional x402 pay-per-call

This repo is the open-source client (SDK + MCP). The verification engine runs as a hosted service — pip install numproof, point it at the API, done. (Same shape as stripe-python: the SDK is open, the engine is the service.)

Live demo (no key): https://numproof.com · Docs: https://numproof.com/docs


30-second start

bash
pip install numproof
python
from numproof import NumProof
np = NumProof.from_env()              # NUMPROOF_API_KEY (get a free key: see below)
print(np.verify("120 + 90 + 340 + 15 == 565"))# {'verdict': 'VERIFY', 'certificate': 'EXACT_ARITHMETIC', ...}
print(np.verify("a 50% loss needs a 100% gain to break even"))   # VERIFY: (1-0.5)*(1+1.0)==1print(np.verify("two 10% raises equal a 21% total increase"))    # VERIFYprint(np.verify("operating margin is 18% when EBIT is 180 and revenue is 1000"))  # VERIFY

No install? It's just HTTP:

bash
curl -s https://numproof.com/demo -H 'Content-Type: application/json' \  -d '{"claim":"gross margin is 60% when gross profit is 600 and revenue is 1000"}'

Free API key:

bash
curl -s https://numproof.com/signup -X POST -H 'Content-Type: application/json' -d '{}'

Audit a spreadsheet (with provenance)

python
rows = [["Revenue", 1000], ["COGS", 400], ["Gross Profit", 600], ["Gross Margin", "60%"]]print(np.audit_rows(rows)["verdict"])          # PASS  (600/1000 == 60%, footing, ties, ...)
# covenant rule packs: DSCR, Debt/EBITDA, current ratio, custom thresholdsprint(np.covenant_rows(    [["EBITDA", 500], ["Debt Service", 300], ["Debt", 1200]],    rule_pack="credit_covenants_basic",)["verdict"])

Every audit/diff/covenant result can be returned as a signed bundle + human-readable HTML/PDF report (format="zip"). Recipients verify it without trusting you or NumProof:

bash
curl -s https://numproof.com/audit/verify -H 'Content-Type: application/json' -d @bundle.json# {"valid": true, "verdict": "PASS", "signer": "0x...", ...}

Use it from an AI agent (MCP)

NumProof ships an MCP server so Claude / OpenAI-style agents can call it as a tool — gate every numeric claim before it reaches a user, report, or auditor.

bash
python -m numproof.mcp
json
{ "mcpServers": { "numproof": { "command": "python", "args": ["-m", "numproof.mcp"] } } }

Or point any MCP client at the hosted descriptor: https://numproof.com/mcp.json.

See examples/ for runnable scripts (verify, audit, covenants, agent-gate, MCP).


Drop-in guardrails for agent frameworks

Verify the numbers your agent emits before it acts, in the framework you already use (numproof/integrations/ — each lazily imports its framework, so the numproof client stays stdlib-only):

python
# OpenAI Agents SDK — output guardrail that trips on REFUTEfrom agents import Agentfrom numproof.integrations.openai_agents import numproof_output_guardrailagent = Agent(name="...", instructions="...", output_guardrails=[numproof_output_guardrail()])
  • OpenAI Agents SDK — numproof.integrations.openai_agents (output guardrail / tripwire)
  • Pydantic AI — numproof.integrations.pydantic_ai (output validator; raises ModelRetry with the counterexample so the model self-corrects)
  • LangChain — numproof.integrations.langchain (a NumProof Tool + an output checker)
  • DeepEval (Confident AI) — numproof.integrations.deepeval (a deterministic NumProofMetric: VERIFY → score 1.0, REFUTE → score 0.0 with the counterexample on .reason)
  • Guardrails AI — numproof.integrations.guardrails (a Hub Validator: REFUTE → FailResult with the counterexample, so your on_fail action — reask/fix/exception — fires)

VERIFY → pass · REFUTE → block/retry with the counterexample · ABSTAIN → pass-through (configurable). Runnable examples in examples/; install only the framework you use.

Independently re-checkable receipts (the part you can't fake)

Any verdict can be returned as a signed Verification Receipt — and you re-check it offline, trusting neither the transport nor NumProof:

bash
pip install "numproof[verify]"numproof-verify receipt.json --signer 0x<published-NumProof-signer># OK   independently re-derived + signature valid

It recovers the EIP-191 signer (tamper-evident) and, for value/agg/identity/sequence claims, independently re-derives the verdict with stdlib Fraction + sympy. A tampered field, a wrong signer, or a verdict that doesn't actually hold all fail loudly — even a receipt NumProof itself mis-signed is caught by the re-derivation. An agent can recompute a number for itself; it cannot issue an independent, signed attestation a second party will accept. That independence — not the arithmetic — is the product. Format + spec: RECEIPT_FORMAT.md.


Why deterministic (and why it matters)

Generic "AI guardrails" use a model to grade a model — probabilistic, and itself can hallucinate. NumProof recomputes the math exactly (rational arithmetic + symbolic identity checking) and returns a reproducible verdict with a trace. When it can't prove something it says ABSTAIN rather than guess. For finance, regulated, and agent workflows, "the number is provably right" beats "another model thinks it looks right." Full table: comparison.md.


Pricing

PlanPriceFor
Sandbox$0web demo + free credits
x402 PAYG$0.005 / callagent-to-tool, no subscription
Builder$29/moAPI + MCP + CLI, 2k credits
Pro$99/mobatch, webhooks, CI, signed exports, 10k credits
Finance Team$299/mo5 seats, version diff, covenant packs, branded exports

What's in this repo

The numproof Python SDK (NumProof client), the MCP server, and runnable examples — all thin HTTP clients to the hosted API. MIT licensed. The verification engine, finance audit logic, formal (Lean) proof tier, and signing are the hosted service and are not in this repo.

Found a wrong verdict? Open an issue with the exact claim — correctness is the whole product.

來源:README.md,提交 63b28f4

工具

4

verify_claim

Exactly verify a math/finance claim (VERIFY/REFUTE/ABSTAIN) with a counterexample when false. Use before trusting any AI-produced number, sum, percentage, or formula.

輸入參數claim必填

audit_rows

Audit spreadsheet-like rows for footing, balance-sheet ties, common margins, and cell provenance.

輸入參數rows必填

diff_rows

Compare two report versions by numeric row labels with provenance.

輸入參數rows_after必填rows_before必填

covenant_rules

Evaluate threshold/covenant rules over spreadsheet-like rows with provenance. Use either rules or rule_pack.

輸入參數rows必填rulesrule_pack

版本歷史

1
  1. v0.1.1最新Sep 16, 2026

評分

已滿足適用檢查項的 100%

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

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

其他 Proof 整合