Privi Verify

io.github.canoydario847-cloudPublished by GitHub account canoydario847-cloudv0.4.0Updated Oct 29, 2026

Manufacturing lot verification and chain of custody for AI agents, paid per call in USDC (x402).

VerifiedStreamable HTTPWeb executableFinanceSecurity & MonitoringBusiness & Commerce

Overview

AI-generated overview

Privi Verify lets an assistant check a manufactured lot's origin, custody history and record integrity, with paid calls settled in USDC via x402.

What you can do
  • List Privi tools, their prices and how payment works
  • Look up whether a record fingerprint from a label, certificate or document exists
  • Verify a lot: product, first and latest custody events, recall status and record integrity
  • Retrieve a lot's full ordered event history with fingerprints and a chain integrity check
  • Append custody events (received, produced, inspected, shipped, transferred, recalled) as a manufacturer
  • Check PRIVI token price, swap desk liquidity, pools and optional swap quotes
When to use it
Useful when an assistant needs to confirm where a manufactured lot came from, trace its chain of custody, or detect whether its records were altered after the fact, for example in supply-chain, audit or recall checks.
Requirements
Remote MCP endpoint over streamable HTTP; no account or key needed for the free tools. Paid tools require an x402-capable wallet with USDC on Base (testnet base-sepolia by default) and a signed payment in the request metadata. Recording events needs an Authorization Bearer write key issued by the operator.
Before you install
Paid tools cost USDC per call (verify lot and chain of custody) and settlement is final; a failed settlement returns no result. Payments go to the operator's payout wallet, so confirm the network and price first. Recording events writes to a lot's history and requires a write key; over stdio, local writes must be explicitly enabled. The live endpoint is described as testnet.

Installation

In SourceWeft

  1. Open Privi Verify in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

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.canoydario847-cloud%2Fprivi-verify/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.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "privi-verify": {
      "type": "http",
      "url": "https://privi-verify.onrender.com/mcp"
    }
  }
}

README

Privi Verify MCP

An MCP server that lets AI agents check where a manufactured lot came from and whether its records were changed after the fact, paid per call in USDC on Base using x402.

Works with any MCP client: Claude, ChatGPT, Cursor, VS Code, and custom agents.

Live (testnet): https://privi-verify.onrender.com/mcp · demo lots DEMO-STEEL-0001, DEMO-FOOD-0001

Built by Privi World Co (Port Huron, Michigan) as the agent-facing side of Privi ChainFlow.

Tools

ToolPriceWhat it does
privi_pricingfreeLists tools, prices, network, and the payout wallet
privi_lookup_fingerprintfreeChecks whether a record fingerprint (from a label, certificate or document) exists
privi_verify_lot$0.01Lot summary: product, first and latest custody events, recall status, record integrity
privi_chain_of_custody$0.05Full ordered event history with fingerprints and an integrity check
privi_record_eventAPI keyManufacturers append events: received, produced, inspected, shipped, transferred, recalled

Prices are set with environment variables.

How records stay honest

Each event's fingerprint is a SHA-256 of its contents plus the previous event's fingerprint in the same lot. Editing or deleting any past event breaks every fingerprint after it, and both verify tools report exactly where the chain broke.

Each lot's latest fingerprint is anchored on the Privi blockchain every few minutes (see On-chain checkpoints), so anyone can check it without trusting Privi.

On-chain checkpoints

Every 5 minutes the server anchors the latest fingerprint of each lot that changed on the Privi blockchain through Privi Anchor. Audit results include onchain_checkpoint: the anchored position, transaction, and Merkle proof, plus an anchor_verify call anyone can run. If stored history no longer matches what was anchored, the audit fails even when every local hash was recomputed consistently. Set PRIVI_ANCHOR_KEY (an Anchor API key) to turn it on; PRIVI_ANCHOR_INTERVAL changes the period (seconds, default 300).

How payment works (x402 over MCP)

Follows the x402 v2 MCP transport spec:

  1. The agent calls a paid tool. The server answers isError: true with a PaymentRequired object listing price, network, USDC contract and the payTo wallet.
  2. The agent's wallet signs a USDC authorization and retries with it in _meta["x402/payment"].
  3. The server checks the payment matches the price, has the facilitator verify it, runs the tool, has the facilitator settle it, and returns the result with the receipt in _meta["x402/payment-response"].

