mcp-proofjson
The mcp-proofjson server allows AI agents to assess invoice payment risk, verify structured JSON proofs, and list available verification capabilities.
assess_invoice_before_payment: Evaluate an invoice (supplier name, invoice number, amount, currency, IBAN, etc.) against supplied data and policy rules, returning a structured decision (allow,review, orblock) with reasons, confidence level, scope, checks performed/not performed, and whether human confirmation is required.verify_proofjson_proof: Validate a ProofJSON proof object for structural integrity, hash consistency, and signature validity. This does not verify real-world truth of underlying claims, supplier identity, IBAN ownership, or sanctions status.list_proofjson_packs: Retrieve the currently available ProofJSON Pack Tasks (verification capabilities) supported by the server.
Important limitation: The server operates on supplied data only — it does not independently verify IBAN ownership, sanctions status, or payment history unless external trust adapters are configured. An allow result is not a guarantee the invoice is safe.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@mcp-proofjsonAssess invoice: Supplier A, $1500, invoice IBAN PT50...123, expected PT50...456"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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.allowis 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— returnsallow/review/blockwith 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 buildUse 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 tohttps://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 toolsassess_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.
| Name | Required | Description | Default |
|---|---|---|---|
| invoice | Yes | supplier_name, invoice_number, amount, currency, payment_iban, payment_account, purchase_order_number | |
| expected | No | Optional caller expectations: supplier, amount, currency, iban | |
| policy | No | Optional: review_above_amount, block_unknown_supplier, require_purchase_order | |
| history | No | Optional: previous_invoice_ids |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| proof | Yes | ||
| expected_subject | No | ||
| expected_hash | No | ||
| options | No |
TDQS
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.
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.
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.
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.
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.
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 tool update
v0.1.1- Changed
verify_proofjson_proof3 fields changed- added
Input schema / properties / expected_hashAdded value: +{ + "type": "string" +} - added
Input schema / properties / expected_subjectAdded value: +{ + "type": "string" +} - added
Input schema / properties / optionsAdded value: +{ + "type": "object" +}
3 tool updates
v0.1.0- First observed
assess_invoice_before_payment - First observed
list_proofjson_packs - First observed
verify_proofjson_proof
TDQS
Each tool has a clearly distinct purpose: assessing invoice risk, listing verification packs, and verifying proofs. No overlap or ambiguity.
All tool names follow a consistent verb_noun pattern with snake_case (assess_invoice, list_proofjson_packs, verify_proofjson_proof).
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.
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
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
A paid remote MCP for ZeroID, built to return verdicts, receipts, usage logs, and audit-ready JSON.
A paid remote MCP for CLI tool MCP, built to return verdicts, receipts, usage logs, and audit-ready
A paid remote MCP for hosted MCP server, built to return verdicts, receipts, usage logs, and audit-r
A paid remote MCP for HyperFrames, built to return verdicts, receipts, usage logs, and audit-ready J
Related MCP Servers
- AlicenseAqualityDmaintenanceAn 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.9161MIT
- AlicenseAqualityDmaintenanceMCP 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.61MIT

docnova-mcpofficial
AlicenseAqualityDmaintenanceMCP server for e-invoice platforms. Enables natural language querying of invoices, partners, company data, and financial reports.18176MIT- FlicenseAqualityAmaintenanceA 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.41-
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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