Skip to main content
Glama
proofjson

mcp-proofjson

by proofjson
README.md
# mcp-proofjson

A **local** [MCP](https://modelcontextprotocol.io) server (stdio) that lets AI agents produce and verify **structured JSON outputs** — with explicit scope, checks performed, checks not performed and human-confirmation requirements, instead of opaque yes/no answers.

The first live pack focuses on **invoice assessment before payment**: given supplied invoice data, context and policy, it returns `allow` / `review` / `block` with reasons and confidence. Works in Claude Desktop, Cursor and other MCP clients.

> **Scope (v1):** `supplied_data_only`. It assesses the supplied data and configured policy. It does **not** independently verify supplier IBAN ownership, sanctions status, bank account ownership or external payment history unless external trust adapters are configured. `allow` is not a guarantee the invoice is safe.
>
> Local stdio only — there is **no public remote MCP** until auth, rate limits, audit logs, terms and privacy are finalised.

## Tools (exactly three)
- `assess_invoice_before_payment` — returns `allow` / `review` / `block` with reasons, confidence, scope, checks_performed, checks_not_performed, human_confirmation_required.
- `verify_proofjson_proof` — verify a proof for structure, hash consistency and signature validity. Does NOT verify the real-world truth of the underlying claim, invoice, supplier identity, IBAN ownership or sanctions status.
- `list_proofjson_packs` — lists the live Pack Tasks.

This server does **not** expose arbitrary fetch, a browser, a shell, the filesystem, a generic HTTP proxy, a generic run endpoint, or any internal scoring.

## Install & build
```bash
npm install
npm run build
```

## Use in Claude Desktop
Add to `claude_desktop_config.json`:
```json
{
  "mcpServers": {
    "proofjson": {
      "command": "node",
      "args": ["/ABSOLUTE/PATH/mcp-proofjson/dist/index.js"]
    }
  }
}
```

## Use in Cursor
Add to `.cursor/mcp.json` (or Cursor Settings → MCP):
```json
{ "mcpServers": { "proofjson": { "command": "node", "args": ["/ABSOLUTE/PATH/mcp-proofjson/dist/index.js"] } } }
```

## Config
- `PROOFJSON_BASE` (env) — defaults to `https://proofjson.org`.

## Example
Ask your agent: *"Assess this invoice before payment. Supplier ACME, amount 4250 EUR, invoice IBAN PT50…789, expected IBAN PT50…154."* → the agent calls `assess_invoice_before_payment` → ProofJSON returns `review` because the IBAN differs from the expected IBAN supplied. The agent explains the result and recommends human confirmation.

TDQS

A4.2/5.0

Scored across 3 tools

Disambiguation5/5

Each tool has a clearly distinct purpose: assessing invoice risk, listing verification packs, and verifying proofs. No overlap or ambiguity.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern with snake_case (assess_invoice, list_proofjson_packs, verify_proofjson_proof).

Tool Count4/5

Three tools is slightly low but appropriate for the narrow scope of invoice risk assessment with ProofJSON v1. The set feels minimal but not insufficient.

Completeness3/5

The tools cover assessment, listing capabilities, and verification, but lack configuration, invoice management, or external verification tools. Gaps exist for a full workflow, but acceptable for a v1 limitation.

Maintenance

ActivityInactive
ResponsivenessNo issues