If settlement fails, the agent gets no result. Payments go straight to the PRIVI_PAY_TO wallet; the server never holds funds or private keys.

Run it

bash
pip install .cp .env.example .env        # set PRIVI_PAY_TO and PRIVI_WRITE_KEYSpython scripts/seed_demo.py # optional demo lots (or set PRIVI_SEED_DEMO=1)privi-verify-mcp            # HTTP on :8000, MCP endpoint at /mcp

Over stdio (e.g. Claude Desktop):

json
{  "mcpServers": {    "privi-verify": {      "command": "privi-verify-mcp",      "args": ["--stdio"],      "env": { "PRIVI_PAY_TO": "0xYourWallet", "PRIVI_NETWORK": "base-sepolia" }    }  }}

Remote clients connect to https://<your-host>/mcp. GET /health returns status.

Make a test payment

scripts/test_payment.py pays the live server exactly the way an AI agent would, using a throwaway Base Sepolia wallet (free testnet USDC, no real money):

bash
pip install eth-accountpython scripts/test_payment.py --new-wallet   # prints a test wallet address# get testnet USDC at https://faucet.circle.com (Base Sepolia), then:python scripts/test_payment.py                 # pays $0.01, verifies DEMO-STEEL-0001, prints the tx link

The key is saved to .agent-wallet (git-ignored). The script refuses to pay on mainnet unless you pass --allow-mainnet.

Deploy

The Dockerfile runs on Railway, Render, Fly or any container host:

  • Set PRIVI_PAY_TO, PRIVI_WRITE_KEYS and PRIVI_NETWORK.
  • Mount a volume at /data so the SQLite database survives redeploys.
  • Start on base-sepolia with testnet USDC. Switch to base only after a full test payment works, and set PRIVI_FACILITATOR_URL to a production facilitator, since the public one is testnet only.

Recording events

bash
curl https://<your-host>/mcp \  -H 'Content-Type: application/json' \  -H 'Accept: application/json, text/event-stream' \  -H 'Authorization: Bearer <your-write-key>' \  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"privi_record_event",       "arguments":{"lot_code":"LOT-0001","event_type":"produced","location":"Port Huron, MI",                    "actor":"Your Plant","product":"Bracket A-12","quantity":"800 pcs"}}}'

Develop

bash
pip install -e ".[dev]"pytest

Tests cover the payment flow (missing, mismatched, invalid and failed-settlement payments), tamper detection, and write authorization, using a stand-in facilitator.

Roadmap

  • Per-manufacturer accounts and dashboards (Privi ChainFlow)
  • Postgres storage for multi-instance hosting
  • Listings in MCP directories

License

MIT © 2026 Dario Canoy, Privi World Co

Source: mcp-server/README.md at commit 9b023bb

Tools

6

privi_token_market

PRIVI token market

PRIVI on Base: price, how much PRIVI and USDC the Privi swap desk holds (so whether a swap can fill), any Uniswap v3 / Aerodrome pools, and optionally a swap quote. Every paid Privi tool also accepts PRIVI. Free.

Parameterssideamount

privi_pricing

Privi pricing

List Privi Verify tools, what each costs, and how payment works.

Takes no parameters.

privi_lookup_fingerprint

Look up a record fingerprint

Check whether a record fingerprint (from a label, certificate or document) exists in Privi. Free.

Parametersfingerprintrequired

privi_verify_lot

Verify a lot

Verify a lot: product, first and latest custody events, recall status, and whether its record history is intact. Paid per call via x402.

Parameterslot_coderequired

privi_chain_of_custody

Chain of custody

Full ordered event history for a lot with each event's fingerprint, plus an integrity check of the whole chain. Paid per call via x402.

Parameterslot_coderequired

privi_record_event

Record a lot event

Append an event to a lot's history (manufacturers only). Requires 'Authorization: Bearer <key>' with a key from PRIVI_WRITE_KEYS. Over stdio, writes are allowed only when PRIVI_ALLOW_LOCAL_WRITES=1.

Parametersactorrequirednotesproductlocationrequiredlot_coderequiredquantityevent_typerequired

Version history

2
  1. v0.4.0LatestOct 29, 2026
  2. v0.1.0Oct 20, 2026

Score

90% 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.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts

    Declare a license in the repository or the registry entry.