Skip to main content
Glama
proofjson

mcp-proofjson

by proofjson

mcp-proofjson

A local MCP 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.

Related MCP server: einvoice-mcp

Install & build

npm install
npm run build

Use in Claude Desktop

Add to claude_desktop_config.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):

{ "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.

Available Tools

3 tools
assess_invoice_before_paymentA

Assess invoice payment risk before paying, approving, scheduling or escalating an invoice. Returns a decision (allow | review | block) with reasons, confidence, scope, checks_performed, checks_not_performed and human_confirmation_required. ProofJSON v1 is supplied_data_only: it assesses the supplied invoice data, supplied context 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.

ParametersJSON Schema
NameRequiredDescriptionDefault
invoiceYessupplier_name, invoice_number, amount, currency, payment_iban, payment_account, purchase_order_number
expectedNoOptional caller expectations: supplier, amount, currency, iban
policyNoOptional: review_above_amount, block_unknown_supplier, require_purchase_order
historyNoOptional: previous_invoice_ids

TDQS

A4.3/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description fully discloses limitations: no independent verification unless external adapters configured, and that 'allow' is not a guarantee. This is comprehensive behavioral transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is a single paragraph of four sentences, front-loaded with purpose and return value. It is efficient but could be slightly more concise; no wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex tool with nested objects and no output schema, the description covers purpose, return structure, limitations, and behavioral traits adequately. Minor omissions (e.g., detailed output fields) but sufficient for safe use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so baseline 3. The description adds context about 'ProofJSON v1' and 'supplied_data_only' but does not significantly enhance parameter understanding beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool assesses invoice payment risk before actions like paying or approving, and distinguishes from siblings (list_proofjson_packs, verify_proofjson_proof) which deal with different ProofJSON operations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly specifies when to use (before paying/approving/scheduling/escalating) and what it does not do (e.g., independent verification of IBAN ownership, sanctions). Lacks explicit when-not-to-use but provides good context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_proofjson_packsA

List the live ProofJSON Pack Tasks (verification capabilities). ProofJSON v1 is supplied_data_only: it assesses the supplied invoice data, supplied context 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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It discloses that ProofJSON v1 is supplied_data_only and does not independently verify certain aspects unless configured. This adds valuable behavioral context beyond just 'list packs'.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise with two sentences: the first states purpose, the second adds critical context. Every sentence earns its place with no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no parameters, no output schema, and no annotations, the description sufficiently explains the tool's purpose and the context of the packs. It could potentially mention output format but is complete enough for use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0 parameters, the description adds value by explaining the nature of the listed items (packs and their limitations). This is beyond what the empty schema provides, achieving the baseline 4 for parameterless tools.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists live ProofJSON Pack Tasks (verification capabilities). It distinguishes from siblings like assess_invoice_before_payment and verify_proofjson_proof by focusing on listing available packs rather than performing assessments or verifications.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides context on when to use the tool by explaining what ProofJSON v1 does and does not do, implying its use is for understanding available verification packs. However, it lacks explicit direct comparison to siblings or explicit 'use this when' guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

verify_proofjson_proofA

Verify a ProofJSON proof for structure, hash consistency and signature validity. This tool does NOT verify the real-world truth of the underlying claim, invoice, payment, supplier identity, IBAN ownership or sanctions status. ProofJSON v1 is supplied_data_only: it assesses the supplied invoice data, supplied context 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.

ParametersJSON Schema
NameRequiredDescriptionDefault
proofYes
expected_subjectNo
expected_hashNo
optionsNo

TDQS

A4.1/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Even without annotations, the description fully discloses the tool's behavioral traits: it does not verify real-world truth, is supplied_data_only, and does not independently verify external facts unless trust adapters are configured. This goes beyond what annotations typically provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is fairly long but each sentence adds an important caveat or clarification. It is front-loaded with the main action and structured logically, with only minor redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

While the description covers purpose and limitations well, it omits details about the return value/output format and does not explain parameters. Given no output schema and no annotations, this is a moderate gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description does not explain the meaning or usage of the individual parameters (proof, expected_subject, expected_hash, options). With 0% schema description coverage, the description should compensate, but it only mentions 'supplied invoice data, supplied context and configured policy' in a general sense.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Verify a ProofJSON proof for structure, hash consistency and signature validity.' It uses a specific verb ('Verify') and resource ('ProofJSON proof'), and distinguishes from siblings by focusing on proof verification versus invoice assessment or listing packs.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context on when to use the tool and its limitations, but does not explicitly compare to sibling tools. It clarifies what the tool does NOT verify (e.g., real-world truth, supplier identity) and states that 'allow is not a guarantee.'

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 1 tool updatev0.1.1
    • Changedverify_proofjson_proof3 fields changed
      • addedInput schema / properties / expected_hash
        Added value: +{
        +  "type": "string"
        +}
      • addedInput schema / properties / expected_subject
        Added value: +{
        +  "type": "string"
        +}
      • addedInput schema / properties / options
        Added value: +{
        +  "type": "object"
        +}
  2. 3 tool updatesv0.1.0
    • First observedassess_invoice_before_payment
    • First observedlist_proofjson_packs
    • First observedverify_proofjson_proof

TDQS

A4.2/5.0
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

ActivityStale
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    An MCP server for electronic invoicing that enables generating, validating, and parsing Factur-X and ZUGFeRD compliant XML invoices. It supports the French 2026 B2B reform and provides integration with Chorus Pro for automated invoice submission and status tracking.
    9
    16
    1
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    MCP server for German e-invoice compliance (XRechnung 3.0 & ZUGFeRD 2.x) enabling AI agents to validate, generate, parse, and check compliance of electronic invoices per EN 16931.
    6
    1
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    MCP server for e-invoice platforms. Enables natural language querying of invoices, partners, company data, and financial reports.
    18
    17
    6
    MIT
  • F
    license
    A
    quality
    A
    maintenance
    A fully local, closed-world MCP server that manages, validates, and serves bank-specific ISO 20022 clearing profiles and rule packs, enabling AI agents to discover profiles, fetch them, lint payloads against them, and validate rule-pack definitions.
    4
    1
    -

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/proofjson/mcp-proofjson'

If you have feedback or need assistance with the MCP directory API, please join our Discord server