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

Review duplicate supplier invoice references in Claude

The same supplier reference appears twice in an invoice register. One copy has a different date and amount. A check that requires reference, date and total to match simultaneously can miss that conflict. A check that treats every equal total as a duplicate can wrongly group legitimate bills.

MCP Duplicate Invoice Check gives these review reasons separately. You supply structured records, including the history you want compared. It reports exact-reference collisions, a deliberately narrow reference-formatting comparison, and records sharing an amount and date. It does not decide that any candidate is a confirmed duplicate.

Try duplicate-reference review in this browser

Choose a CSV from your device, or edit the synthetic JSON example below. The same comparison engine powers the local MCP server. No install or account is needed.

The check runs on this page. The example sends no field values or diagnostic requests, writes no browser storage, and does not save reports. A candidate is a reason to review source documents; an unflagged record is not proof of uniqueness or approval to pay.

Use the exact columns below. Import replaces the editor and checks the entire supplied batch locally. No automatic column mapping, date conversion, currency conversion or skipped rows. A rejected import clears previous evidence.

No CSV selected. The initial results use synthetic records.

Required CSV columns and a copyable sample

Required header names, in any order: record_id, entity_id, supplier_id, document_type, invoice_number, invoice_date, currency, total_minor. Optional only: entity_label, supplier_label. Optional columns need nonempty values when included. Do not add an exported row-number column.

Use exact identifiers, invoice or credit_note, an ISO date such as 2026-10-16, and uppercase three-letter currency. total_minor must be positive decimal integer digits without signs, spaces, leading zeros or decimal points; 10000 is $100.00 for USD. References and IDs keep their leading zeros and Unicode. Values are not trimmed. Quoted commas and escaped double quotes are supported; control characters inside values are rejected by the product schema.

record_id,entity_id,supplier_id,document_type,invoice_number,invoice_date,currency,total_minor
R1,ENTITY-1,SUPPLIER-1,invoice,INV-001,2026-10-16,USD,10000
R2,ENTITY-1,SUPPLIER-1,invoice,INV-001,2026-10-16,USD,10000
R3,ENTITY-1,SUPPLIER-1,invoice,inv /001,2026-10-17,USD,15000
R4,ENTITY-1,SUPPLIER-1,invoice,RENT-9,2026-10-16,USD,10000

Keep record_id unique. Scope identifiers are exact and case sensitive. Set save to false: this browser example retains no report. In USD, 10000 minor units means $100.00.

