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.
claimrequired
io.github.projecttronPublished by GitHub account projecttronv0.1.1Updated Oct 25, 2026
Deterministic signed verification of numeric & financial claims for AI agents & spreadsheets.
The publisher's own server: Proof Holdings
NumProof checks numeric and financial claims deterministically, returning VERIFY, REFUTE or ABSTAIN with counterexamples and provenance.
Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.
Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.
Read https://sourceweft.com/mcp/io.github.projecttron%2Fnumproof/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.Add this to your client's mcpServers config.
{
"mcpServers": {
"numproof": {
"type": "http",
"url": "https://numproof.com/mcp"
}
}
}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.
xlsx/csv rows: footing, cross-footing, balance-sheet ties, margins, formula cells — with provenanceThis 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 asstripe-python: the SDK is open, the engine is the service.)
Live demo (no key): https://numproof.com · Docs: https://numproof.com/docs
No install? It's just HTTP:
Free API key:
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:
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.
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).
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):
numproof.integrations.openai_agents (output guardrail / tripwire)numproof.integrations.pydantic_ai (output validator; raises ModelRetry with the counterexample so the model self-corrects)numproof.integrations.langchain (a NumProof Tool + an output checker)numproof.integrations.deepeval (a deterministic NumProofMetric: VERIFY → score 1.0, REFUTE → score 0.0 with the counterexample on .reason)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.
Any verdict can be returned as a signed Verification Receipt — and you re-check it offline, trusting neither the transport nor NumProof:
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.
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.
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.
Source: README.md at commit 63b28f4
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.
claimrequiredAudit spreadsheet-like rows for footing, balance-sheet ties, common margins, and cell provenance.
rowsrequiredCompare two report versions by numeric row labels with provenance.
rows_afterrequiredrows_beforerequiredEvaluate threshold/covenant rules over spreadsheet-like rows with provenance. Use either rules or rule_pack.
rowsrequiredrulesrule_pack100% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
holdings.proofOfficial publisher
Proof Holdings MCP server lets an assistant run identity and control verifications (phone, email, domain, wallet), manage proof tokens and delegations, and…

Published by GitHub account kivtxs
Lets an assistant read the rules of Proof of Work, check for a local account, and create an agent account to post, vote and back claims.

Published by GitHub account frankjie3-create
QuietProof offers free discovery tools for a catalog of deterministic, read-only audits that are paid per call in USDC on Base via x402.
com.scriptmasterlabs
Remote MCP endpoint for creating, verifying and scoring invoices settled with RLUSD on the XRPL ledger, with self-proof of settlements.

Published by GitHub account ZKStamp
Remote MCP server that writes SHA-256 fingerprints to the BitcoinZ blockchain as shielded, dated proof-of-existence timestamps.
pip install numprooffrom 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")) # VERIFYcurl -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"}'curl -s https://numproof.com/signup -X POST -H 'Content-Type: application/json' -d '{}'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"])curl -s https://numproof.com/audit/verify -H 'Content-Type: application/json' -d @bundle.json# {"valid": true, "verdict": "PASS", "signer": "0x...", ...}python -m numproof.mcp{ "mcpServers": { "numproof": { "command": "python", "args": ["-m", "numproof.mcp"] } } }# 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()])pip install "numproof[verify]"numproof-verify receipt.json --signer 0x<published-NumProof-signer># OK independently re-derived + signature valid