Skip to content
MCPSTAMP

Exception reportLocal install

Three Way Match

Check an invoice against the PO and goods received before you pay.

Free tier needs no key. See the exact limits.

What you get

Invoice 55120, Mill & Co

Against PO-3381 and GRN-904. Status: exceptions

Report
SKU BEAN-ETH-5KGUnitsUSD
Billed20
Accepted on receipt16
Not supported, 4 x 86.004344.00
Hold344.00
Example from "Catch billing for rejected stock". Invented names, real math from the tools.

Give it a purchase order, the goods receipts and the supplier invoice. It checks each invoice line by SKU: was it ordered, was it accepted at the door, and was it billed before. You get a report of matches and exceptions with the source lines as evidence. It never approves the payment for you.

Made for Accounts payable clerks, Purchasing managers, Bookkeepers for product businesses

3 requests, start to finish

Example chats. Each one uses real tools of this server, named as they run. The people and firms are made up.

Example done on the free tier. Doing this every week? Pro removes the limit for $19, once. Free vs Pro

  1. Example 1 · Hannah Lee, AP clerk at a coffee roaster in Portland, OregonCatch billing for rejected stock

    Match invoice 55120 from Mill & Co against PO-3381 and receipt GRN-904. 20 bags of beans arrived but 4 were rejected as damaged.
    • three_way_match Checks each SKU: ordered 20, accepted 16, invoiced 20
    • report_page Shows the exception section with the PO, receipt and invoice lines

    Status: exceptions. SKU BEAN-ETH-5KG is billed for 20 units but only 16 were accepted, which is 4 bags at $86.00 = $344.00 not supported by the receipt.

    Saves about 20 min (our estimate)

  2. Example 2 · Piotr Zielinski, purchasing manager at a furniture workshop in Lodz, PolandPartial delivery, second invoice

    Second invoice on PO ZAM/2026/118 for oak boards. 300 boards were already billed. Check FV 77/10 against the PO and both deliveries.
    • three_way_match Adds the 300 boards billed before and checks the new lines against ordered and accepted units
    • report_export_csv Exports the evidence as CSV for the file

    Matched. 500 boards ordered, 500 accepted across two receipts, 300 billed before plus 200 now. The invoice total of 46,000.00 PLN equals its priced lines.

    Saves about 25 min (our estimate)

  3. Example 3 · Emily Hart, bookkeeper for an online gift shop in Brighton, UKKeep a record of each check

    Run the match for the Paper Lane invoice INV-2207 against PO-0412 and the receipt, and save it. Then list my saved reports.
    • three_way_match Runs the match with save=true
    • report_list Lists saved reports with status and totals
    • report_get Opens the saved report

    A saved report for INV-2207 (GBP 1,875.40) with status matched, next to two earlier reports. On the free tier this is the third and last saved slot.

    Saves about 15 min (our estimate)

Free and Pro, line by line

The free column is yours with no key. The Pro column costs $19 once, or comes with the $39 bundle.

Free

$0 no key

Pro

$19 once, lifetime

Full match and every exception, up to 500 PO and invoice lines and 100 receipts
No cap on the number of saved reports. Input limits stay the same.
Pages and CSV export
3 saved reports

Saw a message that says the free tier allows a set number per month? That's the limit Pro removes. Paste the key where the token goes, or set MCP_LICENSE_KEY.

Or Pro on all 49 paid servers for $39 once. Get the bundle

Limits read from the code: servers/three-way-match/src/store.ts:9, :59; servers/three-way-match/SPEC.md:30

Install

Works with Claude, Cursor, VS Code and other MCP clients. This server runs on your machine.

npm @theluckystrike/mcp-three-way-match

Download the .mcpb bundle and open it. Claude Desktop installs it in one click.

Download three-way-match.mcpb

Add this to your MCP client config (Claude Desktop, Cursor, VS Code). Needs Node.js.

{
  "mcpServers": {
    "three-way-match": {
      "command": "npx",
      "args": [
        "-y",
        "@theluckystrike/mcp-three-way-match"
      ]
    }
  }
}

One command in your terminal.

claude mcp add three-way-match -- npx -y @theluckystrike/mcp-three-way-match

Jobs this server does

All tools (6)

ToolWhat it does
three_way_matchMatches invoice lines to PO lines and accepted receipts by SKU
report_listLists saved reports
report_getSee SPEC.md of this server.
report_pagePages through exceptions and SKU evidence
report_deleteDeletes a saved report
report_export_csvExports the report as CSV

Questions

Does it read PDFs or connect to my ERP?
No. You give it the PO, receipts and invoice as structured lines. Matching is exact by SKU and reference, with no fuzzy matching or tolerance.
Does it approve the invoice?
No. It reports matched, exceptions or invalid based on what you supplied. The payment decision stays with you.
What does Pro change?
Only the number of saved reports. Free keeps 3 at a time, and every check and export stays free.

More in Payables

Three Way Match Pro, $19 once

Buy Pro