invoice-match-mcp
Click on "Deploy 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., "@invoice-match-mcpThree-way match invoice INV-1001 against PO-4455 and show any holds."
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.
invoice-match-mcp
A small MCP server that lets an AI model three-way-match supplier invoices (invoice vs purchase order vs goods received) without ever being the one who decides.
The model calls the tools and explains the outcome. The decision comes from a deterministic rule engine, so it is reproducible, testable and auditable. That split is the point of this repo: LLM as interface, rules as policy, evals as proof.
What it exposes
MCP item | Purpose |
| Returns |
| Lets the model look up PO lines, received quantities and agreed prices before it answers. |
resource | The policy in plain language, so the model can quote it. |
Rules: unit price within 2 % of the PO; invoiced quantity not above received quantity; same currency; same supplier plus invoice number twice is a duplicate; no PO number gives REVIEW at best, never APPROVE.
Related MCP server: manager-mcp
Run it
Requires Python 3.10+ and the MCP Python SDK 2.x.
pip install -e ".[dev]"
python -m invoice_match.server # stdio MCP serverClaude Desktop / any MCP client:
{ "mcpServers": { "invoice-match": { "command": "python", "args": ["-m", "invoice_match.server"] } } }Use your own purchase orders by pointing INVOICE_MATCH_PO_FILE at a CSV with the columns of data/purchase_orders.csv.
Evals
python evals/run_evals.pyevals/golden_cases.json holds 11 invoices with the expected decision (clean match, price drift, over-billing, unknown PO, wrong supplier, currency, ambiguous PO, ...). The same file can grade an LLM agent: give the model each invoice with the server attached and compare its final answer to expect. One source of truth for engine, tools and agent.
pytest covers the engine (including the exact 2 % boundary and purity) and starts the real server over stdio, calling the tool the way a model would.
Why this exists
Built by Paweł Boruta-Ośko, who ran an omnichannel retailer for almost 20 years (ERP, WMS, 50+ integrations) and now builds agentic systems. See also OpenFill, an MCP browser agent. All data in this repo is fictional.
MIT licence.
This server cannot be deployed
Maintenance
Related MCP Connectors
Quote-to-cash tools: parse invoices and POs, match POs to invoices, collection emails, billing math.
Documents 1.4.2: five focused MCP tools. analyze_receipt extracts caller-supplied receipt text or checks supported fields (0.25 USDC). match_invoice allocates invoice quantities against a purchase order, including split lines and remaining quantities (0.50 USDC). reconcile_purchase_documents is the free choice for discrepancies across supplied receipt, invoice and PO fields; missing documents remain needs_review and split links are flagged rather than allocated. Neither comparison requires the other. Consolidated example and status tools are free. Paid calls require buyer-authorized x402 on Base. Human review required; no image OCR, stored-analysis retrieval, delivery certification, payment approval or accounting writes. Service-specific cache and payment-metadata terms are disclosed through status. Runtime utilities: https://agents.getardaro.com/mcp/utilities . Legacy /mcp remains compatible. Guide: https://agents.getardaro.com/document-review
Receipt extraction, invoice-to-PO quantity allocation, and free three-document discrepancy checks.
See, price, and control every tool call your AI agents make: policy checks, cost, and audit tools.
Related MCP Servers
- FlicenseBqualityBmaintenanceEnables AI assistants to perform financial reconciliation with a deterministic proof engine: intake files, match transactions, verify proofs, resolve exceptions, and sign off on balanced journals under the user's authority.21-
- AlicenseBqualityAmaintenanceEnables AI assistants to query and manage self-hosted accounting data—invoices, balances, and books—through natural language, with read-only tools by default and optional scoped write operations.3048 PyPIAGPL 3.0
- FlicenseNot gradedqualityCmaintenanceEnables accounts payable teams to extract invoice data from PDFs and images, detect duplicates, normalize vendor names, calculate payment terms, and validate invoice completeness. Supports local extraction for text PDFs and optional vision providers for scanned documents.-
- AlicenseAqualityBmaintenanceEnables LLM agents to query and reconcile an accounts-payable ledger through safe read-only SQL, deterministic invoice-to-payment matching, and exception explanations for underpayments, duplicates, currency mismatches, and overdue invoices. Ships with a synthetic ledger, golden-set evals, and a month-end review workflow so quality can be measured in CI.4MIT