Home · Guides

Popular servers: Spreadsheet · Server for Invoices — Generate Invoices from Claude · Expense Tracker — Log Expenses from Claude · Recurring Invoices · Word Document Server — Create .docx from Claude · Server for Bill of Sale — Draft and Sign from Claude · Zip · Job Card

Check a supplier invoice against a purchase order and delivery note in Claude

A supplier bills ten units of A and ten of B. The order says ten of each, but the delivery note records five A and fifteen B. The aggregate is twenty units everywhere. Comparing only totals misses five billed units of A that were never accepted.

MCP Three-Way Invoice Match compares the lines by exact SKU and returns ordered, accepted, previously invoiced and currently billed quantities beside every exception. It takes structured data from your conversation; it does not extract PDFs, connect to an ERP, read sibling MCP stores or approve payment.

Try the matching example

Each SKU is ordered at 10 units, priced at 100 minor units ($1.00). Change the receipt and invoice below, then run the check. No install or account is needed.

The check runs in your browser using the same comparison engine as the MCP server. Field values stay on this page and are not sent to the server or saved. This example covers structured goods lines; it does not read PDFs, verify prior billing history or approve payment.

Loading the local example…

SKUOrderedAcceptedRejectedPrior billedThis invoice
Exact structured input used for this check

Install the free MCP server to check your own structured documents in your AI client. Full diagnostics stay free; $19 Pro removes the three-saved-report cap.

Install the local server

Download three-way-match.mcpb from the bundle catalog and open it in Claude Desktop. For a terminal client, build the self-contained mirror:

git clone https://github.com/theluckystrike/mcp-three-way-match.git
cd mcp-three-way-match
npm install && npm run build
claude mcp add --scope user three-way-match -- node /absolute/path/to/mcp-three-way-match/dist/index.js

Use your actual absolute path. Claude Desktop, Cursor and VS Code each have a config guide. This server is local stdio only. The npm package is not published; an npx package command will fail.

Pass the three documents and prior quantities explicitly

Have Claude show its transcription before checking. Preserve PO references, supplier names, currencies and SKUs exactly. Quantities are whole units; unit prices and totals are integer minor units, so 100 means one dollar for USD. Tax, shipping and other charges must not be silently folded into a goods total: this contract compares the supplied priced lines.

Compare PO PO-42 from Supply Co in USD: A10 at100 minor units,
B10 at100. Receipt GR-1 on2026-10-15 accepts A5 and B15,
rejects zero, and references PO-42 and Supply Co.
Invoice INV-4 references PO-42, Supply Co and USD: A10 at100,
B10 at100, total2000. prior_invoiced is explicitly [].
Run three_way_match with save false. Show each exception and its evidence.

The report must expose A's five billed but unreceived units and B's five units received above the order. A matching grand total is not enough. Similar names are not fuzzy matched, rejected units do not count as accepted, and a receipt from the wrong supplier or PO cannot satisfy this invoice.

A partial delivery can pass

For an order of A10 at100, a receipt accepting A5 and a first invoice for A5 at100, total500, can match. Provide prior_invoiced: [] explicitly. On the next bill, pass earlier billed quantities such as [{"sku":"A","quantity":5}]. The check compares current plus prior against both ordered and accepted quantities. It cannot infer previous bills or prevent duplicate payment.

Large reports keep their evidence in free pages

A response above the safe inline size returns paginated: true, counts and a report_id. Call report_page with that id and the requested section; use next_offset until it is null. Sections expose all issues, SKU evidence and original document rows. For receipt detail, use receipt_lines with a zero-based receipt_index, or line_receipts with the exact SKU. Page limits are up to 100 rows per call. The overview does not discard the remaining evidence. Large report_export_csv results are also paged: pass offset and optional limit up to 1,000 rows, then follow next_offset. Each CSV chunk repeats its header; keep one header when joining chunks.

Large unsaved previews are held in memory for 30 minutes, with only the last two retained in that server process. Eviction, expiry or restart requires submitting the original check again; checks and pages remain free. Saved reports use their saved id and do not depend on that preview cache. Saving stays optional.

Keep an audit copy when it helps

Run with save: true to store a report, use report_list or report_get to retrieve it, and report_export_csv for the evidence rows. Full previews up to 500 PO/invoice lines, including free pages of all large-report evidence; store 3 reports at a time. Listing, retrieval, deletion and CSV export stay free. Pro is $19 once and removes the saved-report cap. Both tiers retain the same input safety bounds; the $39 bundle also unlocks it.

Reports stay in the local data directory. Your MCP client or model may have its own data handling; local matching is not a promise about the chat provider. See the comparison with other invoice matching projects for installation and matching differences.

Questions

Can matching totals hide a supplier invoice error?

Yes. One SKU can be short while another is over-received. Compare each SKU's ordered, accepted and billed quantities, not only document totals.

Can it check a partial delivery?

Yes. Current plus explicitly supplied prior-invoiced quantities must stay within accepted receipts and the PO quantity, with the agreed unit price.

Does it read invoice PDFs or approve payments?

No. It accepts structured documents, reports evidence and exceptions, and leaves transcription and payment decisions to you.

What is free?

Full previews up to 500 lines, three simultaneously saved reports, report retrieval, deletion and CSV export. Pro removes the saved-report cap.

Related

All MCP servers and prices · All guides · Buy the bundle $39