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 集成