Skip to main content
Glama
invoice-match-mcp

invoice-match-mcp

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
INVOICE_MATCH_PO_FILENoPath to a CSV file with your own purchase orders, using the columns of data/purchase_orders.csv

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}

Tools

Functions exposed to the LLM to take actions

NameDescription
list_open_purchase_ordersC

List PO lines for a supplier, with ordered/received quantities and agreed unit price.

check_invoiceA

Three-way match one invoice against the PO file.

invoice_json: {"invoice_number": str, "supplier": str, "po_number": str|null, "currency": "EUR", "lines": [{"sku": str, "qty": number, "unit_price": number}]} register: if true and the decision is APPROVE, remember the invoice so a resubmission is flagged as a duplicate. Returns status (APPROVE, HOLD_*, REVIEW), reasons and the PO used. It never pays or posts anything.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription
matching_policyThe matching policy the engine enforces.

TDQS

B3.4/5.0

Scored across 2 tools

Disambiguation5/5

The two tools target clearly different actions on different resources: one reads PO lines for a supplier, the other performs a three-way match on a single invoice. There is no realistic way to confuse them, and the descriptions reinforce the boundary (read-only listing vs. decision-returning validation).

Naming Consistency4/5

Both names follow a snake_case verb_noun convention (list_..., check_...) that reads naturally and consistently. The only minor deviation is that list_open_purchase_orders stacks multiple qualifiers while check_invoice is terse, but the pattern is still predictable.

Tool Count3/5

Two tools is thin even for a narrowly scoped three-way match server; the whole workflow lives in a single check_invoice call with one supporting lookup. It is functional and focused, but borderline under-provisioned for a stated accounts-payable domain.

Completeness3/5

The core path (fetch PO lines with ordered/received quantities, then match an invoice) is covered, and the register flag gives basic duplicate handling. However there is no way to look up a previously registered invoice, list invoices for a supplier, inspect prior decisions, or re-check a HOLD after correction, leaving notable gaps in the lifecycle.

Maintenance

ActivityMaintained
ResponsivenessNo recent community issues