Loading the local example…

    RecordReferenceDateMinor unitsReasons
    Full structured report, including scope and original records

    See the local MCP product or install the free server. Full candidate evidence is free; $19 Pro removes the saved-report-count cap. The $39 bundle also includes it.

    Read the four-record example

    The initial example puts all four records in entity ENTITY-1, supplier SUPPLIER-1, currency USD and document type invoice. R1 and R2 both use INV-001, date 2026-10-16 and total 10000 minor units. R3 uses inv /001, date 2026-10-17 and total 15000. R4 uses RENT-9 with R1's amount and date.

    The report gives three independent reasons to review:

    Four distinct records are candidates even though the reason groups overlap. Group memberships are not additional invoices. The report keeps each original record once, identifies its groups, and calculates no recoverable or duplicate-payment amount. Check the original documents, supplier statements and your existing accounting controls before deciding what any group means.

    A changed amount must not hide the reference

    Choose “Same reference, conflicting amount and date.” Both records still use INV-001, while the second date and total change. The exact-reference and normalized-reference reasons remain. The amount/date rule does not match. Conflicting fields appear alongside the reference evidence rather than suppressing it.

    This is supplied-record review. A changed reference, amount and date can escape all three rules. No output establishes that the supplied history is complete, that the supplier sent a duplicate, that a payment occurred or that an unflagged record is safe to pay.

    Know exactly what formatting changes

    The normalization rule uppercases ASCII a–z and removes only ASCII space, hyphen, slash and dot. It preserves leading zeros, other punctuation and all Unicode characters. INV-001 and inv /001 therefore collide. INV-001 and INV-1 do not collide under this rule. The browser's leading-zero example changes date and amount too, so the separate amount/date rule cannot obscure that boundary.

    This policy can create a false positive when a supplier uses punctuation as a meaningful reference distinction. Normalization is evidence for review, not proof that two numbers identify one invoice. It is not fuzzy matching, numeric coercion, Unicode folding or supplier-name inference.

    Keep entity, supplier, currency and document type exact

    All three rules compare records only within the same exact entity_id, supplier_id, document_type and currency. Scope identifiers are case sensitive. Display labels are optional and never merge entities or suppliers. Reconcile your identifiers before checking; two IDs for the same real supplier remain separate.

    The boundary example keeps reference, date and amount identical while changing one scope field on each additional record. It yields no candidates because no two rows share a full scope. This is an explicit comparison boundary, not evidence that those rows are unrelated in the real world. Currency codes are uppercase three-letter syntax, not an exchange-rate or currency-registry check. Credit notes use positive absolute minor-unit totals and compare only with credit notes.

    Supply the history rather than assuming a connection

    The tool accepts one batch with up to 1,000 records. Include both the invoice you are reviewing and the prior records you want it checked against. Each row requires a unique record_id, exact scope identifiers, document type, reference, real ISO date, currency and a positive safe-integer total_minor. For USD, 10000 means $100.00. Choose the correct minor-unit convention for your currency; the tool does not infer it.

    Review these structured supplier invoice records together with this
    supplied prior history. Preserve entity_id, supplier_id, currency and
    document_type exactly. Run duplicate_invoice_check with save false.
    Show each reason group, conflicting fields and the original record IDs.
    Do not classify candidates as confirmed duplicates or approve payment.

    The server does not connect to an ERP, query a supplier master, read another MCP server's stores, extract PDFs or perform OCR. If a model transcribes documents first, review that transcription before checking. The local comparison server makes no network calls; your MCP client or model provider has its own data handling.

    Install the local server

    Open duplicate-invoice-check.mcpb from the versioned download catalog in Claude Desktop. For a terminal client, build from the source repository:

    git clone https://github.com/theluckystrike/mcp-servers.git
    cd mcp-servers
    npm install
    npm run build -w packages/mcp-license -w servers/duplicate-invoice-check
    claude mcp add --scope user duplicate-invoice-check -- node /absolute/path/to/mcp-servers/servers/duplicate-invoice-check/dist/index.js

    Replace the absolute path with yours. The Claude Desktop, Cursor and VS Code setup pages show the local configuration. There is no hosted endpoint for this product. Its npm package is not published, so an npx package command is not an installation route.

    Pay for retained reports when you need more of them

    Full checks, candidate evidence, original records and free evidence paging do not require Pro. Saving is optional. Full diagnostics for up to 1000 supplied records, complete free paging and CSV export; store 3 reports at a time. $19 Pro once removes the saved-report-count cap; the $39 bundle includes the same unlock. Both tiers keep the same input and safety bounds.

    In the MCP server, pass save: true to retain a local report. Use report_list, report_get and report_delete to manage saved copies. The response's retrieval.report_id also supports free report_page sections for records, groups, record summaries and a group's members. Follow next_offset until it is null. report_export_csv returns one row per record with reasons and group IDs, not a sum of overlapping groups. CSV pages repeat the header; keep one header when joining pages.

    Unsaved MCP previews last 30 minutes for the last two checks in that server process. After eviction, expiry or restart, resubmit the structured input. The browser example above saves neither previews nor reports; closing its page discards the values.

    Choose the separate three-way matching workflow when the question is whether billed goods agree with an order and accepted delivery. That workflow does not inspect this supplied history automatically. Duplicate-reference review and goods matching answer different questions, and neither approves a payment.

    Questions

    Can a repeated invoice reference be flagged when its amount or date changes?

    Yes. Exact-reference and normalized-reference groups do not require equal totals or dates. Conflicting fields stay visible. The output is a candidate for review, not a confirmed duplicate.

    Does it ignore leading zeros in invoice numbers?

    No. Normalization preserves leading zeros and all Unicode. It changes only ASCII letter case and removes ASCII space, hyphen, slash and dot. Other matching reasons can still apply independently.

    Can two legitimate invoices have the same date and amount?

    Yes. That is why same_amount_date is a review reason, not a duplicate verdict. Compare references and source documents before deciding.

    Does it search all my accounting history or read invoice PDFs?

    No. It reviews only the structured records you supply, up to 1,000 per batch. It has no ERP access, PDF extraction, OCR or completeness guarantee.

    What does Pro unlock?

    Pro removes the saved-report-count cap. Full checks, evidence and paging are free. It costs $19 once, or is included in the $39 bundle.

    Related

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

    Related guides: Check a supplier invoice against a purchase order and delivery note in Claude · Credit notes and purchase orders from chat, against your real invoices

    Servers used in this guide: MCP Duplicate Invoice Check — Supplier Invoice History Review